| 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 #include <algorithm> | 5 #include <algorithm> |
| 6 #include <limits> | 6 #include <limits> |
| 7 | 7 |
| 8 #include "tools/gn/err.h" | 8 #include "tools/gn/err.h" |
| 9 #include "tools/gn/functions.h" | 9 #include "tools/gn/functions.h" |
| 10 #include "tools/gn/parse_tree.h" | 10 #include "tools/gn/parse_tree.h" |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 (tool->*set)(v->string_value()); | 55 (tool->*set)(v->string_value()); |
| 56 return true; | 56 return true; |
| 57 } | 57 } |
| 58 | 58 |
| 59 // Calls the given validate function on each type in the list. On failure, | 59 // Calls the given validate function on each type in the list. On failure, |
| 60 // sets the error, blame the value, and return false. | 60 // sets the error, blame the value, and return false. |
| 61 bool ValidateSubstitutionList(const std::vector<SubstitutionType>& list, | 61 bool ValidateSubstitutionList(const std::vector<SubstitutionType>& list, |
| 62 bool (*validate)(SubstitutionType), | 62 bool (*validate)(SubstitutionType), |
| 63 const Value* origin, | 63 const Value* origin, |
| 64 Err* err) { | 64 Err* err) { |
| 65 for (size_t i = 0; i < list.size(); i++) { | 65 for (const auto& cur_type : list) { |
| 66 SubstitutionType cur_type = list[i]; | |
| 67 if (!validate(cur_type)) { | 66 if (!validate(cur_type)) { |
| 68 *err = Err(*origin, "Pattern not valid here.", | 67 *err = Err(*origin, "Pattern not valid here.", |
| 69 "You used the pattern " + std::string(kSubstitutionNames[cur_type]) + | 68 "You used the pattern " + std::string(kSubstitutionNames[cur_type]) + |
| 70 " which is not valid\nfor this variable."); | 69 " which is not valid\nfor this variable."); |
| 71 return false; | 70 return false; |
| 72 } | 71 } |
| 73 } | 72 } |
| 74 return true; | 73 return true; |
| 75 } | 74 } |
| 76 | 75 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 } | 171 } |
| 173 | 172 |
| 174 bool IsLinkerTool(Toolchain::ToolType type) { | 173 bool IsLinkerTool(Toolchain::ToolType type) { |
| 175 return type == Toolchain::TYPE_ALINK || | 174 return type == Toolchain::TYPE_ALINK || |
| 176 type == Toolchain::TYPE_SOLINK || | 175 type == Toolchain::TYPE_SOLINK || |
| 177 type == Toolchain::TYPE_LINK; | 176 type == Toolchain::TYPE_LINK; |
| 178 } | 177 } |
| 179 | 178 |
| 180 bool IsPatternInOutputList(const SubstitutionList& output_list, | 179 bool IsPatternInOutputList(const SubstitutionList& output_list, |
| 181 const SubstitutionPattern& pattern) { | 180 const SubstitutionPattern& pattern) { |
| 182 for (size_t output_i = 0; output_i < output_list.list().size(); output_i++) { | 181 for (const auto& cur : output_list.list()) { |
| 183 const SubstitutionPattern& cur = output_list.list()[output_i]; | |
| 184 if (pattern.ranges().size() == cur.ranges().size() && | 182 if (pattern.ranges().size() == cur.ranges().size() && |
| 185 std::equal(pattern.ranges().begin(), pattern.ranges().end(), | 183 std::equal(pattern.ranges().begin(), pattern.ranges().end(), |
| 186 cur.ranges().begin())) | 184 cur.ranges().begin())) |
| 187 return true; | 185 return true; |
| 188 } | 186 } |
| 189 return false; | 187 return false; |
| 190 } | 188 } |
| 191 | 189 |
| 192 } // namespace | 190 } // namespace |
| 193 | 191 |
| (...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 913 return Value(); | 911 return Value(); |
| 914 | 912 |
| 915 Scope::KeyValueMap values; | 913 Scope::KeyValueMap values; |
| 916 block_scope.GetCurrentScopeValues(&values); | 914 block_scope.GetCurrentScopeValues(&values); |
| 917 toolchain->args() = values; | 915 toolchain->args() = values; |
| 918 | 916 |
| 919 return Value(); | 917 return Value(); |
| 920 } | 918 } |
| 921 | 919 |
| 922 } // namespace functions | 920 } // namespace functions |
| OLD | NEW |