Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1017)

Side by Side Diff: tools/gn/operators.cc

Issue 2554083003: gn: Fix integer subtraction. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tools/gn/operators_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "tools/gn/operators.h" 5 #include "tools/gn/operators.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 9
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 return Value(); 412 return Value();
413 } 413 }
414 414
415 // Left is passed by value because it will be modified in-place and returned 415 // Left is passed by value because it will be modified in-place and returned
416 // for the list case. 416 // for the list case.
417 Value ExecuteMinus(const BinaryOpNode* op_node, 417 Value ExecuteMinus(const BinaryOpNode* op_node,
418 Value left, 418 Value left,
419 const Value& right, 419 const Value& right,
420 Err* err) { 420 Err* err) {
421 // Left-hand-side int. The only thing to do is subtract another int. 421 // Left-hand-side int. The only thing to do is subtract another int.
422 if (left.type() == Value::INTEGER && right.type() != Value::INTEGER) { 422 if (left.type() == Value::INTEGER && right.type() == Value::INTEGER) {
423 // Int - int -> subtraction. 423 // Int - int -> subtraction.
424 return Value(op_node, left.int_value() - right.int_value()); 424 return Value(op_node, left.int_value() - right.int_value());
425 } 425 }
426 426
427 // Left-hand-side list. The only thing to do is subtract another list. 427 // Left-hand-side list. The only thing to do is subtract another list.
428 if (left.type() == Value::LIST && right.type() == Value::LIST) { 428 if (left.type() == Value::LIST && right.type() == Value::LIST) {
429 // In-place modify left and return it. 429 // In-place modify left and return it.
430 RemoveMatchesFromList(op_node, &left, right, err); 430 RemoveMatchesFromList(op_node, &left, right, err);
431 return left; 431 return left;
432 } 432 }
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 return ExecuteGreaterEquals(scope, op_node, left_value, right_value, err); 774 return ExecuteGreaterEquals(scope, op_node, left_value, right_value, err);
775 if (op.type() == Token::LESS_EQUAL) 775 if (op.type() == Token::LESS_EQUAL)
776 return ExecuteLessEquals(scope, op_node, left_value, right_value, err); 776 return ExecuteLessEquals(scope, op_node, left_value, right_value, err);
777 if (op.type() == Token::GREATER_THAN) 777 if (op.type() == Token::GREATER_THAN)
778 return ExecuteGreater(scope, op_node, left_value, right_value, err); 778 return ExecuteGreater(scope, op_node, left_value, right_value, err);
779 if (op.type() == Token::LESS_THAN) 779 if (op.type() == Token::LESS_THAN)
780 return ExecuteLess(scope, op_node, left_value, right_value, err); 780 return ExecuteLess(scope, op_node, left_value, right_value, err);
781 781
782 return Value(); 782 return Value();
783 } 783 }
OLDNEW
« no previous file with comments | « no previous file | tools/gn/operators_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698