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