blob: 9f3531982fb22e74e964e87f23a14fb9761f17a7 [file] [log] [blame]
// Copyright (c) 2022, 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.17
/*member: main:**/
void main() {
final x1 = XX();
x1.assignUseBar();
x1.assignUseFoo();
x1.useBar();
x1.useFoo();
}
class XX {
late int foo;
late final int bar;
@pragma('dart2js:noInline')
/*member: XX.useFoo:
SsaLateFieldOptimizer.pre=[HFieldGet=3,HLateReadCheck=3],
SsaLateFieldOptimizer.post=[HFieldGet=3,HLateReadCheck=1],
*/
void useFoo() {
use(foo, foo, effect(), foo, foo, effect(), foo, foo);
}
@pragma('dart2js:noInline')
/*member: XX.useBar:
SsaLateFieldOptimizer.pre=[HFieldGet=3,HLateReadCheck=3],
SsaLateFieldOptimizer.post=[HFieldGet=1,HLateReadCheck=1],
*/
void useBar() {
use(bar, bar, effect(), bar, bar, effect(), bar, bar);
}
@pragma('dart2js:noInline')
/*member: XX.assignUseFoo:
SsaLateFieldOptimizer.pre=[HFieldGet=3,HLateReadCheck=3],
SsaLateFieldOptimizer.post=[HFieldGet=3],
*/
void assignUseFoo() {
foo = 200;
use(effect(), foo, effect(), foo, foo, effect(), foo, foo);
}
@pragma('dart2js:noInline')
/*member: XX.assignUseBar:
SsaLateFieldOptimizer.pre=
[HFieldGet=4,HLateReadCheck=3,HLateWriteOnceCheck=1],
SsaLateFieldOptimizer.post=[HFieldGet=1,HLateWriteOnceCheck=1],
*/
void assignUseBar() {
bar = 100;
use(effect(), bar, effect(), bar, bar, effect(), bar, bar);
}
@pragma('dart2js:noInline')
/*member: XX.use:**/
void use(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) {
print([a1, a2, a3, a4, a5, a6, a7, a8]);
}
@pragma('dart2js:noInline')
/*member: XX.effect:**/
int effect() {
foo++;
return 0;
}
}