Make constructor function types conform with the specification.

Prior to this CL the return type of any constructor function was
always void. According to the specification §9.3 the return type of a
constructor function ought to be its enclosing class.

Change-Id: I70d76cc354b7f118ce96bf4954daf7fe535eb7be
Reviewed-on: https://dart-review.googlesource.com/76160
Commit-Queue: Daniel Hillerström <hillerstrom@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
This commit is contained in:
Daniel Hillerström 2018-09-26 09:39:11 +00:00 committed by commit-bot@chromium.org
parent a3aa0c18fb
commit 98a9adf696
2612 changed files with 6462 additions and 6268 deletions

View file

@ -16,6 +16,7 @@ import 'package:kernel/ast.dart'
Expression,
FunctionNode,
Initializer,
InterfaceType,
Member,
Name,
Procedure,
@ -481,8 +482,18 @@ class KernelConstructorBuilder extends KernelFunctionBuilder {
}
FunctionNode buildFunction(LibraryBuilder library) {
// TODO(ahe): Should complain if another type is explicitly set.
return super.buildFunction(library)..returnType = const VoidType();
// According to the specification §9.3 the return type of a constructor
// function is its enclosing class.
FunctionNode functionNode = super.buildFunction(library);
ClassBuilder enclosingClass = parent;
List<DartType> typeParameterTypes = new List<DartType>();
for (int i = 0; i < enclosingClass.target.typeParameters.length; i++) {
TypeParameter typeParameter = enclosingClass.target.typeParameters[i];
typeParameterTypes.add(new TypeParameterType(typeParameter));
}
functionNode.returnType =
new InterfaceType(enclosingClass.target, typeParameterTypes);
return functionNode;
}
Constructor get target => origin.constructor;

View file

@ -22,6 +22,7 @@ import 'package:kernel/ast.dart'
FieldInitializer,
FunctionNode,
Initializer,
InterfaceType,
InvalidInitializer,
Library,
ListLiteral,
@ -37,9 +38,9 @@ import 'package:kernel/ast.dart'
SuperInitializer,
Throw,
TypeParameter,
TypeParameterType,
VariableDeclaration,
VariableGet,
VoidType;
VariableGet;
import 'package:kernel/type_algebra.dart' show substitute;
@ -511,15 +512,19 @@ class KernelTarget extends TargetImplementation {
builder.charOffset, dynamicType),
builder.parent);
if (supertype.cls.constructors.isEmpty) {
builder.addSyntheticConstructor(makeDefaultConstructor());
builder
.addSyntheticConstructor(makeDefaultConstructor(builder.target));
} else {
for (Constructor constructor in supertype.cls.constructors) {
builder.addSyntheticConstructor(makeMixinApplicationConstructor(
builder.cls.mixin, constructor, substitutionMap));
builder.target,
builder.cls.mixin,
constructor,
substitutionMap));
}
}
} else if (supertype is InvalidTypeBuilder) {
builder.addSyntheticConstructor(makeDefaultConstructor());
builder.addSyntheticConstructor(makeDefaultConstructor(builder.target));
} else {
unhandled("${supertype.runtimeType}", "installDefaultConstructor",
builder.charOffset, builder.fileUri);
@ -528,7 +533,7 @@ class KernelTarget extends TargetImplementation {
/// >Iff no constructor is specified for a class C, it implicitly has a
/// >default constructor C() : super() {}, unless C is class Object.
// The superinitializer is installed below in [finishConstructors].
builder.addSyntheticConstructor(makeDefaultConstructor());
builder.addSyntheticConstructor(makeDefaultConstructor(builder.target));
}
}
@ -544,7 +549,7 @@ class KernelTarget extends TargetImplementation {
return result;
}
Constructor makeMixinApplicationConstructor(Class mixin,
Constructor makeMixinApplicationConstructor(Class cls, Class mixin,
Constructor constructor, Map<TypeParameter, DartType> substitutionMap) {
VariableDeclaration copyFormal(VariableDeclaration formal) {
// TODO(ahe): Handle initializers.
@ -574,7 +579,7 @@ class KernelTarget extends TargetImplementation {
positionalParameters: positionalParameters,
namedParameters: namedParameters,
requiredParameterCount: constructor.function.requiredParameterCount,
returnType: const VoidType());
returnType: makeConstructorReturnType(cls));
SuperInitializer initializer = new SuperInitializer(
constructor, new Arguments(positional, named: named));
return new Constructor(function,
@ -583,13 +588,23 @@ class KernelTarget extends TargetImplementation {
isSynthetic: true);
}
Constructor makeDefaultConstructor() {
Constructor makeDefaultConstructor(Class enclosingClass) {
return new Constructor(
new FunctionNode(new EmptyStatement(), returnType: const VoidType()),
new FunctionNode(new EmptyStatement(),
returnType: makeConstructorReturnType(enclosingClass)),
name: new Name(""),
isSynthetic: true);
}
DartType makeConstructorReturnType(Class enclosingClass) {
List<DartType> typeParameterTypes = new List<DartType>();
for (int i = 0; i < enclosingClass.typeParameters.length; i++) {
TypeParameter typeParameter = enclosingClass.typeParameters[i];
typeParameterTypes.add(new TypeParameterType(typeParameter));
}
return new InterfaceType(enclosingClass, typeParameterTypes);
}
void computeCoreTypes() {
List<Library> libraries = <Library>[];
for (String platformLibrary in const [

View file

@ -3,7 +3,7 @@ import self as self;
import "dart:core" as core;
class DeltaBlue extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::DeltaBlue
;
method run() → void
;
@ -11,7 +11,7 @@ class DeltaBlue extends core::Object {
class Strength extends core::Object {
final field core::int value;
final field core::String name;
const constructor •(core::int value, core::String name) → void
const constructor •(core::int value, core::String name) → self::Strength
;
method nextWeaker() → self::Strength
;
@ -26,7 +26,7 @@ class Strength extends core::Object {
}
abstract class Constraint extends core::Object {
final field self::Strength strength;
const constructor •(self::Strength strength) → void
const constructor •(self::Strength strength) → self::Constraint
;
abstract method isSatisfied() → core::bool;
abstract method markUnsatisfied() → void;
@ -50,7 +50,7 @@ abstract class Constraint extends core::Object {
abstract class UnaryConstraint extends self::Constraint {
final field self::Variable myOutput;
field core::bool satisfied;
constructor •(self::Variable myOutput, self::Strength strength) → void
constructor •(self::Variable myOutput, self::Strength strength) → self::UnaryConstraint
;
method addToGraph() → void
;
@ -72,13 +72,13 @@ abstract class UnaryConstraint extends self::Constraint {
;
}
class StayConstraint extends self::UnaryConstraint {
constructor •(self::Variable v, self::Strength str) → void
constructor •(self::Variable v, self::Strength str) → self::StayConstraint
;
method execute() → void
;
}
class EditConstraint extends self::UnaryConstraint {
constructor •(self::Variable v, self::Strength str) → void
constructor •(self::Variable v, self::Strength str) → self::EditConstraint
;
method isInput() → core::bool
;
@ -89,7 +89,7 @@ abstract class BinaryConstraint extends self::Constraint {
field self::Variable v1;
field self::Variable v2;
field core::int direction;
constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → void
constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::BinaryConstraint
;
method chooseMethod(core::int mark) → void
;
@ -115,7 +115,7 @@ abstract class BinaryConstraint extends self::Constraint {
class ScaleConstraint extends self::BinaryConstraint {
final field self::Variable scale;
final field self::Variable offset;
constructor •(self::Variable src, self::Variable scale, self::Variable offset, self::Variable dest, self::Strength strength) → void
constructor •(self::Variable src, self::Variable scale, self::Variable offset, self::Variable dest, self::Strength strength) → self::ScaleConstraint
;
method addToGraph() → void
;
@ -129,7 +129,7 @@ class ScaleConstraint extends self::BinaryConstraint {
;
}
class EqualityConstraint extends self::BinaryConstraint {
constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → void
constructor •(self::Variable v1, self::Variable v2, self::Strength strength) → self::EqualityConstraint
;
method execute() → void
;
@ -142,7 +142,7 @@ class Variable extends core::Object {
field core::bool stay;
field core::int value;
final field core::String name;
constructor •(core::String name, core::int value) → void
constructor •(core::String name, core::int value) → self::Variable
;
method addConstraint(self::Constraint c) → void
;
@ -151,7 +151,7 @@ class Variable extends core::Object {
}
class Planner extends core::Object {
field core::int currentMark;
synthetic constructor •() → void
synthetic constructor •() → self::Planner
;
method incrementalAdd(self::Constraint c) → void
;
@ -172,7 +172,7 @@ class Planner extends core::Object {
}
class Plan extends core::Object {
field core::List<self::Constraint> list;
synthetic constructor •() → void
synthetic constructor •() → self::Plan
;
method addConstraint(self::Constraint c) → void
;

View file

@ -17,7 +17,7 @@ import self as self;
import "dart:core" as core;
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
set onlySetter(dynamic value) → void {
@ -39,7 +39,7 @@ class C extends core::Object {
}
}
class D extends self::C {
synthetic constructor •() → void
synthetic constructor •() → self::D
: super self::C::•()
;
get onlySetter() → core::String

View file

@ -3,7 +3,7 @@ import self as self;
import "dart:core" as core;
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
set onlySetter(dynamic value) → void {
@ -25,7 +25,7 @@ class C extends core::Object {
}
}
class D extends self::C {
synthetic constructor •() → void
synthetic constructor •() → self::D
: super self::C::•()
;
get onlySetter() → core::String

View file

@ -3,7 +3,7 @@ import self as self;
import "dart:core" as core;
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
;
set onlySetter(dynamic value) → void
;
@ -13,7 +13,7 @@ class C extends core::Object {
;
}
class D extends self::C {
synthetic constructor •() → void
synthetic constructor •() → self::D
;
get onlySetter() → core::String
;

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Fisk<T extends core::Object = dynamic> extends core::Object {
final field self::Fisk::T x;
const constructor fisk(self::Fisk::T x) → void
const constructor fisk(self::Fisk::T x) → self::Fisk<self::Fisk::T>
: self::Fisk::x = x, super core::Object::•()
;
}
@ -17,7 +17,7 @@ class Foo extends core::Object {
@self::Fisk::fisk<dynamic>(self::hest)
static const field self::Foo baz = const self::Foo::•(1, "Foo.baz");
static const field self::Foo cafebabe = const self::Foo::•(2, "Foo.cafebabe");
const constructor •(core::int index, core::String _name) → void
const constructor •(core::int index, core::String _name) → self::Foo
: self::Foo::index = index, self::Foo::_name = _name, super core::Object::•()
;
method toString() → core::String

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Fisk<T extends core::Object = dynamic> extends core::Object {
final field self::Fisk::T x;
const constructor fisk(self::Fisk::T x) → void
const constructor fisk(self::Fisk::T x) → self::Fisk<self::Fisk::T>
: self::Fisk::x = x, super core::Object::•()
;
}
@ -17,7 +17,7 @@ class Foo extends core::Object {
@self::Fisk::fisk<dynamic>(self::hest)
static const field self::Foo baz = const self::Foo::•(1, "Foo.baz");
static const field self::Foo cafebabe = const self::Foo::•(2, "Foo.cafebabe");
const constructor •(core::int index, core::String _name) → void
const constructor •(core::int index, core::String _name) → self::Foo
: self::Foo::index = index, self::Foo::_name = _name, super core::Object::•()
;
method toString() → core::String

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Fisk<T extends core::Object = dynamic> extends core::Object {
final field self::Fisk::T x;
const constructor fisk(self::Fisk::T x) → void
const constructor fisk(self::Fisk::T x) → self::Fisk<self::Fisk::T>
;
}
class Foo extends core::Object {
@ -14,7 +14,7 @@ class Foo extends core::Object {
static const field self::Foo bar = const self::Foo::•(0, "Foo.bar");
static const field self::Foo baz = const self::Foo::•(1, "Foo.baz");
static const field self::Foo cafebabe = const self::Foo::•(2, "Foo.cafebabe");
const constructor •(core::int index, core::String _name) → void
const constructor •(core::int index, core::String _name) → self::Foo
: self::Foo::index = index, self::Foo::_name = _name, super core::Object::•()
;
method toString() → core::String

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Fisk<T extends core::Object = dynamic> extends core::Object {
final field self::Fisk::T x;
const constructor fisk(self::Fisk::T x) → void
const constructor fisk(self::Fisk::T x) → self::Fisk<self::Fisk::T>
: self::Fisk::x = x, super core::Object::•()
;
}
@ -17,7 +17,7 @@ class Foo extends core::Object {
@self::Fisk::fisk<core::int>(self::hest)
static const field self::Foo baz = const self::Foo::•(1, "Foo.baz");
static const field self::Foo cafebabe = const self::Foo::•(2, "Foo.cafebabe");
const constructor •(core::int index, core::String _name) → void
const constructor •(core::int index, core::String _name) → self::Foo
: self::Foo::index = index, self::Foo::_name = _name, super core::Object::•()
;
method toString() → core::String

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Fisk<T extends core::Object = dynamic> extends core::Object {
final field self::Fisk::T x;
const constructor fisk(self::Fisk::T x) → void
const constructor fisk(self::Fisk::T x) → self::Fisk<self::Fisk::T>
: self::Fisk::x = x, super core::Object::•()
;
}
@ -17,7 +17,7 @@ class Foo extends core::Object {
@self::Fisk::fisk<core::int>(self::hest)
static const field self::Foo baz = const self::Foo::•(1, "Foo.baz");
static const field self::Foo cafebabe = const self::Foo::•(2, "Foo.cafebabe");
const constructor •(core::int index, core::String _name) → void
const constructor •(core::int index, core::String _name) → self::Foo
: self::Foo::index = index, self::Foo::_name = _name, super core::Object::•()
;
method toString() → core::String

View file

@ -11,14 +11,14 @@ typedef F1 = () → void;
@self::A::•(3)
typedef F2 = () → void;
class A extends core::Object {
const constructor •(core::int value) → void
const constructor •(core::int value) → self::A
: super core::Object::•()
;
}
@self::a
@self::A::•(2)
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
}

View file

@ -11,14 +11,14 @@ typedef F1 = () → void;
@self::A::•(3)
typedef F2 = () → void;
class A extends core::Object {
const constructor •(core::int value) → void
const constructor •(core::int value) → self::A
: super core::Object::•()
;
}
@self::a
@self::A::•(2)
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
}

View file

@ -5,11 +5,11 @@ import "dart:core" as core;
typedef F1 = () → void;
typedef F2 = () → void;
class A extends core::Object {
const constructor •(core::int value) → void
const constructor •(core::int value) → self::A
;
}
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
;
}
static const field core::Object a;

View file

@ -11,14 +11,14 @@ typedef F1 = () → void;
@self::A::•(3)
typedef F2 = () → void;
class A extends core::Object {
const constructor •(core::int value) → void
const constructor •(core::int value) → self::A
: super core::Object::•()
;
}
@self::a
@self::A::•(2)
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
}

View file

@ -11,14 +11,14 @@ typedef F1 = () → void;
@self::A::•(3)
typedef F2 = () → void;
class A extends core::Object {
const constructor •(core::int value) → void
const constructor •(core::int value) → self::A
: super core::Object::•()
;
}
@self::a
@self::A::•(2)
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
}

View file

@ -4,15 +4,15 @@ import "dart:core" as core;
typedef hest_t = ({@self::foo dynamic named}) → dynamic;
class Bar extends core::Object {
const constructor •() → void
const constructor •() → self::Bar
: super core::Object::•()
;
const constructor named(dynamic x) → void
const constructor named(dynamic x) → self::Bar
: super core::Object::•()
;
}
class Baz extends core::Object {
constructor •(@self::foo dynamic constructorFormal) → void
constructor •(@self::foo dynamic constructorFormal) → self::Baz
: super core::Object::•()
;
static factory bazFactory(@self::foo dynamic factoryFormal) → self::Baz

View file

@ -4,15 +4,15 @@ import "dart:core" as core;
typedef hest_t = ({@self::foo dynamic named}) → dynamic;
class Bar extends core::Object {
const constructor •() → void
const constructor •() → self::Bar
: super core::Object::•()
;
const constructor named(dynamic x) → void
const constructor named(dynamic x) → self::Bar
: super core::Object::•()
;
}
class Baz extends core::Object {
constructor •(@self::foo dynamic constructorFormal) → void
constructor •(@self::foo dynamic constructorFormal) → self::Baz
: super core::Object::•()
;
static factory bazFactory(@self::foo dynamic factoryFormal) → self::Baz

View file

@ -4,13 +4,13 @@ import "dart:core" as core;
typedef hest_t = ({named: dynamic}) → dynamic;
class Bar extends core::Object {
const constructor •() → void
const constructor •() → self::Bar
;
const constructor named(dynamic x) → void
const constructor named(dynamic x) → self::Bar
;
}
class Baz extends core::Object {
constructor •(dynamic constructorFormal) → void
constructor •(dynamic constructorFormal) → self::Baz
;
static factory bazFactory(dynamic factoryFormal) → self::Baz
;

View file

@ -4,15 +4,15 @@ import "dart:core" as core;
typedef hest_t = ({@self::foo dynamic named}) → dynamic;
class Bar extends core::Object {
const constructor •() → void
const constructor •() → self::Bar
: super core::Object::•()
;
const constructor named(dynamic x) → void
const constructor named(dynamic x) → self::Bar
: super core::Object::•()
;
}
class Baz extends core::Object {
constructor •(@self::foo dynamic constructorFormal) → void
constructor •(@self::foo dynamic constructorFormal) → self::Baz
: super core::Object::•()
;
static factory bazFactory(@self::foo dynamic factoryFormal) → self::Baz

View file

@ -4,15 +4,15 @@ import "dart:core" as core;
typedef hest_t = ({@self::foo dynamic named}) → dynamic;
class Bar extends core::Object {
const constructor •() → void
const constructor •() → self::Bar
: super core::Object::•()
;
const constructor named(dynamic x) → void
const constructor named(dynamic x) → self::Bar
: super core::Object::•()
;
}
class Baz extends core::Object {
constructor •(@self::foo dynamic constructorFormal) → void
constructor •(@self::foo dynamic constructorFormal) → self::Baz
: super core::Object::•()
;
static factory bazFactory(@self::foo dynamic factoryFormal) → self::Baz

View file

@ -3,22 +3,22 @@ import self as self;
import "dart:core" as core;
abstract class Base extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Base
: super core::Object::•()
;
}
class Foo extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super self::Base::•()
;
}
class Bar extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Bar
: super self::Base::•()
;
}
class Baz extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Baz
: super self::Base::•()
;
}

View file

@ -3,22 +3,22 @@ import self as self;
import "dart:core" as core;
abstract class Base extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Base
: super core::Object::•()
;
}
class Foo extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super self::Base::•()
;
}
class Bar extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Bar
: super self::Base::•()
;
}
class Baz extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Baz
: super self::Base::•()
;
}

View file

@ -3,19 +3,19 @@ import self as self;
import "dart:core" as core;
abstract class Base extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Base
;
}
class Foo extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Foo
;
}
class Bar extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Bar
;
}
class Baz extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Baz
;
}
static method foo(dynamic x) → void

View file

@ -3,22 +3,22 @@ import self as self;
import "dart:core" as core;
abstract class Base extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Base
: super core::Object::•()
;
}
class Foo extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super self::Base::•()
;
}
class Bar extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Bar
: super self::Base::•()
;
}
class Baz extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Baz
: super self::Base::•()
;
}

View file

@ -3,22 +3,22 @@ import self as self;
import "dart:core" as core;
abstract class Base extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Base
: super core::Object::•()
;
}
class Foo extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super self::Base::•()
;
}
class Bar extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Bar
: super self::Base::•()
;
}
class Baz extends self::Base {
synthetic constructor •() → void
synthetic constructor •() → self::Baz
: super self::Base::•()
;
}

View file

@ -6,7 +6,7 @@ import "dart:async" as asy;
class Node extends core::Object {
final field core::List<self::Node> nested;
final field core::String name;
constructor •(core::String name, [core::List<self::Node> nested = null]) → void
constructor •(core::String name, [core::List<self::Node> nested = null]) → self::Node
: self::Node::name = name, self::Node::nested = nested, super core::Object::•() {}
method toString() → core::String
return "<${this.{self::Node::name}}:[${let final dynamic #t1 = this.{self::Node::nested} in #t1.==(null) ? null : #t1.join(", ")}]>";

View file

@ -6,7 +6,7 @@ import "dart:async" as asy;
class Node extends core::Object {
final field core::List<self::Node> nested;
final field core::String name;
constructor •(core::String name, [core::List<self::Node> nested = null]) → void
constructor •(core::String name, [core::List<self::Node> nested = null]) → self::Node
: self::Node::name = name, self::Node::nested = nested, super core::Object::•() {}
method toString() → core::String
return "<${this.{self::Node::name}}:[${let final dynamic #t1 = this.{self::Node::nested} in #t1.==(null) ? null : #t1.join(", ")}]>";

View file

@ -5,7 +5,7 @@ import "dart:core" as core;
class Node extends core::Object {
final field core::List<self::Node> nested;
final field core::String name;
constructor •(core::String name, [core::List<self::Node> nested]) → void
constructor •(core::String name, [core::List<self::Node> nested]) → self::Node
;
method toString() → core::String
;

View file

@ -6,7 +6,7 @@ import "dart:async" as asy;
class Node extends core::Object {
final field core::List<self::Node> nested;
final field core::String name;
constructor •(core::String name, [core::List<self::Node> nested = null]) → void
constructor •(core::String name, [core::List<self::Node> nested = null]) → self::Node
: self::Node::name = name, self::Node::nested = nested, super core::Object::•() {}
method toString() → core::String
return "<${this.{self::Node::name}}:[${let final core::List<self::Node> #t1 = this.{self::Node::nested} in #t1.==(null) ?{core::String} null : #t1.{core::Iterable::join}(", ")}]>";

View file

@ -6,7 +6,7 @@ import "dart:async" as asy;
class Node extends core::Object {
final field core::List<self::Node> nested;
final field core::String name;
constructor •(core::String name, [core::List<self::Node> nested = null]) → void
constructor •(core::String name, [core::List<self::Node> nested = null]) → self::Node
: self::Node::name = name, self::Node::nested = nested, super core::Object::•() {}
method toString() → core::String
return "<${this.{self::Node::name}}:[${let final core::List<self::Node> #t1 = this.{self::Node::nested} in #t1.==(null) ?{core::String} null : #t1.{core::Iterable::join}(", ")}]>";

View file

@ -55,7 +55,7 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
set a(dynamic #synthetic) → dynamic
@ -68,7 +68,7 @@ class A extends core::Object {
^";
}
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
set a(dynamic #synthetic) → dynamic

View file

@ -15,7 +15,7 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
set a(dynamic #synthetic) → dynamic
@ -28,7 +28,7 @@ class A extends core::Object {
^";
}
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
set a(dynamic #synthetic) → dynamic

View file

@ -15,7 +15,7 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
;
set a(dynamic #synthetic) → dynamic
;
@ -23,7 +23,7 @@ class A extends core::Object {
;
}
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
;
set a(dynamic #synthetic) → dynamic
;

View file

@ -59,7 +59,7 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
set a(dynamic #synthetic) → void
@ -72,7 +72,7 @@ class A extends core::Object {
^";
}
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
set a(dynamic #synthetic) → void

View file

@ -19,7 +19,7 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
set a(dynamic #synthetic) → void
@ -32,7 +32,7 @@ class A extends core::Object {
^";
}
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
set a(dynamic #synthetic) → void

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Foo extends core::Object {
field dynamic field = null;
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super core::Object::•()
;
}

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Foo extends core::Object {
field dynamic field = null;
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super core::Object::•()
;
}

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Foo extends core::Object {
field dynamic field;
synthetic constructor •() → void
synthetic constructor •() → self::Foo
;
}
static method identity(dynamic x) → dynamic

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Foo extends core::Object {
field dynamic field = null;
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super core::Object::•()
;
}

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class Foo extends core::Object {
field dynamic field = null;
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super core::Object::•()
;
}

View file

@ -13,12 +13,12 @@ import "dart:core" as core;
class A extends core::Object {
field dynamic foo = 42;
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
}
class B extends self::A {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super self::A::•()
;
method foo() → dynamic

View file

@ -4,12 +4,12 @@ import "dart:core" as core;
class A extends core::Object {
field dynamic foo = 42;
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
}
class B extends self::A {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super self::A::•()
;
method foo() → dynamic

View file

@ -13,11 +13,11 @@ import "dart:core" as core;
class A extends core::Object {
field dynamic foo;
synthetic constructor •() → void
synthetic constructor •() → self::A
;
}
class B extends self::A {
synthetic constructor •() → void
synthetic constructor •() → self::B
;
method foo() → dynamic
;

View file

@ -19,12 +19,12 @@ import "dart:core" as core;
class A extends core::Object {
field core::int foo = 42;
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
}
class B extends self::A {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super self::A::•()
;
method foo() → dynamic

View file

@ -3,13 +3,13 @@ import self as self;
import "dart:core" as core;
abstract class I extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::I
: super core::Object::•()
;
abstract method call() → void;
}
class C extends core::Object implements self::I {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
method call([core::int x = null]) → void {}

View file

@ -3,13 +3,13 @@ import self as self;
import "dart:core" as core;
abstract class I extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::I
: super core::Object::•()
;
abstract method call() → void;
}
class C extends core::Object implements self::I {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
method call([core::int x = null]) → void {}

View file

@ -3,12 +3,12 @@ import self as self;
import "dart:core" as core;
abstract class I extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::I
;
abstract method call() → void;
}
class C extends core::Object implements self::I {
synthetic constructor •() → void
synthetic constructor •() → self::C
;
method call([core::int x]) → void
;

View file

@ -3,13 +3,13 @@ import self as self;
import "dart:core" as core;
abstract class I extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::I
: super core::Object::•()
;
abstract method call() → void;
}
class C extends core::Object implements self::I {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
method call([core::int x = null]) → void {}

View file

@ -3,13 +3,13 @@ import self as self;
import "dart:core" as core;
abstract class I extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::I
: super core::Object::•()
;
abstract method call() → void;
}
class C extends core::Object implements self::I {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
method call([core::int x = null]) → void {}

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
typedef Reducer<S extends core::Object = dynamic> = (S, dynamic) → S;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
method call(dynamic a, dynamic b) → dynamic {

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
typedef Reducer<S extends core::Object = dynamic> = (S, dynamic) → S;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
method call(dynamic a, dynamic b) → dynamic {

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
typedef Reducer<S extends core::Object = dynamic> = (S, dynamic) → S;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
;
method call(dynamic a, dynamic b) → dynamic
;

View file

@ -3,14 +3,14 @@ import self as self;
import "dart:core" as core;
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
abstract get f() → core::String;
}
class A extends core::Object implements self::B {
final field dynamic f;
constructor •(dynamic f) → void
constructor •(dynamic f) → self::A
: self::A::f = f, super core::Object::•()
;
}

View file

@ -3,14 +3,14 @@ import self as self;
import "dart:core" as core;
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
abstract get f() → core::String;
}
class A extends core::Object implements self::B {
final field dynamic f;
constructor •(dynamic f) → void
constructor •(dynamic f) → self::A
: self::A::f = f, super core::Object::•()
;
}

View file

@ -3,13 +3,13 @@ import self as self;
import "dart:core" as core;
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
;
abstract get f() → core::String;
}
class A extends core::Object implements self::B {
final field dynamic f;
constructor •(dynamic f) → void
constructor •(dynamic f) → self::A
;
}
static field dynamic a;

View file

@ -3,14 +3,14 @@ import self as self;
import "dart:core" as core;
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
abstract get f() → core::String;
}
class A extends core::Object implements self::B {
final field core::String f;
constructor •(core::String f) → void
constructor •(core::String f) → self::A
: self::A::f = f, super core::Object::•()
;
}

View file

@ -3,14 +3,14 @@ import self as self;
import "dart:core" as core;
abstract class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
abstract get f() → core::String;
}
class A extends core::Object implements self::B {
final field core::String f;
constructor •(core::String f) → void
constructor •(core::String f) → self::A
: self::A::f = f, super core::Object::•()
;
}

View file

@ -4,11 +4,11 @@ import "dart:core" as core;
import "dart:mirrors" as mir;
class _FailingTest extends core::Object {
const constructor •() → void
const constructor •() → self::_FailingTest
;
}
class MyTest extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::MyTest
;
method foo() → void
;
@ -16,7 +16,7 @@ class MyTest extends core::Object {
abstract class _MyTest2&Object&MyTest = core::Object with self::MyTest {
}
class MyTest2 extends self::_MyTest2&Object&MyTest {
synthetic constructor •() → void
synthetic constructor •() → self::MyTest2
;
}
static const field self::_FailingTest failingTest;

View file

@ -4,12 +4,12 @@ import "dart:core" as core;
import "dart:mirrors" as mir;
class _FailingTest extends core::Object {
const constructor •() → void
const constructor •() → self::_FailingTest
: super core::Object::•()
;
}
class MyTest extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::MyTest
: super core::Object::•()
;
@self::failingTest
@ -18,7 +18,7 @@ class MyTest extends core::Object {
abstract class _MyTest2&Object&MyTest = core::Object with self::MyTest {
}
class MyTest2 extends self::_MyTest2&Object&MyTest {
synthetic constructor •() → void
synthetic constructor •() → self::MyTest2
: super core::Object::•()
;
}

View file

@ -4,12 +4,12 @@ import "dart:core" as core;
import "dart:mirrors" as mir;
class _FailingTest extends core::Object {
const constructor •() → void
const constructor •() → self::_FailingTest
: super core::Object::•()
;
}
class MyTest extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::MyTest
: super core::Object::•()
;
@self::failingTest
@ -23,7 +23,7 @@ abstract class _MyTest2&Object&MyTest extends core::Object implements self::MyTe
method foo() → void {}
}
class MyTest2 extends self::_MyTest2&Object&MyTest {
synthetic constructor •() → void
synthetic constructor •() → self::MyTest2
: super core::Object::•()
;
}

View file

@ -6,14 +6,14 @@ import "dart:async" as asy;
class X extends core::Object {
final field dynamic x;
final field dynamic y;
constructor •(dynamic x, dynamic y) → void
constructor •(dynamic x, dynamic y) → self::X
: self::X::x = x, self::X::y = y, super core::Object::•()
;
method toString() → dynamic
return "X(${this.{self::X::x}}, ${this.{self::X::y}})";
}
class Y extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Y
: super core::Object::•()
;
method f(dynamic _) → dynamic {}

View file

@ -6,14 +6,14 @@ import "dart:async" as asy;
class X extends core::Object {
final field dynamic x;
final field dynamic y;
constructor •(dynamic x, dynamic y) → void
constructor •(dynamic x, dynamic y) → self::X
: self::X::x = x, self::X::y = y, super core::Object::•()
;
method toString() → dynamic
return "X(${this.{self::X::x}}, ${this.{self::X::y}})";
}
class Y extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Y
: super core::Object::•()
;
method f(dynamic _) → dynamic {}

View file

@ -6,13 +6,13 @@ import "dart:async" as asy;
class X extends core::Object {
final field dynamic x;
final field dynamic y;
constructor •(dynamic x, dynamic y) → void
constructor •(dynamic x, dynamic y) → self::X
;
method toString() → dynamic
;
}
class Y extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Y
;
method f(dynamic _) → dynamic
;

View file

@ -6,14 +6,14 @@ import "dart:async" as asy;
class X extends core::Object {
final field dynamic x;
final field dynamic y;
constructor •(dynamic x, dynamic y) → void
constructor •(dynamic x, dynamic y) → self::X
: self::X::x = x, self::X::y = y, super core::Object::•()
;
method toString() → core::String
return "X(${this.{self::X::x}}, ${this.{self::X::y}})";
}
class Y extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Y
: super core::Object::•()
;
method f(dynamic _) → dynamic {}

View file

@ -6,14 +6,14 @@ import "dart:async" as asy;
class X extends core::Object {
final field dynamic x;
final field dynamic y;
constructor •(dynamic x, dynamic y) → void
constructor •(dynamic x, dynamic y) → self::X
: self::X::x = x, self::X::y = y, super core::Object::•()
;
method toString() → core::String
return "X(${this.{self::X::x}}, ${this.{self::X::y}})";
}
class Y extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Y
: super core::Object::•()
;
method f(dynamic _) → dynamic {}

View file

@ -3,21 +3,21 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
method call(core::String s) → core::String
return "${s}${s}";
}
class B<T extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
method call(self::B::T t) → self::B::T
return t;
}
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
method call<T extends core::Object = dynamic>(self::C::call::T t) → self::C::call::T

View file

@ -3,21 +3,21 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
method call(core::String s) → core::String
return "${s}${s}";
}
class B<T extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
method call(self::B::T t) → self::B::T
return t;
}
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
method call<T extends core::Object = dynamic>(self::C::call::T t) → self::C::call::T

View file

@ -3,19 +3,19 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
;
method call(core::String s) → core::String
;
}
class B<T extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B<self::B::T>
;
method call(self::B::T t) → self::B::T
;
}
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
;
method call<T extends core::Object = dynamic>(self::C::call::T t) → self::C::call::T
;

View file

@ -10,21 +10,21 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
method call(core::String s) → core::String
return "${s}${s}";
}
class B<T extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
method call(generic-covariant-impl self::B::T t) → self::B::T
return t;
}
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
method call<T extends core::Object = dynamic>(self::C::call::T t) → self::C::call::T

View file

@ -3,21 +3,21 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::A
: super core::Object::•()
;
method call(core::String s) → core::String
return "${s}${s}";
}
class B<T extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
method call(generic-covariant-impl self::B::T t) → self::B::T
return t;
}
class C extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::C
: super core::Object::•()
;
method call<T extends core::Object = dynamic>(self::C::call::T t) → self::C::call::T

View file

@ -3,13 +3,13 @@ import self as self;
import "dart:core" as core;
class Callable extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Callable
;
method call(dynamic x) → dynamic
;
}
class CallableGetter extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::CallableGetter
;
get call() → dynamic
;

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class C extends core::Object {
field dynamic f = new self::C::_circular(null);
constructor _circular(dynamic f) → void
constructor _circular(dynamic f) → self::C
: self::C::f = f, super core::Object::•()
;
}

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class C extends core::Object {
field dynamic f = new self::C::_circular(null);
constructor _circular(dynamic f) → void
constructor _circular(dynamic f) → self::C
: self::C::f = f, super core::Object::•()
;
}

View file

@ -4,7 +4,7 @@ import "dart:core" as core;
class C extends core::Object {
field dynamic f;
constructor _circular(dynamic f) → void
constructor _circular(dynamic f) → self::C
;
}
static field dynamic x;

View file

@ -18,7 +18,7 @@ import "dart:core" as core;
class C extends core::Object {
field self::C f = new self::C::_circular(null);
constructor _circular(self::C f) → void
constructor _circular(self::C f) → self::C
: self::C::f = f, super core::Object::•()
;
}

View file

@ -11,7 +11,7 @@ import "dart:core" as core;
class C extends core::Object {
field self::C f = new self::C::_circular(null);
constructor _circular(self::C f) → void
constructor _circular(self::C f) → self::C
: self::C::f = f, super core::Object::•()
;
}

View file

@ -5,7 +5,7 @@ import "dart:core" as core;
class A extends core::Object {
final field core::int x;
final field core::int y;
constructor •(core::int y) → void
constructor •(core::int y) → self::A
: self::A::y = y, self::A::x = 42, super core::Object::•()
;
method method() → dynamic {
@ -15,7 +15,7 @@ class A extends core::Object {
}
}
class B extends self::A {
constructor •(dynamic x) → void
constructor •(dynamic x) → self::B
: super self::A::•(x)
;
method method() → dynamic {

View file

@ -5,7 +5,7 @@ import "dart:core" as core;
class A extends core::Object {
final field core::int x;
final field core::int y;
constructor •(core::int y) → void
constructor •(core::int y) → self::A
: self::A::y = y, self::A::x = 42, super core::Object::•()
;
method method() → dynamic {
@ -15,7 +15,7 @@ class A extends core::Object {
}
}
class B extends self::A {
constructor •(dynamic x) → void
constructor •(dynamic x) → self::B
: super self::A::•(x)
;
method method() → dynamic {

View file

@ -5,13 +5,13 @@ import "dart:core" as core;
class A extends core::Object {
final field core::int x;
final field core::int y;
constructor •(core::int y) → void
constructor •(core::int y) → self::A
;
method method() → dynamic
;
}
class B extends self::A {
constructor •(dynamic x) → void
constructor •(dynamic x) → self::B
;
method method() → dynamic
;

View file

@ -4,12 +4,12 @@ import "dart:core" as core;
class Foo extends core::Object {
field dynamic _field = new self::Bar::•();
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super core::Object::•()
;
}
class Bar extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Bar
: super core::Object::•()
;
}

View file

@ -4,12 +4,12 @@ import "dart:core" as core;
class Foo extends core::Object {
field dynamic _field = new self::Bar::•();
synthetic constructor •() → void
synthetic constructor •() → self::Foo
: super core::Object::•()
;
}
class Bar extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Bar
: super core::Object::•()
;
}

View file

@ -4,11 +4,11 @@ import "dart:core" as core;
class Foo extends core::Object {
field dynamic _field;
synthetic constructor •() → void
synthetic constructor •() → self::Foo
;
}
class Bar extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::Bar
;
}
static method useCallback(dynamic callback) → dynamic

View file

@ -26,12 +26,12 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
const constructor •() → void
const constructor •() → self::A
: super core::Object::•()
;
}
class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
}

View file

@ -13,12 +13,12 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
const constructor •() → void
const constructor •() → self::A
: super core::Object::•()
;
}
class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
}

View file

@ -16,11 +16,11 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
const constructor •() → void
const constructor •() → self::A
;
}
class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
;
}
static method main() → dynamic

View file

@ -26,12 +26,12 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
const constructor •() → void
const constructor •() → self::A
: super core::Object::•()
;
}
class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
}

View file

@ -13,12 +13,12 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
const constructor •() → void
const constructor •() → self::A
: super core::Object::•()
;
}
class B extends core::Object {
synthetic constructor •() → void
synthetic constructor •() → self::B
: super core::Object::•()
;
}

View file

@ -3,18 +3,18 @@ import self as self;
import "dart:core" as core;
class _Y<T extends core::Object = dynamic> extends core::Object {
const constructor •() → void
const constructor •() → self::_Y<self::_Y::T>
: super core::Object::•()
;
}
class A<T extends core::Object = dynamic> extends core::Object {
field self::_Y<self::A::T> x;
constructor •(self::_Y<self::A::T> x) → void
constructor •(self::_Y<self::A::T> x) → self::A<self::A::T>
: self::A::x = x, super core::Object::•()
;
}
class B<T extends core::Object = dynamic> extends self::A<self::B::T> {
constructor •() → void
constructor •() → self::B<self::B::T>
: super self::A::•(const self::_Y::•<dynamic>())
;
}

View file

@ -3,18 +3,18 @@ import self as self;
import "dart:core" as core;
class _Y<T extends core::Object = dynamic> extends core::Object {
const constructor •() → void
const constructor •() → self::_Y<self::_Y::T>
: super core::Object::•()
;
}
class A<T extends core::Object = dynamic> extends core::Object {
field self::_Y<self::A::T> x;
constructor •(self::_Y<self::A::T> x) → void
constructor •(self::_Y<self::A::T> x) → self::A<self::A::T>
: self::A::x = x, super core::Object::•()
;
}
class B<T extends core::Object = dynamic> extends self::A<self::B::T> {
constructor •() → void
constructor •() → self::B<self::B::T>
: super self::A::•(const self::_Y::•<dynamic>())
;
}

View file

@ -3,16 +3,16 @@ import self as self;
import "dart:core" as core;
class _Y<T extends core::Object = dynamic> extends core::Object {
const constructor •() → void
const constructor •() → self::_Y<self::_Y::T>
;
}
class A<T extends core::Object = dynamic> extends core::Object {
field self::_Y<self::A::T> x;
constructor •(self::_Y<self::A::T> x) → void
constructor •(self::_Y<self::A::T> x) → self::A<self::A::T>
;
}
class B<T extends core::Object = dynamic> extends self::A<self::B::T> {
constructor •() → void
constructor •() → self::B<self::B::T>
;
}
static method main() → dynamic

View file

@ -3,18 +3,18 @@ import self as self;
import "dart:core" as core;
class _Y<T extends core::Object = dynamic> extends core::Object {
const constructor •() → void
const constructor •() → self::_Y<self::_Y::T>
: super core::Object::•()
;
}
class A<T extends core::Object = dynamic> extends core::Object {
generic-covariant-impl field self::_Y<self::A::T> x;
constructor •(self::_Y<self::A::T> x) → void
constructor •(self::_Y<self::A::T> x) → self::A<self::A::T>
: self::A::x = x, super core::Object::•()
;
}
class B<T extends core::Object = dynamic> extends self::A<self::B::T> {
constructor •() → void
constructor •() → self::B<self::B::T>
: super self::A::•(const self::_Y::•<core::Null>())
;
}

View file

@ -3,18 +3,18 @@ import self as self;
import "dart:core" as core;
class _Y<T extends core::Object = dynamic> extends core::Object {
const constructor •() → void
const constructor •() → self::_Y<self::_Y::T>
: super core::Object::•()
;
}
class A<T extends core::Object = dynamic> extends core::Object {
generic-covariant-impl field self::_Y<self::A::T> x;
constructor •(self::_Y<self::A::T> x) → void
constructor •(self::_Y<self::A::T> x) → self::A<self::A::T>
: self::A::x = x, super core::Object::•()
;
}
class B<T extends core::Object = dynamic> extends self::A<self::B::T> {
constructor •() → void
constructor •() → self::B<self::B::T>
: super self::A::•(const self::_Y::•<core::Null>())
;
}

View file

@ -27,16 +27,16 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
constructor foo() → void
constructor foo() → self::A
: this self::A::bar()
;
constructor bar() → void
constructor bar() → self::A
: this self::A::foo()
;
constructor baz() → void
constructor baz() → self::A
: this self::A::foo()
;
constructor •() → void
constructor •() → self::A
: this self::A::•()
;
}

View file

@ -15,16 +15,16 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
constructor foo() → void
constructor foo() → self::A
: this self::A::bar()
;
constructor bar() → void
constructor bar() → self::A
: this self::A::foo()
;
constructor baz() → void
constructor baz() → self::A
: this self::A::foo()
;
constructor •() → void
constructor •() → self::A
: this self::A::•()
;
}

View file

@ -3,13 +3,13 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
constructor foo() → void
constructor foo() → self::A
;
constructor bar() → void
constructor bar() → self::A
;
constructor baz() → void
constructor baz() → self::A
;
constructor •() → void
constructor •() → self::A
;
}
static method main() → dynamic

View file

@ -27,16 +27,16 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
constructor foo() → void
constructor foo() → self::A
: this self::A::bar()
;
constructor bar() → void
constructor bar() → self::A
: this self::A::foo()
;
constructor baz() → void
constructor baz() → self::A
: this self::A::foo()
;
constructor •() → void
constructor •() → self::A
: this self::A::•()
;
}

View file

@ -15,16 +15,16 @@ import self as self;
import "dart:core" as core;
class A extends core::Object {
constructor foo() → void
constructor foo() → self::A
: this self::A::bar()
;
constructor bar() → void
constructor bar() → self::A
: this self::A::foo()
;
constructor baz() → void
constructor baz() → self::A
: this self::A::foo()
;
constructor •() → void
constructor •() → self::A
: this self::A::•()
;
}

View file

@ -0,0 +1,26 @@
// 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.
class A {
A();
}
class B {
B(int x, double y, String s);
}
class C<T> {
C();
}
class D<T, S> {
D(T x, S y);
}
void main() {
new A();
new B(0, 3.14, "foo");
new C();
new D<Object, int>(null, 3);
}

View file

@ -0,0 +1,30 @@
library;
import self as self;
import "dart:core" as core;
class A extends core::Object {
constructor •() → self::A
: super core::Object::•()
;
}
class B extends core::Object {
constructor •(core::int x, core::double y, core::String s) → self::B
: super core::Object::•()
;
}
class C<T extends core::Object = dynamic> extends core::Object {
constructor •() → self::C<self::C::T>
: super core::Object::•()
;
}
class D<T extends core::Object = dynamic, S extends core::Object = dynamic> extends core::Object {
constructor •(self::D::T x, self::D::S y) → self::D<self::D::T, self::D::S>
: super core::Object::•()
;
}
static method main() → void {
new self::A::•();
new self::B::•(0, 3.14, "foo");
new self::C::•<dynamic>();
new self::D::•<core::Object, core::int>(null, 3);
}

Some files were not shown because too many files have changed in this diff Show more