blob: 75d87ae35c97c3997dffbcb658967d0aad2ded28 [file] [log] [blame]
library #lib /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:convert";
abstract class IFoo extends core::Object {
synthetic constructor •() self::IFoo
: super core::Object::•()
;
@#C1
abstract method toString() core::String;
}
class Foo extends core::Object implements self::IFoo {
synthetic constructor •() self::Foo
: super core::Object::•()
;
@#C1
method toString() core::String
return super.toString();
}
class FooEnum extends core::_Enum /*isEnum*/ {
static const field core::List<self::FooEnum> values = #C11;
static const field self::FooEnum A = #C4;
static const field self::FooEnum B = #C7;
static const field self::FooEnum C = #C10;
const constructor •(core::int index, core::String name) self::FooEnum
: super core::_Enum::•(index, name)
;
method toString() core::String
return "FooEnum.${this.{core::_Enum::_name}{core::String}}";
}
class Keep extends core::Object {
synthetic constructor •() self::Keep
: super core::Object::•()
;
@#C14
@#C1
method toString() core::String
return "I am a Keep";
}
@#C16
class Base1 extends core::Object {
synthetic constructor •() self::Base1
: super core::Object::•()
;
}
class Base2 extends self::Base1 {
synthetic constructor •() self::Base2
: super self::Base1::•()
;
}
abstract class _Base3&Object&Base2 extends core::Object implements self::Base2 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() self::_Base3&Object&Base2
: super core::Object::•()
;
}
class Base3 extends self::_Base3&Object&Base2 {
synthetic constructor •() self::Base3
: super self::_Base3&Object&Base2::•()
;
}
class KeepInherited extends core::Object implements self::Base3 {
synthetic constructor •() self::KeepInherited
: super core::Object::•()
;
@#C1
method toString() core::String
return "Heir";
}
class MyException extends core::Object implements core::Exception {
synthetic constructor •() self::MyException
: super core::Object::•()
;
@#C1
method toString() core::String
return "A very detailed message";
}
static const field core::pragma keepToString = #C14;
static const field core::pragma keepToStringInSubtypes = #C16;
static method toString() core::String
return "I am static";
static method main() void {
final self::IFoo foo = new self::Foo::•();
core::print(foo.{self::IFoo::toString}(){() core::String});
core::print(new self::Keep::•().{self::Keep::toString}(){() core::String});
core::print(#C7.{self::FooEnum::toString}(){() core::String});
core::print(new self::KeepInherited::•().{self::KeepInherited::toString}(){() core::String});
core::print(new self::MyException::•().{self::MyException::toString}(){() core::String});
}
constants {
#C1 = core::_Override {}
#C2 = 0
#C3 = "A"
#C4 = self::FooEnum {index:#C2, _name:#C3}
#C5 = 1
#C6 = "B"
#C7 = self::FooEnum {index:#C5, _name:#C6}
#C8 = 2
#C9 = "C"
#C10 = self::FooEnum {index:#C8, _name:#C9}
#C11 = <self::FooEnum*>[#C4, #C7, #C10]
#C12 = "flutter:keep-to-string"
#C13 = null
#C14 = core::pragma {name:#C12, options:#C13}
#C15 = "flutter:keep-to-string-in-subtypes"
#C16 = core::pragma {name:#C15, options:#C13}
}