blob: b09cbc3412895f21bc42b0eff34cc906ee6990a3 [file] [log] [blame] [edit]
library;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object /*hasConstConstructor*/ {
const constructor •() self::A
: super core::Object::•()
;
static factory redir() self::A /* redirection-target: self::B::• */
return new self::B::•();
}
class B extends self::A /*hasConstConstructor*/ {
const constructor •() self::B
: super self::A::•()
;
}
class C extends core::Object /*hasConstConstructor*/ {
constructor •({self::A a = #C1}) → self::C
: super core::Object::•()
;
const constructor c({self::A a = #C1}) → self::C
: super core::Object::•()
;
static factory f({self::A a = #C1}) → self::C
return new self::C::•(a: a);
method foo({self::A a = #C1}) → dynamic {}
static method bar({self::A a = #C1}) → dynamic {}
}
extension E on self::C {
method foo = self::E|foo;
method tearoff foo = self::E|get#foo;
}
extension type ET(self::C c) {
abstract extension-type-member representation-field get c() self::C;
method foo = self::ET|foo;
method tearoff foo = self::ET|get#foo;
constructor = self::ET|constructor#;
constructor tearoff = self::ET|constructor#_#new#tearOff;
constructor named = self::ET|constructor#named;
constructor tearoff named = self::ET|constructor#_#named#tearOff;
}
static extension-member method E|foo(lowered final self::C #this, {self::A a = #C1}) → dynamic {}
static extension-member method E|get#foo(lowered final self::C #this) → ({a: self::A}) → dynamic
return ({self::A a = #C1}) → dynamic => self::E|foo(#this, a: a);
static extension-type-member method ET|constructor#(self::C c) → self::ET% /* erasure=self::C, declared=! */ {
lowered final self::ET% /* erasure=self::C, declared=! */ #this = c;
return #this;
}
static extension-type-member synthetic method ET|constructor#_#new#tearOff(self::C c) → self::ET% /* erasure=self::C, declared=! */
return self::ET|constructor#(c);
static extension-type-member method ET|constructor#named(self::C c, {self::A a = #C1}) → self::ET% /* erasure=self::C, declared=! */ {
lowered final self::ET% /* erasure=self::C, declared=! */ #this;
#this = self::ET|constructor#(c);
return #this;
}
static extension-type-member synthetic method ET|constructor#_#named#tearOff(self::C c, {self::A a = #C1}) → self::ET% /* erasure=self::C, declared=! */
return self::ET|constructor#named(c, a: a);
static extension-type-member method ET|foo(lowered final self::ET% /* erasure=self::C, declared=! */ #this, {self::A a = #C1}) → dynamic {}
static extension-type-member method ET|get#foo(lowered final self::ET% /* erasure=self::C, declared=! */ #this) → ({a: self::A}) → dynamic
return ({self::A a = #C1}) → dynamic => self::ET|foo(#this, a: a);
static method foo({self::A a = #C1}) → dynamic {}
constants {
#C1 = self::B {}
}
Constructor coverage from constants:
org-dartlang-testcase:///issue55849_3.dart:
- B. (from org-dartlang-testcase:///issue55849_3.dart:11:9)
- A. (from org-dartlang-testcase:///issue55849_3.dart:6:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)