Files
sdk/pkg/front_end/testcases/aot/tree_shake/main.dart.weak.expect
T
Johnni Winther 2d63f26ef5 Reland "[cfe] Encode field references as @getters and @setters"
This removes the @fields and @=fields canonical name
encodings that allowed for encoding of conflicting members
and didn't support field<->getter/setter conversion
between dills or between outline and full dill.

TEST=existing tests+add aot expectation tests

Change-Id: I119b0c95f90e456356146cdc2d9241de4c1b4fff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186680
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-03-09 05:47:16 +00:00

117 lines
4.2 KiB
Plaintext

library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "main_lib.dart" as mai;
import "org-dartlang-testcase:///main_lib.dart";
class UnusedEnum extends core::Object /*isEnum*/ {
final field core::int index;
final field core::String _name;
static const field core::List<self::UnusedEnum> values = #C7;
static const field self::UnusedEnum a = #C3;
static const field self::UnusedEnum b = #C6;
const constructor •(core::int index, core::String _name) → self::UnusedEnum
: self::UnusedEnum::index = index, self::UnusedEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self::UnusedEnum::_name};
}
class UsedEnum extends core::Object /*isEnum*/ {
final field core::int index;
final field core::String _name;
static const field core::List<self::UsedEnum> values = #C12;
static const field self::UsedEnum unusedValue = #C9;
static const field self::UsedEnum usedValue = #C11;
const constructor •(core::int index, core::String _name) → self::UsedEnum
: self::UsedEnum::index = index, self::UsedEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self::UsedEnum::_name};
}
class UnusedInterface extends core::Object {
field core::int? usedInterfaceField;
constructor •(core::int? usedInterfaceField) → self::UnusedInterface
: self::UnusedInterface::usedInterfaceField = usedInterfaceField, super core::Object::•()
;
}
class UsedClass extends core::Object implements self::UnusedInterface {
field core::int? unusedField = null;
field core::int? usedField = null;
field core::int? usedInterfaceField = null;
synthetic constructor •() → self::UsedClass
: super core::Object::•()
;
}
class UnusedClass extends core::Object {
synthetic constructor •() → self::UnusedClass
: super core::Object::•()
;
}
static method usedMethod(self::UnusedInterface c) → dynamic {
c.{self::UnusedInterface::usedInterfaceField} = c.{self::UnusedInterface::usedInterfaceField};
}
static method unusedMethod() → dynamic {}
static method main() → dynamic {
self::usedMethod(let final self::UsedClass #t1 = new self::UsedClass::•() in block {
#t1.{self::UsedClass::usedField};
} =>#t1);
#C11;
core::List<self::UnusedEnum> list = <self::UnusedEnum>[];
if(list.{core::Iterable::isNotEmpty}) {
new mai::ConstClass::•().{mai::ConstClass::method}((null as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::ConstEnum);
}
}
library /*isNonNullableByDefault*/;
import self as mai;
import "dart:core" as core;
class ConstEnum extends core::Object /*isEnum*/ {
final field core::int index;
final field core::String _name;
static const field core::List<mai::ConstEnum> values = #C15;
static const field mai::ConstEnum value = #C14;
const constructor •(core::int index, core::String _name) → mai::ConstEnum
: mai::ConstEnum::index = index, mai::ConstEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{mai::ConstEnum::_name};
}
class ConstClass extends core::Object {
synthetic constructor •() → mai::ConstClass
: super core::Object::•()
;
method method(mai::ConstEnum e) → core::int
return e.{mai::ConstEnum::index};
}
constants {
#C1 = 0
#C2 = "UnusedEnum.a"
#C3 = self::UnusedEnum {index:#C1, _name:#C2}
#C4 = 1
#C5 = "UnusedEnum.b"
#C6 = self::UnusedEnum {index:#C4, _name:#C5}
#C7 = <self::UnusedEnum*>[#C3, #C6]
#C8 = "UsedEnum.unusedValue"
#C9 = self::UsedEnum {index:#C1, _name:#C8}
#C10 = "UsedEnum.usedValue"
#C11 = self::UsedEnum {index:#C4, _name:#C10}
#C12 = <self::UsedEnum*>[#C9, #C11]
#C13 = "ConstEnum.value"
#C14 = mai::ConstEnum {index:#C1, _name:#C13}
#C15 = <mai::ConstEnum*>[#C14]
}
Constructor coverage from constants:
org-dartlang-testcase:///main_lib.dart:
- ConstEnum. (from org-dartlang-testcase:///main_lib.dart:5:6)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///main.dart:
- UnusedEnum. (from org-dartlang-testcase:///main.dart:7:6)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- UsedEnum. (from org-dartlang-testcase:///main.dart:8:6)