f79ed9301b
Now that dart2js only takes migrated files as input, all tests should use the current language version. Change-Id: I6c84850f5786aeac04154b67bd7a3c19083c8bba Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345344 Reviewed-by: Nate Biggs <natebiggs@google.com> Commit-Queue: Mayank Patke <fishythefish@google.com>
93 lines
2.0 KiB
Dart
93 lines
2.0 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.
|
|
|
|
enum Enum {
|
|
a,
|
|
b,
|
|
c,
|
|
}
|
|
|
|
/*member: tester1:params=0*/
|
|
@pragma('dart2js:noInline')
|
|
tester1() {}
|
|
|
|
/*member: tester2:params=0*/
|
|
@pragma('dart2js:noInline')
|
|
tester2() {}
|
|
|
|
/*member: tester3:params=0*/
|
|
@pragma('dart2js:noInline')
|
|
tester3() {}
|
|
|
|
class Class {
|
|
/*member: Class.state1:elided*/
|
|
final int state1;
|
|
|
|
/*member: Class.state2:elided*/
|
|
final Enum state2;
|
|
|
|
Class({this.state1 = 1, this.state2 = Enum.c});
|
|
|
|
/*member: Class.method1a:calls=[tester2(0)],params=0*/
|
|
@pragma('dart2js:noInline')
|
|
method1a() {
|
|
if (state1 == 0) {
|
|
return tester1();
|
|
} else if (state1 == 1) {
|
|
return tester2();
|
|
} else if (state1 == 2) {
|
|
return tester3();
|
|
}
|
|
}
|
|
|
|
// TODO(johnniwinther): Inline switch cases with constant expressions.
|
|
/*member: Class.method1b:calls=[tester2(0)],params=0,switch*/
|
|
@pragma('dart2js:noInline')
|
|
method1b() {
|
|
switch (state1) {
|
|
case 0:
|
|
return tester1();
|
|
case 1:
|
|
return tester2();
|
|
case 2:
|
|
return tester3();
|
|
}
|
|
}
|
|
|
|
/*member: Class.method2a:calls=[tester3(0)],params=0*/
|
|
@pragma('dart2js:noInline')
|
|
method2a() {
|
|
if (state2 == Enum.a) {
|
|
return tester1();
|
|
} else if (state2 == Enum.b) {
|
|
return tester2();
|
|
} else if (state2 == Enum.c) {
|
|
return tester3();
|
|
}
|
|
}
|
|
|
|
/*member: Class.method2b:calls=[tester1(0),tester2(0),tester3(0)],params=0,switch*/
|
|
@pragma('dart2js:noInline')
|
|
method2b() {
|
|
// TODO(johnniwinther): Eliminate dead code in enum switch.
|
|
switch (state2) {
|
|
case Enum.a:
|
|
return tester1();
|
|
case Enum.b:
|
|
return tester2();
|
|
case Enum.c:
|
|
return tester3();
|
|
}
|
|
}
|
|
}
|
|
|
|
/*member: main:calls=*,params=0*/
|
|
main() {
|
|
var c = Class();
|
|
c.method1a();
|
|
c.method1b();
|
|
c.method2a();
|
|
c.method2b();
|
|
}
|