| // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "tools/gn/item.h" | 
 |  | 
 | #include "base/logging.h" | 
 | #include "tools/gn/settings.h" | 
 |  | 
 | Item::Item(const Settings* settings, | 
 |            const Label& label, | 
 |            const std::set<SourceFile>& build_dependency_files) | 
 |     : settings_(settings), | 
 |       label_(label), | 
 |       build_dependency_files_(build_dependency_files), | 
 |       defined_from_(nullptr) {} | 
 |  | 
 | Item::~Item() = default; | 
 |  | 
 | Config* Item::AsConfig() { | 
 |   return nullptr; | 
 | } | 
 | const Config* Item::AsConfig() const { | 
 |   return nullptr; | 
 | } | 
 | Pool* Item::AsPool() { | 
 |   return nullptr; | 
 | } | 
 | const Pool* Item::AsPool() const { | 
 |   return nullptr; | 
 | } | 
 | Target* Item::AsTarget() { | 
 |   return nullptr; | 
 | } | 
 | const Target* Item::AsTarget() const { | 
 |   return nullptr; | 
 | } | 
 | Toolchain* Item::AsToolchain() { | 
 |   return nullptr; | 
 | } | 
 | const Toolchain* Item::AsToolchain() const { | 
 |   return nullptr; | 
 | } | 
 |  | 
 | std::string Item::GetItemTypeName() const { | 
 |   if (AsConfig()) | 
 |     return "config"; | 
 |   if (AsTarget()) | 
 |     return "target"; | 
 |   if (AsToolchain()) | 
 |     return "toolchain"; | 
 |   if (AsPool()) | 
 |     return "pool"; | 
 |   NOTREACHED(); | 
 |   return "this thing that I have no idea what it is"; | 
 | } | 
 |  | 
 | bool Item::OnResolved(Err* err) { | 
 |   return true; | 
 | } |