// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. // @dart = 2.7 // Test constant folding on numbers. @pragma('dart2js:assumeDynamic') @pragma('dart2js:noInline') int confuse(int x) => x; /*member: intPlusZero:Specializer=[Add,BitAnd]*/ @pragma('dart2js:noInline') intPlusZero() { int x = confuse(0); return (x & 1) + 0; } /*member: zeroPlusInt:Specializer=[Add,BitAnd]*/ @pragma('dart2js:noInline') zeroPlusInt() { int x = confuse(0); return 0 + (x & 1); } /*member: numPlusZero:Specializer=[Add]*/ @pragma('dart2js:noInline') numPlusZero() { num x = confuse(0); return x + 0; } /*member: zeroPlusNum:Specializer=[Add]*/ @pragma('dart2js:noInline') zeroPlusNum() { num x = confuse(0); return 0 + x; } /*member: intTimesOne:Specializer=[BitAnd,Multiply]*/ @pragma('dart2js:noInline') intTimesOne() { int x = confuse(0); return (x & 1) * 1; } /*member: oneTimesInt:Specializer=[BitAnd,Multiply]*/ @pragma('dart2js:noInline') oneTimesInt() { int x = confuse(0); return 1 * (x & 1); } /*member: numTimesOne:Specializer=[Multiply]*/ @pragma('dart2js:noInline') numTimesOne() { num x = confuse(0); return x * 1; } /*member: oneTimesNum:Specializer=[Multiply]*/ @pragma('dart2js:noInline') oneTimesNum() { num x = confuse(0); return 1 * x; } main() { intPlusZero(); zeroPlusInt(); numPlusZero(); zeroPlusNum(); intTimesOne(); oneTimesInt(); numTimesOne(); oneTimesNum(); }