Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef TOOLS_GN_SCOPE_H_ | 5 #ifndef TOOLS_GN_SCOPE_H_ |
| 6 #define TOOLS_GN_SCOPE_H_ | 6 #define TOOLS_GN_SCOPE_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 197 void RemovePrivateIdentifiers(); | 197 void RemovePrivateIdentifiers(); |
| 198 | 198 |
| 199 // Templates associated with this scope. A template can only be set once, so | 199 // Templates associated with this scope. A template can only be set once, so |
| 200 // AddTemplate will fail and return false if a rule with that name already | 200 // AddTemplate will fail and return false if a rule with that name already |
| 201 // exists. GetTemplate returns NULL if the rule doesn't exist, and it will | 201 // exists. GetTemplate returns NULL if the rule doesn't exist, and it will |
| 202 // check all containing scoped rescursively. | 202 // check all containing scoped rescursively. |
| 203 bool AddTemplate(const std::string& name, const Template* templ); | 203 bool AddTemplate(const std::string& name, const Template* templ); |
| 204 const Template* GetTemplate(const std::string& name) const; | 204 const Template* GetTemplate(const std::string& name) const; |
| 205 | 205 |
| 206 // Marks the given identifier as (un)used in the current scope. | 206 // Marks the given identifier as (un)used in the current scope. |
| 207 void MarkUsed(const base::StringPiece& ident); | 207 void MarkUsed(const base::StringPiece& ident, Err* err); |
| 208 void MarkAllUsed(); | 208 void MarkAllUsed(Err* err); |
| 209 void MarkUnused(const base::StringPiece& ident); | 209 void MarkUnused(const base::StringPiece& ident); |
| 210 | 210 |
| 211 // Marks the given identifier as unusable in the current scope. | |
| 212 void MarkAllUnusable(Err* err, std::set<std::string> excluded_values); | |
|
brettw
2017/06/20 17:27:25
The set should be passed by const ref.
Petr Hosek
2017/06/21 02:17:40
Done.
| |
| 213 void MarkUnusable(const base::StringPiece& ident, Err* err); | |
| 214 | |
| 211 // Checks to see if the scope has a var set that hasn't been used. This is | 215 // Checks to see if the scope has a var set that hasn't been used. This is |
| 212 // called before replacing the var with a different one. It does not check | 216 // called before replacing the var with a different one. It does not check |
| 213 // containing scopes. | 217 // containing scopes. |
| 214 // | 218 // |
| 215 // If the identifier is present but hasnn't been used, return true. | 219 // If the identifier is present but hasnn't been used, return true. |
| 216 bool IsSetButUnused(const base::StringPiece& ident) const; | 220 bool IsSetButUnused(const base::StringPiece& ident) const; |
| 217 | 221 |
| 218 // Checks the scope to see if any values were set but not used, and fills in | 222 // Checks the scope to see if any values were set but not used, and fills in |
| 219 // the error and returns false if they were. | 223 // the error and returns false if they were. |
| 220 bool CheckForUnusedVars(Err* err) const; | 224 bool CheckForUnusedVars(Err* err) const; |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 313 // Getting a property recursively searches all scopes, and the optional | 317 // Getting a property recursively searches all scopes, and the optional |
| 314 // |found_on_scope| variable will be filled with the actual scope containing | 318 // |found_on_scope| variable will be filled with the actual scope containing |
| 315 // the key (if the pointer is non-NULL). | 319 // the key (if the pointer is non-NULL). |
| 316 void SetProperty(const void* key, void* value); | 320 void SetProperty(const void* key, void* value); |
| 317 void* GetProperty(const void* key, const Scope** found_on_scope) const; | 321 void* GetProperty(const void* key, const Scope** found_on_scope) const; |
| 318 | 322 |
| 319 private: | 323 private: |
| 320 friend class ProgrammaticProvider; | 324 friend class ProgrammaticProvider; |
| 321 | 325 |
| 322 struct Record { | 326 struct Record { |
| 323 Record() : used(false) {} | 327 Record() : used(false), unusable(false) {} |
| 324 explicit Record(const Value& v) : used(false), value(v) {} | 328 explicit Record(const Value& v) : used(false), unusable(false), value(v) {} |
| 325 | 329 |
| 326 bool used; // Set to true when the variable is used. | 330 bool used; // Set to true when the variable is used. |
| 331 bool unusable; | |
| 327 Value value; | 332 Value value; |
| 328 }; | 333 }; |
| 329 | 334 |
| 330 typedef base::hash_map<base::StringPiece, Record, base::StringPieceHash> | 335 typedef base::hash_map<base::StringPiece, Record, base::StringPieceHash> |
| 331 RecordMap; | 336 RecordMap; |
| 332 | 337 |
| 333 void AddProvider(ProgrammaticProvider* p); | 338 void AddProvider(ProgrammaticProvider* p); |
| 334 void RemoveProvider(ProgrammaticProvider* p); | 339 void RemoveProvider(ProgrammaticProvider* p); |
| 335 | 340 |
| 336 // Returns true if the two RecordMaps contain the same values (the origins | 341 // Returns true if the two RecordMaps contain the same values (the origins |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 375 | 380 |
| 376 typedef std::set<ProgrammaticProvider*> ProviderSet; | 381 typedef std::set<ProgrammaticProvider*> ProviderSet; |
| 377 ProviderSet programmatic_providers_; | 382 ProviderSet programmatic_providers_; |
| 378 | 383 |
| 379 SourceDir source_dir_; | 384 SourceDir source_dir_; |
| 380 | 385 |
| 381 DISALLOW_COPY_AND_ASSIGN(Scope); | 386 DISALLOW_COPY_AND_ASSIGN(Scope); |
| 382 }; | 387 }; |
| 383 | 388 |
| 384 #endif // TOOLS_GN_SCOPE_H_ | 389 #endif // TOOLS_GN_SCOPE_H_ |
| OLD | NEW |