blob: ebec04b7f499b39097c0113437bcc5fbde58891c [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:OutputUnit(2, {lib1, lib2}), type=OutputUnit(2, {lib1, lib2})*/
class ConstClass {
/*member: ConstClass.x:OutputUnit(2, {lib1, lib2})*/
final x;
const ConstClass(this.x);
}
/*member: x:
OutputUnit(2, {lib1, lib2}),
constants=[ConstructedConstant(ConstClass(x=ConstructedConstant(ConstClass(x=IntConstant(1)))))=OutputUnit(2, {lib1, lib2})]
*/
var x = const ConstClass(const ConstClass(1));
/*class: C:OutputUnit(1, {lib1}), type=OutputUnit(1, {lib1})*/
class C {
/*member: C.foo:OutputUnit(3, {lib2})*/
static foo() {
/*OutputUnit(3, {lib2})*/ () {}(); // Hack to avoid inlining.
return 1;
}
/*member: C.:OutputUnit(1, {lib1})*/
C();
/*member: C.bar:OutputUnit(1, {lib1})*/
bar() {
/*OutputUnit(1, {lib1})*/ () {}(); // Hack to avoid inlining.
return 1;
}
}
/*class: C1:none, type=none*/
class C1 {
/*member: C1.foo:
OutputUnit(3, {lib2}),
constants=[MapConstant({})=OutputUnit(3, {lib2})]
*/
static var foo = const {};
var bar = const {};
}
/*class: C2:OutputUnit(1, {lib1}), type=OutputUnit(1, {lib1})*/
class C2 {
/*member: C2.foo:OutputUnit(3, {lib2})*/
static var foo = new Map<int, int>.from({1: 2});
/*member: C2.bar:OutputUnit(1, {lib1})*/
var bar = new Map<int, int>.from({1: 2});
/*member: C2.:OutputUnit(1, {lib1})*/
C2();
}
/*class: C3:OutputUnit(1, {lib1}), type=OutputUnit(1, {lib1})*/
class C3 {
/*member: C3.foo:
OutputUnit(3, {lib2}),
constants=[ConstructedConstant(ConstClass(x=ConstructedConstant(ConstClass(x=IntConstant(1)))))=OutputUnit(2, {lib1, lib2})]
*/
static final foo = const ConstClass(const ConstClass(1));
/*member: C3.bar:
OutputUnit(1, {lib1}),
constants=[ConstructedConstant(ConstClass(x=ConstructedConstant(ConstClass(x=IntConstant(1)))))=OutputUnit(2, {lib1, lib2})]
*/
final bar = const ConstClass(const ConstClass(1));
/*member: C3.:OutputUnit(1, {lib1})*/
C3();
}
/*class: C4:OutputUnit(1, {lib1}), type=OutputUnit(1, {lib1})*/
class C4 {
/*member: C4.foo:OutputUnit(3, {lib2})*/
static final foo = new Map<ConstClass, ConstClass>.from({x: x});
/*member: C4.bar:OutputUnit(1, {lib1})*/
final bar = new Map<ConstClass, ConstClass>.from({x: x});
/*member: C4.:OutputUnit(1, {lib1})*/
C4();
}
/*class: C5:OutputUnit(1, {lib1}), type=OutputUnit(1, {lib1})*/
class C5 {
static const foo = const [
const {1: 3}
];
/*member: C5.:OutputUnit(1, {lib1})*/
C5();
/*member: C5.bar:OutputUnit(1, {lib1})*/
bar() {
/*OutputUnit(1, {lib1})*/ () {}(); // Hack to avoid inlining.
return 1;
}
}