Files
sdk/tests/compiler/dart2js/optimization/data/arithmetic_simplification.dart
T
Johnni Winther 4ceefdbe4c Rename ElementId to MemberId and use member: prefix instead of element:
Change-Id: I71c82318357881230edcaeefe1d86ceb50473c73
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108261
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-07-04 12:53:55 +00:00

77 lines
1.5 KiB
Dart

// 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.
// 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();
}