blob: 18c22883b414b1ddfcf36978ff4192585b4e60f5 [file] [log] [blame]
// Copyright (c) 2018, 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
library lib1;
/*class: ConstClass:
class_unit=2{lib1, lib2},
type_unit=2{lib1, lib2}
*/
class ConstClass {
/*member: ConstClass.x:member_unit=2{lib1, lib2}*/
final x;
const ConstClass(this.x);
}
/*member: x:
constants=[ConstructedConstant(ConstClass(x=ConstructedConstant(ConstClass(x=IntConstant(1)))))=2{lib1, lib2}],
member_unit=2{lib1, lib2}
*/
var x = const ConstClass(const ConstClass(1));
/*class: C:
class_unit=1{lib1},
type_unit=1{lib1}
*/
class C {
/*member: C.foo:member_unit=3{lib2}*/
static foo() {
/*closure_unit=3{lib2}*/ () {}(); // Hack to avoid inlining.
return 1;
}
/*member: C.:member_unit=1{lib1}*/
C();
/*member: C.bar:member_unit=1{lib1}*/
bar() {
/*closure_unit=1{lib1}*/ () {}(); // Hack to avoid inlining.
return 1;
}
}
/*class: C1:
class_unit=none,
type_unit=none
*/
class C1 {
/*member: C1.foo:
constants=[MapConstant({})=3{lib2}],
member_unit=3{lib2}
*/
static var foo = const {};
var bar = const {};
}
/*class: C2:
class_unit=1{lib1},
type_unit=1{lib1}
*/
class C2 {
/*member: C2.foo:member_unit=3{lib2}*/
static var foo = new Map<int, int>.from({1: 2});
/*member: C2.bar:member_unit=1{lib1}*/
var bar = new Map<int, int>.from({1: 2});
/*member: C2.:member_unit=1{lib1}*/
C2();
}
/*class: C3:
class_unit=1{lib1},
type_unit=1{lib1}
*/
class C3 {
/*member: C3.foo:
constants=[ConstructedConstant(ConstClass(x=ConstructedConstant(ConstClass(x=IntConstant(1)))))=2{lib1, lib2}],
member_unit=3{lib2}
*/
static final foo = const ConstClass(const ConstClass(1));
/*member: C3.bar:
constants=[ConstructedConstant(ConstClass(x=ConstructedConstant(ConstClass(x=IntConstant(1)))))=2{lib1, lib2}],
member_unit=1{lib1}
*/
final bar = const ConstClass(const ConstClass(1));
/*member: C3.:member_unit=1{lib1}*/
C3();
}
/*class: C4:
class_unit=1{lib1},
type_unit=1{lib1}
*/
class C4 {
/*member: C4.foo:member_unit=3{lib2}*/
static final foo = new Map<ConstClass, ConstClass>.from({x: x});
/*member: C4.bar:member_unit=1{lib1}*/
final bar = new Map<ConstClass, ConstClass>.from({x: x});
/*member: C4.:member_unit=1{lib1}*/
C4();
}
/*class: C5:
class_unit=1{lib1},
type_unit=1{lib1}
*/
class C5 {
static const foo = const [
const {1: 3}
];
/*member: C5.:member_unit=1{lib1}*/
C5();
/*member: C5.bar:member_unit=1{lib1}*/
bar() {
/*closure_unit=1{lib1}*/ () {}(); // Hack to avoid inlining.
return 1;
}
}