[kernel] Recover TypeParameter.variance while deserializing

Change-Id: I46d78dc5e98c5e3707d448eccfd6bdabb1c25ddb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/91827
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
This commit is contained in:
Dmitry Stefantsov 2019-09-23 15:17:38 +00:00 committed by commit-bot@chromium.org
parent c719d02753
commit 8d487b4fdc
157 changed files with 707 additions and 649 deletions

View file

@ -82,7 +82,7 @@ class TypeVariableBuilder extends TypeDeclarationBuilder {
int get variance => parameter.variance;
void set variance(int value) {
parameter.variance = variance;
parameter.variance = value;
}
DartType buildType(LibraryBuilder library, Nullability nullability,

View file

@ -320,6 +320,7 @@ calculate
calculated
calculates
calculation
calculator
call
callback
called

View file

@ -0,0 +1,9 @@
// Copyright (c) 2019, 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.
// The test checks how type parameters of different variances are serialized.
typedef F<W, X, Y, Z> = X Function(Y, Z Function(Z));
main() {}

View file

@ -0,0 +1,6 @@
library;
import self as self;
import "dart:core" as core;
typedef F<unrelated W extends core::Object = dynamic, X extends core::Object = dynamic, contravariant Y extends core::Object = dynamic, invariant Z extends core::Object = dynamic> = (Y, (Z) → Z) → X;
static method main() → dynamic {}

View file

@ -0,0 +1,6 @@
library;
import self as self;
import "dart:core" as core;
typedef F<unrelated W extends core::Object = dynamic, X extends core::Object = dynamic, contravariant Y extends core::Object = dynamic, invariant Z extends core::Object = dynamic> = (Y, (Z) → Z) → X;
static method main() → dynamic {}

View file

@ -0,0 +1,7 @@
library;
import self as self;
import "dart:core" as core;
typedef F<unrelated W extends core::Object* = dynamic, X extends core::Object* = dynamic, contravariant Y extends core::Object* = dynamic, invariant Z extends core::Object* = dynamic> = (Y*, (Z*) →* Z*) →* X*;
static method main() → dynamic
;

View file

@ -0,0 +1,6 @@
library;
import self as self;
import "dart:core" as core;
typedef F<unrelated W extends core::Object* = dynamic, X extends core::Object* = dynamic, contravariant Y extends core::Object* = dynamic, invariant Z extends core::Object* = dynamic> = (Y*, (Z*) →* Z*) →* X*;
static method main() → dynamic {}

View file

@ -0,0 +1,6 @@
library;
import self as self;
import "dart:core" as core;
typedef F<unrelated W extends core::Object* = dynamic, X extends core::Object* = dynamic, contravariant Y extends core::Object* = dynamic, invariant Z extends core::Object* = dynamic> = (Y*, (Z*) →* Z*) →* X*;
static method main() → dynamic {}

View file

@ -113,8 +113,8 @@ library;
import self as self;
import "dart:core" as core;
typedef ContravariantUse<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef InvariantUse<T extends core::Object* = dynamic> = (T*) →* T*;
typedef ContravariantUse<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef InvariantUse<invariant T extends core::Object* = dynamic> = (T*) →* T*;
class Empty extends core::Object {
synthetic constructor •() → self::Empty*
;

View file

@ -113,8 +113,8 @@ library;
import self as self;
import "dart:core" as core;
typedef ContravariantUse<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef InvariantUse<T extends core::Object* = dynamic> = (T*) →* T*;
typedef ContravariantUse<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef InvariantUse<invariant T extends core::Object* = dynamic> = (T*) →* T*;
class Empty extends core::Object {
synthetic constructor •() → self::Empty*
: super core::Object::•()

View file

@ -113,8 +113,8 @@ library;
import self as self;
import "dart:core" as core;
typedef ContravariantUse<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef InvariantUse<T extends core::Object* = dynamic> = (T*) →* T*;
typedef ContravariantUse<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef InvariantUse<invariant T extends core::Object* = dynamic> = (T*) →* T*;
class Empty extends core::Object {
synthetic constructor •() → self::Empty*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef Reducer<S extends core::Object* = dynamic> = (S*, dynamic) →* S*;
typedef Reducer<invariant S extends core::Object* = dynamic> = (S*, dynamic) →* S*;
class A extends core::Object {
synthetic constructor •() → self::A*
;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef Callback<T extends core::Object* = dynamic> = (T*) →* void;
typedef Callback<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class Foo<T extends core::Object* = dynamic> extends core::Object {
final field self::Foo::T* finalField;
final field (self::Foo::T*) →* void callbackField;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef Callback<T extends core::Object* = dynamic> = (T*) →* void;
typedef Callback<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class Foo<T extends core::Object* = dynamic> extends core::Object {
final field self::Foo::T* finalField;
final field (self::Foo::T*) →* void callbackField;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef Callback<T extends core::Object* = dynamic> = (T*) →* void;
typedef Callback<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class Foo<T extends core::Object* = dynamic> extends core::Object {
final field self::Foo::T* finalField;
final field (self::Foo::T*) →* void callbackField;

View file

@ -13,7 +13,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = (T*) →* void;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class B<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;

View file

@ -13,7 +13,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = (T*) →* void;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class B<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()

View file

@ -13,7 +13,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = (T*) →* void;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class B<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()

View file

@ -13,7 +13,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = (T*) →* void;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class B<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;

View file

@ -13,7 +13,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = (T*) →* void;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class B<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()

View file

@ -13,7 +13,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = (T*) →* void;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class B<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()

View file

@ -21,7 +21,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = (T*) →* void;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
abstract class A<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;

View file

@ -21,7 +21,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = (T*) →* void;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
abstract class A<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()

View file

@ -21,7 +21,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = (T*) →* void;
typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
abstract class A<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef Function2<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
class A<T extends core::Object* = dynamic> extends core::Object {
generic-covariant-impl field (self::A::T*) →* self::A::T* x;
constructor •((self::A::T*) →* self::A::T* x) → self::A<self::A::T*>*

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef Function2<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
class A<T extends core::Object* = dynamic> extends core::Object {
generic-covariant-impl field (self::A::T*) →* self::A::T* x;
constructor •((self::A::T*) →* self::A::T* x) → self::A<self::A::T*>*

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef Function2<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
class A<T extends core::Object* = dynamic> extends core::Object {
generic-covariant-impl field (self::A::T*) →* self::A::T* x;
constructor •((self::A::T*) →* self::A::T* x) → self::A<self::A::T*>*

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object* = dynamic> = () →* void;
typedef F<unrelated T extends core::Object* = dynamic> = () →* void;
class Foo extends core::Object {
const constructor •(core::List<core::String*>* l) → self::Foo*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef Function2<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
class Foo extends core::Object {
field core::List<core::int*>* x;
constructor •([core::List<core::int*>* x]) → self::Foo*

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef Function2<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
class Foo extends core::Object {
field core::List<core::int*>* x;
constructor •([core::List<core::int*>* x = #C2]) → self::Foo*

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef Function2<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
class Foo extends core::Object {
field core::List<core::int*>* x;
constructor •([core::List<core::int*>* x = #C2]) → self::Foo*

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef Function2<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
static method test() → void
;
static method main() → dynamic

View file

@ -61,7 +61,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef Function2<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
static method test() → void {
{
(core::int*) →* core::String* l0 = (core::int* x) → core::Null? => null;

View file

@ -61,7 +61,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef Function2<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
static method test() → void {
{
(core::int*) →* core::String* l0 = (core::int* x) → core::Null? => null;

View file

@ -2,8 +2,8 @@ library test;
import self as self;
import "dart:core" as core;
typedef Asserter<T extends core::Object* = dynamic> = (T*) →* void;
typedef AsserterBuilder<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
typedef Asserter<contravariant T extends core::Object* = dynamic> = (T*) →* void;
typedef AsserterBuilder<contravariant S extends core::Object* = dynamic, unrelated T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
class DartType extends core::Object {
synthetic constructor •() → self::DartType*
;

View file

@ -2,8 +2,8 @@ library test;
import self as self;
import "dart:core" as core;
typedef Asserter<T extends core::Object* = dynamic> = (T*) →* void;
typedef AsserterBuilder<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
typedef Asserter<contravariant T extends core::Object* = dynamic> = (T*) →* void;
typedef AsserterBuilder<contravariant S extends core::Object* = dynamic, unrelated T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
class DartType extends core::Object {
synthetic constructor •() → self::DartType*
: super core::Object::•()

View file

@ -2,8 +2,8 @@ library test;
import self as self;
import "dart:core" as core;
typedef Asserter<T extends core::Object* = dynamic> = (T*) →* void;
typedef AsserterBuilder<S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
typedef Asserter<contravariant T extends core::Object* = dynamic> = (T*) →* void;
typedef AsserterBuilder<contravariant S extends core::Object* = dynamic, unrelated T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
class DartType extends core::Object {
synthetic constructor •() → self::DartType*
: super core::Object::•()

View file

@ -2,6 +2,6 @@ library test;
import self as self;
import "dart:core" as core;
typedef ToValue<T extends core::Object* = dynamic> = (T*) →* void;
typedef ToValue<contravariant T extends core::Object* = dynamic> = (T*) →* void;
static method main() → dynamic
;

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<V extends core::Object* = dynamic> = (V*) →* void;
typedef F<contravariant V extends core::Object* = dynamic> = (V*) →* void;
class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
synthetic constructor •() → self::C<self::C::T*>*
;

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<V extends core::Object* = dynamic> = (V*) →* void;
typedef F<contravariant V extends core::Object* = dynamic> = (V*) →* void;
class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
synthetic constructor •() → self::C<self::C::T*>*
: super self::D::•()

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<V extends core::Object* = dynamic> = (V*) →* void;
typedef F<contravariant V extends core::Object* = dynamic> = (V*) →* void;
class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
synthetic constructor •() → self::C<self::C::T*>*
: super self::D::•()

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef G<V extends core::Object* = dynamic> = () →* core::List<V*>*;
typedef G<unrelated V extends core::Object* = dynamic> = () →* core::List<V*>*;
class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
synthetic constructor •() → self::C<self::C::T*>*
;

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef G<V extends core::Object* = dynamic> = () →* core::List<V*>*;
typedef G<unrelated V extends core::Object* = dynamic> = () →* core::List<V*>*;
class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
synthetic constructor •() → self::C<self::C::T*>*
: super self::D::•()

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef G<V extends core::Object* = dynamic> = () →* core::List<V*>*;
typedef G<unrelated V extends core::Object* = dynamic> = () →* core::List<V*>*;
class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
synthetic constructor •() → self::C<self::C::T*>*
: super self::D::•()

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
class Foo<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
;

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
class Foo<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
class Foo<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
class Foo<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
;

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
class Foo<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library test;
import self as self;
import "dart:core" as core;
typedef F<U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
class Foo<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class B<U extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::U*>*
;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class B<U extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::U*>*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class B<U extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::U*>*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class C extends core::Object {
synthetic constructor •() → self::C*
;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class C extends core::Object {
synthetic constructor •() → self::C*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class C extends core::Object {
synthetic constructor •() → self::C*
: super core::Object::•()

View file

@ -2,8 +2,8 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<contravariant U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
class C extends core::Object {
synthetic constructor •() → self::C*
;

View file

@ -2,8 +2,8 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<contravariant U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
class C extends core::Object {
synthetic constructor •() → self::C*
: super core::Object::•()

View file

@ -2,8 +2,8 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<contravariant U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
class C extends core::Object {
synthetic constructor •() → self::C*
: super core::Object::•()

View file

@ -16,7 +16,7 @@ library;
import self as self;
import "dart:core" as core;
typedef Fisk<TypeY extends core::Object* = dynamic> = () →* void;
typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
class Hest<TypeX extends () →* void = () →* void> extends core::Object {
synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
;

View file

@ -16,7 +16,7 @@ library;
import self as self;
import "dart:core" as core;
typedef Fisk<TypeY extends core::Object* = dynamic> = () →* void;
typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
class Hest<TypeX extends () →* void = () →* void> extends core::Object {
synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
: super core::Object::•()

View file

@ -16,7 +16,7 @@ library;
import self as self;
import "dart:core" as core;
typedef Fisk<TypeY extends core::Object* = dynamic> = () →* void;
typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
class Hest<TypeX extends () →* void = () →* void> extends core::Object {
synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
static field core::List<(core::num*) →* dynamic>* a;
static method main() → dynamic
;

View file

@ -2,6 +2,6 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
static field core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
static method main() → dynamic {}

View file

@ -2,6 +2,6 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
static field core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
static method main() → dynamic {}

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class B<S extends core::Object* = dynamic> extends core::Object {
final field core::List<(self::B::S*) →* dynamic>* foo;
final field core::List<(core::num*) →* dynamic>* bar;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class B<S extends core::Object* = dynamic> extends core::Object {
final field core::List<(self::B::S*) →* dynamic>* foo = <(self::B::S*) →* dynamic>[];
final field core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class B<S extends core::Object* = dynamic> extends core::Object {
final field core::List<(self::B::S*) →* dynamic>* foo = <(self::B::S*) →* dynamic>[];
final field core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a;
static method main() → dynamic
;

View file

@ -2,6 +2,6 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
static method main() → dynamic {}

View file

@ -2,6 +2,6 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
static method main() → dynamic {}

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class C extends core::Object {
synthetic constructor •() → self::C*
;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class C extends core::Object {
synthetic constructor •() → self::C*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
class C extends core::Object {
synthetic constructor •() → self::C*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B<T extends (core::num*) →* dynamic = (core::num*) →* dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B<T extends (core::num*) →* dynamic = (core::num*) →* dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::num* = core::num*> = (T*) →* dynamic;
typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
class B<T extends (core::num*) →* dynamic = (core::num*) →* dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()

View file

@ -2,8 +2,8 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<contravariant S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
static field ((dynamic) →* dynamic) →* dynamic b;
static method main() → dynamic
;

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<contravariant S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
static field ((dynamic) →* dynamic) →* dynamic b;
static method main() → dynamic {}

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef A<T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
typedef B<contravariant S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
static field ((dynamic) →* dynamic) →* dynamic b;
static method main() → dynamic {}

View file

@ -2,19 +2,19 @@ library;
import self as self;
import "dart:core" as core;
typedef F<X extends core::Object = dynamic> = <Y extends X = dynamic>() → void;
typedef F<invariant X extends core::Object = dynamic> = <Y extends X = dynamic>() → void;
typedef Fcov<X extends core::Object = dynamic> = () → X;
typedef Fcon<X extends core::Object = dynamic> = (X) → dynamic;
typedef Finv<X extends core::Object = dynamic> = (X) → X;
typedef Fcon<contravariant X extends core::Object = dynamic> = (X) → dynamic;
typedef Finv<invariant X extends core::Object = dynamic> = (X) → X;
typedef FcovBound<X extends core::num = dynamic> = () → X;
typedef FconBound<X extends core::num = dynamic> = (X) → dynamic;
typedef FinvBound<X extends core::num = dynamic> = (X) → X;
typedef FconBound<contravariant X extends core::num = dynamic> = (X) → dynamic;
typedef FinvBound<invariant X extends core::num = dynamic> = (X) → X;
typedef FcovCyclicBound<X extends self::A<X> = dynamic> = () → X;
typedef FconCyclicBound<X extends self::A<X> = dynamic> = (X) → dynamic;
typedef FinvCyclicBound<X extends self::A<X> = dynamic> = (X) → X;
typedef FconCyclicBound<contravariant X extends self::A<X> = dynamic> = (X) → dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X> = dynamic> = (X) → X;
typedef FcovCyclicCoBound<X extends (X) → dynamic = dynamic> = () → X;
typedef FconCyclicCoBound<X extends (X) → dynamic = dynamic> = (X) → dynamic;
typedef FinvCyclicCoBound<X extends (X) → dynamic = dynamic> = (X) → X;
typedef FconCyclicCoBound<contravariant X extends (X) → dynamic = dynamic> = (X) → dynamic;
typedef FinvCyclicCoBound<invariant X extends (X) → dynamic = dynamic> = (X) → X;
class Acov<X extends () → self::Acov::Y = dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Acov<self::Acov::X, self::Acov::Y>
: super core::Object::•()

View file

@ -2,19 +2,19 @@ library;
import self as self;
import "dart:core" as core;
typedef F<X extends core::Object = dynamic> = <Y extends X = dynamic>() → void;
typedef F<invariant X extends core::Object = dynamic> = <Y extends X = dynamic>() → void;
typedef Fcov<X extends core::Object = dynamic> = () → X;
typedef Fcon<X extends core::Object = dynamic> = (X) → dynamic;
typedef Finv<X extends core::Object = dynamic> = (X) → X;
typedef Fcon<contravariant X extends core::Object = dynamic> = (X) → dynamic;
typedef Finv<invariant X extends core::Object = dynamic> = (X) → X;
typedef FcovBound<X extends core::num = dynamic> = () → X;
typedef FconBound<X extends core::num = dynamic> = (X) → dynamic;
typedef FinvBound<X extends core::num = dynamic> = (X) → X;
typedef FconBound<contravariant X extends core::num = dynamic> = (X) → dynamic;
typedef FinvBound<invariant X extends core::num = dynamic> = (X) → X;
typedef FcovCyclicBound<X extends self::A<X> = dynamic> = () → X;
typedef FconCyclicBound<X extends self::A<X> = dynamic> = (X) → dynamic;
typedef FinvCyclicBound<X extends self::A<X> = dynamic> = (X) → X;
typedef FconCyclicBound<contravariant X extends self::A<X> = dynamic> = (X) → dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X> = dynamic> = (X) → X;
typedef FcovCyclicCoBound<X extends (X) → dynamic = dynamic> = () → X;
typedef FconCyclicCoBound<X extends (X) → dynamic = dynamic> = (X) → dynamic;
typedef FinvCyclicCoBound<X extends (X) → dynamic = dynamic> = (X) → X;
typedef FconCyclicCoBound<contravariant X extends (X) → dynamic = dynamic> = (X) → dynamic;
typedef FinvCyclicCoBound<invariant X extends (X) → dynamic = dynamic> = (X) → X;
class Acov<X extends () → self::Acov::Y = dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Acov<self::Acov::X, self::Acov::Y>
: super core::Object::•()

View file

@ -2,76 +2,76 @@ library;
import self as self;
import "dart:core" as core;
typedef F<X extends core::Object = dynamic> = <Y extends X = dynamic>() → void;
typedef Fcov<X extends core::Object = dynamic> = () → X;
typedef Fcon<X extends core::Object = dynamic> = (X) → dynamic;
typedef Finv<X extends core::Object = dynamic> = (X) → X;
typedef FcovBound<X extends core::num = dynamic> = () → X;
typedef FconBound<X extends core::num = dynamic> = (X) → dynamic;
typedef FinvBound<X extends core::num = dynamic> = (X) → X;
typedef FcovCyclicBound<X extends self::A<X> = dynamic> = () → X;
typedef FconCyclicBound<X extends self::A<X> = dynamic> = (X) → dynamic;
typedef FinvCyclicBound<X extends self::A<X> = dynamic> = (X) → X;
typedef FcovCyclicCoBound<X extends (X) → dynamic = dynamic> = () → X;
typedef FconCyclicCoBound<X extends (X) → dynamic = dynamic> = (X) → dynamic;
typedef FinvCyclicCoBound<X extends (X) → dynamic = dynamic> = (X) → X;
class Acov<X extends () → self::Acov::Y = dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Acov<self::Acov::X, self::Acov::Y>
typedef F<invariant X extends core::Object* = dynamic> = <Y extends X* = dynamic>() →* void;
typedef Fcov<X extends core::Object* = dynamic> = () →* X*;
typedef Fcon<contravariant X extends core::Object* = dynamic> = (X*) →* dynamic;
typedef Finv<invariant X extends core::Object* = dynamic> = (X*) →* X*;
typedef FcovBound<X extends core::num* = core::num*> = () →* X*;
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class Acov<X extends () →* self::Acov::Y* = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acov<self::Acov::X*, self::Acov::Y*>*
;
}
class Acon<X extends (self::Acon::Y) → dynamic = dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X, self::Acon::Y>
class Acon<X extends (self::Acon::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X*, self::Acon::Y*>*
;
}
class Ainv<X extends (self::Ainv::Y) → self::Ainv::Y = dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Ainv<self::Ainv::X, self::Ainv::Y>
class Ainv<X extends (self::Ainv::Y*) →* self::Ainv::Y* = (dynamic) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Ainv<self::Ainv::X*, self::Ainv::Y*>*
;
}
class AcovBound<X extends () → self::AcovBound::Y = dynamic, Y extends core::num = dynamic> extends core::Object {
synthetic constructor •() → self::AcovBound<self::AcovBound::X, self::AcovBound::Y>
class AcovBound<X extends () →* self::AcovBound::Y* = () →* core::num*, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AcovBound<self::AcovBound::X*, self::AcovBound::Y*>*
;
}
class AconBound<X extends (self::AconBound::Y) → dynamic = dynamic, Y extends core::num = dynamic> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X, self::AconBound::Y>
class AconBound<X extends (self::AconBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
;
}
class AinvBound<X extends (self::AinvBound::Y) → self::AinvBound::Y = dynamic, Y extends core::num = dynamic> extends core::Object {
synthetic constructor •() → self::AinvBound<self::AinvBound::X, self::AinvBound::Y>
class AinvBound<X extends (self::AinvBound::Y*) →* self::AinvBound::Y* = (core::num*) →* core::num*, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AinvBound<self::AinvBound::X*, self::AinvBound::Y*>*
;
}
class A<X extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
class A<X extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
;
}
class AcovCyclicBound<X extends () → self::AcovCyclicBound::Y = dynamic, Y extends self::A<self::AcovCyclicBound::Y> = dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicBound<self::AcovCyclicBound::X, self::AcovCyclicBound::Y>
class AcovCyclicBound<X extends () →* self::AcovCyclicBound::Y* = () →* self::A<dynamic>*, Y extends self::A<self::AcovCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AcovCyclicBound<self::AcovCyclicBound::X*, self::AcovCyclicBound::Y*>*
;
}
class AconCyclicBound<X extends (self::AconCyclicBound::Y) → dynamic = dynamic, Y extends self::A<self::AconCyclicBound::Y> = dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X, self::AconCyclicBound::Y>
class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X*, self::AconCyclicBound::Y*>*
;
}
class AinvCyclicBound<X extends (self::AinvCyclicBound::Y) → self::AinvCyclicBound::Y = dynamic, Y extends self::A<self::AinvCyclicBound::Y> = dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicBound<self::AinvCyclicBound::X, self::AinvCyclicBound::Y>
class AinvCyclicBound<X extends (self::AinvCyclicBound::Y*) →* self::AinvCyclicBound::Y* = (self::A<dynamic>*) →* self::A<dynamic>*, Y extends self::A<self::AinvCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AinvCyclicBound<self::AinvCyclicBound::X*, self::AinvCyclicBound::Y*>*
;
}
class AcovCyclicCoBound<X extends () → self::AcovCyclicCoBound::Y = dynamic, Y extends (self::AcovCyclicCoBound::Y) → dynamic = dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X, self::AcovCyclicCoBound::Y>
class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (core::Null?) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X*, self::AcovCyclicCoBound::Y*>*
;
}
class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y) → dynamic = dynamic, Y extends (self::AconCyclicCoBound::Y) → dynamic = dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X, self::AconCyclicCoBound::Y>
class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X*, self::AconCyclicCoBound::Y*>*
;
}
class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y) → self::AinvCyclicCoBound::Y = dynamic, Y extends (self::AinvCyclicCoBound::Y) → dynamic = dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X, self::AinvCyclicCoBound::Y>
class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X*, self::AinvCyclicCoBound::Y*>*
;
}
class B<X extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::X>
class B<X extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::X*>*
;
}
static method toF<X extends core::Object = dynamic>(self::toF::X x) → <Y extends self::toF::X = dynamic>() → void
static method toF<X extends core::Object* = dynamic>(self::toF::X* x) → <Y extends self::toF::X* = dynamic>() →* void
;
static method testTypeAliasAsTypeArgument() → void
;

View file

@ -2,158 +2,158 @@ library;
import self as self;
import "dart:core" as core;
typedef F<X extends core::Object = dynamic> = <Y extends X = dynamic>() → void;
typedef Fcov<X extends core::Object = dynamic> = () → X;
typedef Fcon<X extends core::Object = dynamic> = (X) → dynamic;
typedef Finv<X extends core::Object = dynamic> = (X) → X;
typedef FcovBound<X extends core::num = core::num> = () → X;
typedef FconBound<X extends core::num = core::num> = (X) → dynamic;
typedef FinvBound<X extends core::num = core::num> = (X) → X;
typedef FcovCyclicBound<X extends self::A<X> = self::A<dynamic>> = () → X;
typedef FconCyclicBound<X extends self::A<X> = self::A<core::Null>> = (X) → dynamic;
typedef FinvCyclicBound<X extends self::A<X> = self::A<dynamic>> = (X) → X;
typedef FcovCyclicCoBound<X extends (X) → dynamic = (core::Null) → dynamic> = () → X;
typedef FconCyclicCoBound<X extends (X) → dynamic = (dynamic) → dynamic> = (X) → dynamic;
typedef FinvCyclicCoBound<X extends (X) → dynamic = (dynamic) → dynamic> = (X) → X;
class Acov<X extends () → self::Acov::Y = () → dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Acov<self::Acov::X, self::Acov::Y>
typedef F<invariant X extends core::Object* = dynamic> = <Y extends X* = dynamic>() →* void;
typedef Fcov<X extends core::Object* = dynamic> = () →* X*;
typedef Fcon<contravariant X extends core::Object* = dynamic> = (X*) →* dynamic;
typedef Finv<invariant X extends core::Object* = dynamic> = (X*) →* X*;
typedef FcovBound<X extends core::num* = core::num*> = () →* X*;
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class Acov<X extends () →* self::Acov::Y* = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acov<self::Acov::X*, self::Acov::Y*>*
: super core::Object::•()
;
}
class Acon<X extends (self::Acon::Y) → dynamic = (core::Null) → dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X, self::Acon::Y>
class Acon<X extends (self::Acon::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X*, self::Acon::Y*>*
: super core::Object::•()
;
}
class Ainv<X extends (self::Ainv::Y) → self::Ainv::Y = (dynamic) → dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Ainv<self::Ainv::X, self::Ainv::Y>
class Ainv<X extends (self::Ainv::Y*) →* self::Ainv::Y* = (dynamic) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Ainv<self::Ainv::X*, self::Ainv::Y*>*
: super core::Object::•()
;
}
class AcovBound<X extends () → self::AcovBound::Y = () → core::num, Y extends core::num = core::num> extends core::Object {
synthetic constructor •() → self::AcovBound<self::AcovBound::X, self::AcovBound::Y>
class AcovBound<X extends () →* self::AcovBound::Y* = () →* core::num*, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AcovBound<self::AcovBound::X*, self::AcovBound::Y*>*
: super core::Object::•()
;
}
class AconBound<X extends (self::AconBound::Y) → dynamic = (core::Null) → dynamic, Y extends core::num = core::num> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X, self::AconBound::Y>
class AconBound<X extends (self::AconBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
: super core::Object::•()
;
}
class AinvBound<X extends (self::AinvBound::Y) → self::AinvBound::Y = (core::num) → core::num, Y extends core::num = core::num> extends core::Object {
synthetic constructor •() → self::AinvBound<self::AinvBound::X, self::AinvBound::Y>
class AinvBound<X extends (self::AinvBound::Y*) →* self::AinvBound::Y* = (core::num*) →* core::num*, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AinvBound<self::AinvBound::X*, self::AinvBound::Y*>*
: super core::Object::•()
;
}
class A<X extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
class A<X extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
}
class AcovCyclicBound<X extends () → self::AcovCyclicBound::Y = () → self::A<dynamic>, Y extends self::A<self::AcovCyclicBound::Y> = self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::AcovCyclicBound<self::AcovCyclicBound::X, self::AcovCyclicBound::Y>
class AcovCyclicBound<X extends () →* self::AcovCyclicBound::Y* = () →* self::A<dynamic>*, Y extends self::A<self::AcovCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AcovCyclicBound<self::AcovCyclicBound::X*, self::AcovCyclicBound::Y*>*
: super core::Object::•()
;
}
class AconCyclicBound<X extends (self::AconCyclicBound::Y) → dynamic = (core::Null) → dynamic, Y extends self::A<self::AconCyclicBound::Y> = self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X, self::AconCyclicBound::Y>
class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X*, self::AconCyclicBound::Y*>*
: super core::Object::•()
;
}
class AinvCyclicBound<X extends (self::AinvCyclicBound::Y) → self::AinvCyclicBound::Y = (self::A<dynamic>) → self::A<dynamic>, Y extends self::A<self::AinvCyclicBound::Y> = self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::AinvCyclicBound<self::AinvCyclicBound::X, self::AinvCyclicBound::Y>
class AinvCyclicBound<X extends (self::AinvCyclicBound::Y*) →* self::AinvCyclicBound::Y* = (self::A<dynamic>*) →* self::A<dynamic>*, Y extends self::A<self::AinvCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AinvCyclicBound<self::AinvCyclicBound::X*, self::AinvCyclicBound::Y*>*
: super core::Object::•()
;
}
class AcovCyclicCoBound<X extends () → self::AcovCyclicCoBound::Y = () → (core::Null) → dynamic, Y extends (self::AcovCyclicCoBound::Y) → dynamic = (core::Null) → dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X, self::AcovCyclicCoBound::Y>
class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (core::Null?) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X*, self::AcovCyclicCoBound::Y*>*
: super core::Object::•()
;
}
class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y) → dynamic = (core::Null) → dynamic, Y extends (self::AconCyclicCoBound::Y) → dynamic = (core::Null) → dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X, self::AconCyclicCoBound::Y>
class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X*, self::AconCyclicCoBound::Y*>*
: super core::Object::•()
;
}
class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y) → self::AinvCyclicCoBound::Y = ((core::Null) → dynamic) → (core::Null) → dynamic, Y extends (self::AinvCyclicCoBound::Y) → dynamic = (core::Null) → dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X, self::AinvCyclicCoBound::Y>
class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X*, self::AinvCyclicCoBound::Y*>*
: super core::Object::•()
;
}
class B<X extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::X>
class B<X extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::X*>*
: super core::Object::•()
;
}
static method toF<X extends core::Object = dynamic>(self::toF::X x) → <Y extends self::toF::X = dynamic>() → void
static method toF<X extends core::Object* = dynamic>(self::toF::X* x) → <Y extends self::toF::X* = dynamic>() →* void
return null;
static method testTypeAliasAsTypeArgument() → void {
self::Acov<() → dynamic, dynamic> source1;
<Y extends self::Acov<() → dynamic, dynamic> = dynamic>() → void fsource1 = self::toF<self::Acov<() → dynamic, dynamic>>(source1);
<Y extends self::Acov<() → dynamic, dynamic> = dynamic>() → void target1 = fsource1;
self::Acon<(core::Null) → dynamic, dynamic> source2;
<Y extends self::Acon<(core::Null) → dynamic, dynamic> = dynamic>() → void fsource2 = self::toF<self::Acon<(core::Null) → dynamic, dynamic>>(source2);
<Y extends self::Acon<(core::Null) → dynamic, dynamic> = dynamic>() → void target2 = fsource2;
self::Ainv<(dynamic) → dynamic, dynamic> source3;
<Y extends self::Ainv<(dynamic) → dynamic, dynamic> = dynamic>() → void fsource3 = self::toF<self::Ainv<(dynamic) → dynamic, dynamic>>(source3);
<Y extends self::Ainv<(dynamic) → dynamic, dynamic> = dynamic>() → void target3 = fsource3;
self::AcovBound<() → core::num, core::num> source4;
<Y extends self::AcovBound<() → core::num, core::num> = dynamic>() → void fsource4 = self::toF<self::AcovBound<() → core::num, core::num>>(source4);
<Y extends self::AcovBound<() → core::num, core::num> = dynamic>() → void target4 = fsource4;
self::AconBound<(core::Null) → dynamic, core::num> source5;
<Y extends self::AconBound<(core::Null) → dynamic, core::num> = dynamic>() → void fsource5 = self::toF<self::AconBound<(core::Null) → dynamic, core::num>>(source5);
<Y extends self::AconBound<(core::Null) → dynamic, core::num> = dynamic>() → void target5 = fsource5;
self::AinvBound<(core::num) → core::num, core::num> source6;
<Y extends self::AinvBound<(core::num) → core::num, core::num> = dynamic>() → void fsource6 = self::toF<self::AinvBound<(core::num) → core::num, core::num>>(source6);
<Y extends self::AinvBound<(core::num) → core::num, core::num> = dynamic>() → void target6 = fsource6;
self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>> source7;
<Y extends self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>> = dynamic>() → void fsource7 = self::toF<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>>(source7);
<Y extends self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>> = dynamic>() → void target7 = fsource7;
self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>> source8;
<Y extends self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>> = dynamic>() → void fsource8 = self::toF<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>>(source8);
<Y extends self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>> = dynamic>() → void target8 = fsource8;
self::AinvCyclicBound<(self::A<dynamic>) → self::A<dynamic>, self::A<dynamic>> source9;
self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic> source10;
<Y extends self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic> = dynamic>() → void fsource10 = self::toF<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>>(source10);
<Y extends self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic> = dynamic>() → void target10 = fsource10;
self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic> source11;
<Y extends self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic> = dynamic>() → void fsource11 = self::toF<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>>(source11);
<Y extends self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic> = dynamic>() → void target11 = fsource11;
self::AinvCyclicCoBound<((core::Null) → dynamic) → (core::Null) → dynamic, (core::Null) → dynamic> source12;
self::Acov<() →* dynamic, dynamic>* source1;
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void fsource1 = self::toF<self::Acov<() →* dynamic, dynamic>*>(source1);
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void target1 = fsource1;
self::Acon<(core::Null?) →* dynamic, dynamic>* source2;
<Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(core::Null?) →* dynamic, dynamic>*>(source2);
<Y extends self::Acon<(core::Null*) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
self::Ainv<(dynamic) →* dynamic, dynamic>* source3;
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void fsource3 = self::toF<self::Ainv<(dynamic) →* dynamic, dynamic>*>(source3);
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void target3 = fsource3;
self::AcovBound<() →* core::num*, core::num*>* source4;
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void fsource4 = self::toF<self::AcovBound<() →* core::num*, core::num*>*>(source4);
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void target4 = fsource4;
self::AconBound<(core::Null?) →* dynamic, core::num*>* source5;
<Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(core::Null?) →* dynamic, core::num*>*>(source5);
<Y extends self::AconBound<(core::Null*) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
self::AinvBound<(core::num*) →* core::num*, core::num*>* source6;
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void fsource6 = self::toF<self::AinvBound<(core::num*) →* core::num*, core::num*>*>(source6);
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void target6 = fsource6;
self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* source7;
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void fsource7 = self::toF<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>(source7);
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void target7 = fsource7;
self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* source8;
<Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>(source8);
<Y extends self::AconCyclicBound<(core::Null*) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>* source9;
self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source10;
<Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source10);
<Y extends self::AcovCyclicCoBound<() →* (core::Null*) →* dynamic, (core::Null*) →* dynamic>* = dynamic>() →* void target10 = fsource10;
self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* source11;
<Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source11);
<Y extends self::AconCyclicCoBound<(core::Null*) →* dynamic, (core::Null*) →* dynamic>* = dynamic>() →* void target11 = fsource11;
self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source12;
}
static method testNested() → void {
self::B<self::Acov<() → dynamic, dynamic>> source1;
<Y extends self::B<self::Acov<() → dynamic, dynamic>> = dynamic>() → void fsource1 = self::toF<self::B<self::Acov<() → dynamic, dynamic>>>(source1);
<Y extends self::B<self::Acov<() → dynamic, dynamic>> = dynamic>() → void target1 = fsource1;
self::B<self::Acon<(core::Null) → dynamic, dynamic>> source2;
<Y extends self::B<self::Acon<(core::Null) → dynamic, dynamic>> = dynamic>() → void fsource2 = self::toF<self::B<self::Acon<(core::Null) → dynamic, dynamic>>>(source2);
<Y extends self::B<self::Acon<(core::Null) → dynamic, dynamic>> = dynamic>() → void target2 = fsource2;
self::B<self::Ainv<(dynamic) → dynamic, dynamic>> source3;
<Y extends self::B<self::Ainv<(dynamic) → dynamic, dynamic>> = dynamic>() → void fsource3 = self::toF<self::B<self::Ainv<(dynamic) → dynamic, dynamic>>>(source3);
<Y extends self::B<self::Ainv<(dynamic) → dynamic, dynamic>> = dynamic>() → void target3 = fsource3;
self::B<self::AcovBound<() → core::num, core::num>> source4;
<Y extends self::B<self::AcovBound<() → core::num, core::num>> = dynamic>() → void fsource4 = self::toF<self::B<self::AcovBound<() → core::num, core::num>>>(source4);
<Y extends self::B<self::AcovBound<() → core::num, core::num>> = dynamic>() → void target4 = fsource4;
self::B<self::AconBound<(core::Null) → dynamic, core::num>> source5;
<Y extends self::B<self::AconBound<(core::Null) → dynamic, core::num>> = dynamic>() → void fsource5 = self::toF<self::B<self::AconBound<(core::Null) → dynamic, core::num>>>(source5);
<Y extends self::B<self::AconBound<(core::Null) → dynamic, core::num>> = dynamic>() → void target5 = fsource5;
self::B<self::AinvBound<(core::num) → core::num, core::num>> source6;
<Y extends self::B<self::AinvBound<(core::num) → core::num, core::num>> = dynamic>() → void fsource6 = self::toF<self::B<self::AinvBound<(core::num) → core::num, core::num>>>(source6);
<Y extends self::B<self::AinvBound<(core::num) → core::num, core::num>> = dynamic>() → void target6 = fsource6;
self::B<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>> source7;
<Y extends self::B<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>> = dynamic>() → void fsource7 = self::toF<self::B<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>>>(source7);
<Y extends self::B<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>> = dynamic>() → void target7 = fsource7;
self::B<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>> source8;
<Y extends self::B<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>> = dynamic>() → void fsource8 = self::toF<self::B<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>>>(source8);
<Y extends self::B<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>> = dynamic>() → void target8 = fsource8;
self::B<self::AinvCyclicBound<(self::A<dynamic>) → self::A<dynamic>, self::A<dynamic>>> source9;
self::B<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>> source10;
<Y extends self::B<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>> = dynamic>() → void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>>>(source10);
<Y extends self::B<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>> = dynamic>() → void target10 = fsource10;
self::B<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>> source11;
<Y extends self::B<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>> = dynamic>() → void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>>>(source11);
<Y extends self::B<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>> = dynamic>() → void target11 = fsource11;
self::B<self::AinvCyclicCoBound<((core::Null) → dynamic) → (core::Null) → dynamic, (core::Null) → dynamic>> source12;
self::B<self::Acov<() →* dynamic, dynamic>*>* source1;
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void fsource1 = self::toF<self::B<self::Acov<() →* dynamic, dynamic>*>*>(source1);
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void target1 = fsource1;
self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* source2;
<Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>*>(source2);
<Y extends self::B<self::Acon<(core::Null*) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* source3;
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void fsource3 = self::toF<self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>*>(source3);
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void target3 = fsource3;
self::B<self::AcovBound<() →* core::num*, core::num*>*>* source4;
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void fsource4 = self::toF<self::B<self::AcovBound<() →* core::num*, core::num*>*>*>(source4);
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void target4 = fsource4;
self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* source5;
<Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>*>(source5);
<Y extends self::B<self::AconBound<(core::Null*) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* source6;
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void fsource6 = self::toF<self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>*>(source6);
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void target6 = fsource6;
self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* source7;
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void fsource7 = self::toF<self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>*>(source7);
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void target7 = fsource7;
self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* source8;
<Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>*>(source8);
<Y extends self::B<self::AconCyclicBound<(core::Null*) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
self::B<self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>*>* source9;
self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source10;
<Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source10);
<Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null*) →* dynamic, (core::Null*) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source11;
<Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source11);
<Y extends self::B<self::AconCyclicCoBound<(core::Null*) →* dynamic, (core::Null*) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
self::B<self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source12;
}
static method main() → dynamic {
self::testTypeAliasAsTypeArgument();

View file

@ -2,158 +2,158 @@ library;
import self as self;
import "dart:core" as core;
typedef F<X extends core::Object = dynamic> = <Y extends X = dynamic>() → void;
typedef Fcov<X extends core::Object = dynamic> = () → X;
typedef Fcon<X extends core::Object = dynamic> = (X) → dynamic;
typedef Finv<X extends core::Object = dynamic> = (X) → X;
typedef FcovBound<X extends core::num = core::num> = () → X;
typedef FconBound<X extends core::num = core::num> = (X) → dynamic;
typedef FinvBound<X extends core::num = core::num> = (X) → X;
typedef FcovCyclicBound<X extends self::A<X> = self::A<dynamic>> = () → X;
typedef FconCyclicBound<X extends self::A<X> = self::A<core::Null>> = (X) → dynamic;
typedef FinvCyclicBound<X extends self::A<X> = self::A<dynamic>> = (X) → X;
typedef FcovCyclicCoBound<X extends (X) → dynamic = (core::Null) → dynamic> = () → X;
typedef FconCyclicCoBound<X extends (X) → dynamic = (dynamic) → dynamic> = (X) → dynamic;
typedef FinvCyclicCoBound<X extends (X) → dynamic = (dynamic) → dynamic> = (X) → X;
class Acov<X extends () → self::Acov::Y = () → dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Acov<self::Acov::X, self::Acov::Y>
typedef F<invariant X extends core::Object* = dynamic> = <Y extends X* = dynamic>() →* void;
typedef Fcov<X extends core::Object* = dynamic> = () →* X*;
typedef Fcon<contravariant X extends core::Object* = dynamic> = (X*) →* dynamic;
typedef Finv<invariant X extends core::Object* = dynamic> = (X*) →* X*;
typedef FcovBound<X extends core::num* = core::num*> = () →* X*;
typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
typedef FinvBound<invariant X extends core::num* = core::num*> = (X*) →* X*;
typedef FcovCyclicBound<X extends self::A<X*>* = self::A<dynamic>*> = () →* X*;
typedef FconCyclicBound<contravariant X extends self::A<X*>* = self::A<core::Null?>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
typedef FcovCyclicCoBound<X extends (X*) →* dynamic = (core::Null?) →* dynamic> = () →* X*;
typedef FconCyclicCoBound<contravariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* dynamic;
typedef FinvCyclicCoBound<invariant X extends (X*) →* dynamic = (dynamic) →* dynamic> = (X*) →* X*;
class Acov<X extends () →* self::Acov::Y* = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acov<self::Acov::X*, self::Acov::Y*>*
: super core::Object::•()
;
}
class Acon<X extends (self::Acon::Y) → dynamic = (core::Null) → dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X, self::Acon::Y>
class Acon<X extends (self::Acon::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Acon<self::Acon::X*, self::Acon::Y*>*
: super core::Object::•()
;
}
class Ainv<X extends (self::Ainv::Y) → self::Ainv::Y = (dynamic) → dynamic, Y extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::Ainv<self::Ainv::X, self::Ainv::Y>
class Ainv<X extends (self::Ainv::Y*) →* self::Ainv::Y* = (dynamic) →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Ainv<self::Ainv::X*, self::Ainv::Y*>*
: super core::Object::•()
;
}
class AcovBound<X extends () → self::AcovBound::Y = () → core::num, Y extends core::num = core::num> extends core::Object {
synthetic constructor •() → self::AcovBound<self::AcovBound::X, self::AcovBound::Y>
class AcovBound<X extends () →* self::AcovBound::Y* = () →* core::num*, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AcovBound<self::AcovBound::X*, self::AcovBound::Y*>*
: super core::Object::•()
;
}
class AconBound<X extends (self::AconBound::Y) → dynamic = (core::Null) → dynamic, Y extends core::num = core::num> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X, self::AconBound::Y>
class AconBound<X extends (self::AconBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
: super core::Object::•()
;
}
class AinvBound<X extends (self::AinvBound::Y) → self::AinvBound::Y = (core::num) → core::num, Y extends core::num = core::num> extends core::Object {
synthetic constructor •() → self::AinvBound<self::AinvBound::X, self::AinvBound::Y>
class AinvBound<X extends (self::AinvBound::Y*) →* self::AinvBound::Y* = (core::num*) →* core::num*, Y extends core::num* = core::num*> extends core::Object {
synthetic constructor •() → self::AinvBound<self::AinvBound::X*, self::AinvBound::Y*>*
: super core::Object::•()
;
}
class A<X extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
class A<X extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
}
class AcovCyclicBound<X extends () → self::AcovCyclicBound::Y = () → self::A<dynamic>, Y extends self::A<self::AcovCyclicBound::Y> = self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::AcovCyclicBound<self::AcovCyclicBound::X, self::AcovCyclicBound::Y>
class AcovCyclicBound<X extends () →* self::AcovCyclicBound::Y* = () →* self::A<dynamic>*, Y extends self::A<self::AcovCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AcovCyclicBound<self::AcovCyclicBound::X*, self::AcovCyclicBound::Y*>*
: super core::Object::•()
;
}
class AconCyclicBound<X extends (self::AconCyclicBound::Y) → dynamic = (core::Null) → dynamic, Y extends self::A<self::AconCyclicBound::Y> = self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X, self::AconCyclicBound::Y>
class AconCyclicBound<X extends (self::AconCyclicBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends self::A<self::AconCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AconCyclicBound<self::AconCyclicBound::X*, self::AconCyclicBound::Y*>*
: super core::Object::•()
;
}
class AinvCyclicBound<X extends (self::AinvCyclicBound::Y) → self::AinvCyclicBound::Y = (self::A<dynamic>) → self::A<dynamic>, Y extends self::A<self::AinvCyclicBound::Y> = self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::AinvCyclicBound<self::AinvCyclicBound::X, self::AinvCyclicBound::Y>
class AinvCyclicBound<X extends (self::AinvCyclicBound::Y*) →* self::AinvCyclicBound::Y* = (self::A<dynamic>*) →* self::A<dynamic>*, Y extends self::A<self::AinvCyclicBound::Y*>* = self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::AinvCyclicBound<self::AinvCyclicBound::X*, self::AinvCyclicBound::Y*>*
: super core::Object::•()
;
}
class AcovCyclicCoBound<X extends () → self::AcovCyclicCoBound::Y = () → (core::Null) → dynamic, Y extends (self::AcovCyclicCoBound::Y) → dynamic = (core::Null) → dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X, self::AcovCyclicCoBound::Y>
class AcovCyclicCoBound<X extends () →* self::AcovCyclicCoBound::Y* = () →* (core::Null?) →* dynamic, Y extends (self::AcovCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
synthetic constructor •() → self::AcovCyclicCoBound<self::AcovCyclicCoBound::X*, self::AcovCyclicCoBound::Y*>*
: super core::Object::•()
;
}
class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y) → dynamic = (core::Null) → dynamic, Y extends (self::AconCyclicCoBound::Y) → dynamic = (core::Null) → dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X, self::AconCyclicCoBound::Y>
class AconCyclicCoBound<X extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic, Y extends (self::AconCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
synthetic constructor •() → self::AconCyclicCoBound<self::AconCyclicCoBound::X*, self::AconCyclicCoBound::Y*>*
: super core::Object::•()
;
}
class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y) → self::AinvCyclicCoBound::Y = ((core::Null) → dynamic) → (core::Null) → dynamic, Y extends (self::AinvCyclicCoBound::Y) → dynamic = (core::Null) → dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X, self::AinvCyclicCoBound::Y>
class AinvCyclicCoBound<X extends (self::AinvCyclicCoBound::Y*) →* self::AinvCyclicCoBound::Y* = ((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, Y extends (self::AinvCyclicCoBound::Y*) →* dynamic = (core::Null?) →* dynamic> extends core::Object {
synthetic constructor •() → self::AinvCyclicCoBound<self::AinvCyclicCoBound::X*, self::AinvCyclicCoBound::Y*>*
: super core::Object::•()
;
}
class B<X extends core::Object = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::X>
class B<X extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::X*>*
: super core::Object::•()
;
}
static method toF<X extends core::Object = dynamic>(self::toF::X x) → <Y extends self::toF::X = dynamic>() → void
static method toF<X extends core::Object* = dynamic>(self::toF::X* x) → <Y extends self::toF::X* = dynamic>() →* void
return null;
static method testTypeAliasAsTypeArgument() → void {
self::Acov<() → dynamic, dynamic> source1;
<Y extends self::Acov<() → dynamic, dynamic> = dynamic>() → void fsource1 = self::toF<self::Acov<() → dynamic, dynamic>>(source1);
<Y extends self::Acov<() → dynamic, dynamic> = dynamic>() → void target1 = fsource1;
self::Acon<(core::Null) → dynamic, dynamic> source2;
<Y extends self::Acon<(core::Null) → dynamic, dynamic> = dynamic>() → void fsource2 = self::toF<self::Acon<(core::Null) → dynamic, dynamic>>(source2);
<Y extends self::Acon<(core::Null) → dynamic, dynamic> = dynamic>() → void target2 = fsource2;
self::Ainv<(dynamic) → dynamic, dynamic> source3;
<Y extends self::Ainv<(dynamic) → dynamic, dynamic> = dynamic>() → void fsource3 = self::toF<self::Ainv<(dynamic) → dynamic, dynamic>>(source3);
<Y extends self::Ainv<(dynamic) → dynamic, dynamic> = dynamic>() → void target3 = fsource3;
self::AcovBound<() → core::num, core::num> source4;
<Y extends self::AcovBound<() → core::num, core::num> = dynamic>() → void fsource4 = self::toF<self::AcovBound<() → core::num, core::num>>(source4);
<Y extends self::AcovBound<() → core::num, core::num> = dynamic>() → void target4 = fsource4;
self::AconBound<(core::Null) → dynamic, core::num> source5;
<Y extends self::AconBound<(core::Null) → dynamic, core::num> = dynamic>() → void fsource5 = self::toF<self::AconBound<(core::Null) → dynamic, core::num>>(source5);
<Y extends self::AconBound<(core::Null) → dynamic, core::num> = dynamic>() → void target5 = fsource5;
self::AinvBound<(core::num) → core::num, core::num> source6;
<Y extends self::AinvBound<(core::num) → core::num, core::num> = dynamic>() → void fsource6 = self::toF<self::AinvBound<(core::num) → core::num, core::num>>(source6);
<Y extends self::AinvBound<(core::num) → core::num, core::num> = dynamic>() → void target6 = fsource6;
self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>> source7;
<Y extends self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>> = dynamic>() → void fsource7 = self::toF<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>>(source7);
<Y extends self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>> = dynamic>() → void target7 = fsource7;
self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>> source8;
<Y extends self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>> = dynamic>() → void fsource8 = self::toF<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>>(source8);
<Y extends self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>> = dynamic>() → void target8 = fsource8;
self::AinvCyclicBound<(self::A<dynamic>) → self::A<dynamic>, self::A<dynamic>> source9;
self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic> source10;
<Y extends self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic> = dynamic>() → void fsource10 = self::toF<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>>(source10);
<Y extends self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic> = dynamic>() → void target10 = fsource10;
self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic> source11;
<Y extends self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic> = dynamic>() → void fsource11 = self::toF<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>>(source11);
<Y extends self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic> = dynamic>() → void target11 = fsource11;
self::AinvCyclicCoBound<((core::Null) → dynamic) → (core::Null) → dynamic, (core::Null) → dynamic> source12;
self::Acov<() →* dynamic, dynamic>* source1;
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void fsource1 = self::toF<self::Acov<() →* dynamic, dynamic>*>(source1);
<Y extends self::Acov<() →* dynamic, dynamic>* = dynamic>() →* void target1 = fsource1;
self::Acon<(core::Null?) →* dynamic, dynamic>* source2;
<Y extends self::Acon<(core::Null?) →* dynamic, dynamic>* = dynamic>() →* void fsource2 = self::toF<self::Acon<(core::Null?) →* dynamic, dynamic>*>(source2);
<Y extends self::Acon<(core::Null*) →* dynamic, dynamic>* = dynamic>() →* void target2 = fsource2;
self::Ainv<(dynamic) →* dynamic, dynamic>* source3;
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void fsource3 = self::toF<self::Ainv<(dynamic) →* dynamic, dynamic>*>(source3);
<Y extends self::Ainv<(dynamic) →* dynamic, dynamic>* = dynamic>() →* void target3 = fsource3;
self::AcovBound<() →* core::num*, core::num*>* source4;
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void fsource4 = self::toF<self::AcovBound<() →* core::num*, core::num*>*>(source4);
<Y extends self::AcovBound<() →* core::num*, core::num*>* = dynamic>() →* void target4 = fsource4;
self::AconBound<(core::Null?) →* dynamic, core::num*>* source5;
<Y extends self::AconBound<(core::Null?) →* dynamic, core::num*>* = dynamic>() →* void fsource5 = self::toF<self::AconBound<(core::Null?) →* dynamic, core::num*>*>(source5);
<Y extends self::AconBound<(core::Null*) →* dynamic, core::num*>* = dynamic>() →* void target5 = fsource5;
self::AinvBound<(core::num*) →* core::num*, core::num*>* source6;
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void fsource6 = self::toF<self::AinvBound<(core::num*) →* core::num*, core::num*>*>(source6);
<Y extends self::AinvBound<(core::num*) →* core::num*, core::num*>* = dynamic>() →* void target6 = fsource6;
self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* source7;
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void fsource7 = self::toF<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>(source7);
<Y extends self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>* = dynamic>() →* void target7 = fsource7;
self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* source8;
<Y extends self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void fsource8 = self::toF<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>(source8);
<Y extends self::AconCyclicBound<(core::Null*) →* dynamic, self::A<dynamic>*>* = dynamic>() →* void target8 = fsource8;
self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>* source9;
self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source10;
<Y extends self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource10 = self::toF<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source10);
<Y extends self::AcovCyclicCoBound<() →* (core::Null*) →* dynamic, (core::Null*) →* dynamic>* = dynamic>() →* void target10 = fsource10;
self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* source11;
<Y extends self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>* = dynamic>() →* void fsource11 = self::toF<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>(source11);
<Y extends self::AconCyclicCoBound<(core::Null*) →* dynamic, (core::Null*) →* dynamic>* = dynamic>() →* void target11 = fsource11;
self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>* source12;
}
static method testNested() → void {
self::B<self::Acov<() → dynamic, dynamic>> source1;
<Y extends self::B<self::Acov<() → dynamic, dynamic>> = dynamic>() → void fsource1 = self::toF<self::B<self::Acov<() → dynamic, dynamic>>>(source1);
<Y extends self::B<self::Acov<() → dynamic, dynamic>> = dynamic>() → void target1 = fsource1;
self::B<self::Acon<(core::Null) → dynamic, dynamic>> source2;
<Y extends self::B<self::Acon<(core::Null) → dynamic, dynamic>> = dynamic>() → void fsource2 = self::toF<self::B<self::Acon<(core::Null) → dynamic, dynamic>>>(source2);
<Y extends self::B<self::Acon<(core::Null) → dynamic, dynamic>> = dynamic>() → void target2 = fsource2;
self::B<self::Ainv<(dynamic) → dynamic, dynamic>> source3;
<Y extends self::B<self::Ainv<(dynamic) → dynamic, dynamic>> = dynamic>() → void fsource3 = self::toF<self::B<self::Ainv<(dynamic) → dynamic, dynamic>>>(source3);
<Y extends self::B<self::Ainv<(dynamic) → dynamic, dynamic>> = dynamic>() → void target3 = fsource3;
self::B<self::AcovBound<() → core::num, core::num>> source4;
<Y extends self::B<self::AcovBound<() → core::num, core::num>> = dynamic>() → void fsource4 = self::toF<self::B<self::AcovBound<() → core::num, core::num>>>(source4);
<Y extends self::B<self::AcovBound<() → core::num, core::num>> = dynamic>() → void target4 = fsource4;
self::B<self::AconBound<(core::Null) → dynamic, core::num>> source5;
<Y extends self::B<self::AconBound<(core::Null) → dynamic, core::num>> = dynamic>() → void fsource5 = self::toF<self::B<self::AconBound<(core::Null) → dynamic, core::num>>>(source5);
<Y extends self::B<self::AconBound<(core::Null) → dynamic, core::num>> = dynamic>() → void target5 = fsource5;
self::B<self::AinvBound<(core::num) → core::num, core::num>> source6;
<Y extends self::B<self::AinvBound<(core::num) → core::num, core::num>> = dynamic>() → void fsource6 = self::toF<self::B<self::AinvBound<(core::num) → core::num, core::num>>>(source6);
<Y extends self::B<self::AinvBound<(core::num) → core::num, core::num>> = dynamic>() → void target6 = fsource6;
self::B<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>> source7;
<Y extends self::B<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>> = dynamic>() → void fsource7 = self::toF<self::B<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>>>(source7);
<Y extends self::B<self::AcovCyclicBound<() → self::A<dynamic>, self::A<dynamic>>> = dynamic>() → void target7 = fsource7;
self::B<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>> source8;
<Y extends self::B<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>> = dynamic>() → void fsource8 = self::toF<self::B<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>>>(source8);
<Y extends self::B<self::AconCyclicBound<(core::Null) → dynamic, self::A<dynamic>>> = dynamic>() → void target8 = fsource8;
self::B<self::AinvCyclicBound<(self::A<dynamic>) → self::A<dynamic>, self::A<dynamic>>> source9;
self::B<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>> source10;
<Y extends self::B<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>> = dynamic>() → void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>>>(source10);
<Y extends self::B<self::AcovCyclicCoBound<() → (core::Null) → dynamic, (core::Null) → dynamic>> = dynamic>() → void target10 = fsource10;
self::B<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>> source11;
<Y extends self::B<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>> = dynamic>() → void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>>>(source11);
<Y extends self::B<self::AconCyclicCoBound<(core::Null) → dynamic, (core::Null) → dynamic>> = dynamic>() → void target11 = fsource11;
self::B<self::AinvCyclicCoBound<((core::Null) → dynamic) → (core::Null) → dynamic, (core::Null) → dynamic>> source12;
self::B<self::Acov<() →* dynamic, dynamic>*>* source1;
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void fsource1 = self::toF<self::B<self::Acov<() →* dynamic, dynamic>*>*>(source1);
<Y extends self::B<self::Acov<() →* dynamic, dynamic>*>* = dynamic>() →* void target1 = fsource1;
self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* source2;
<Y extends self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>* = dynamic>() →* void fsource2 = self::toF<self::B<self::Acon<(core::Null?) →* dynamic, dynamic>*>*>(source2);
<Y extends self::B<self::Acon<(core::Null*) →* dynamic, dynamic>*>* = dynamic>() →* void target2 = fsource2;
self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* source3;
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void fsource3 = self::toF<self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>*>(source3);
<Y extends self::B<self::Ainv<(dynamic) →* dynamic, dynamic>*>* = dynamic>() →* void target3 = fsource3;
self::B<self::AcovBound<() →* core::num*, core::num*>*>* source4;
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void fsource4 = self::toF<self::B<self::AcovBound<() →* core::num*, core::num*>*>*>(source4);
<Y extends self::B<self::AcovBound<() →* core::num*, core::num*>*>* = dynamic>() →* void target4 = fsource4;
self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* source5;
<Y extends self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>* = dynamic>() →* void fsource5 = self::toF<self::B<self::AconBound<(core::Null?) →* dynamic, core::num*>*>*>(source5);
<Y extends self::B<self::AconBound<(core::Null*) →* dynamic, core::num*>*>* = dynamic>() →* void target5 = fsource5;
self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* source6;
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void fsource6 = self::toF<self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>*>(source6);
<Y extends self::B<self::AinvBound<(core::num*) →* core::num*, core::num*>*>* = dynamic>() →* void target6 = fsource6;
self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* source7;
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void fsource7 = self::toF<self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>*>(source7);
<Y extends self::B<self::AcovCyclicBound<() →* self::A<dynamic>*, self::A<dynamic>*>*>* = dynamic>() →* void target7 = fsource7;
self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* source8;
<Y extends self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void fsource8 = self::toF<self::B<self::AconCyclicBound<(core::Null?) →* dynamic, self::A<dynamic>*>*>*>(source8);
<Y extends self::B<self::AconCyclicBound<(core::Null*) →* dynamic, self::A<dynamic>*>*>* = dynamic>() →* void target8 = fsource8;
self::B<self::AinvCyclicBound<(self::A<dynamic>*) →* self::A<dynamic>*, self::A<dynamic>*>*>* source9;
self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source10;
<Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource10 = self::toF<self::B<self::AcovCyclicCoBound<() →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source10);
<Y extends self::B<self::AcovCyclicCoBound<() →* (core::Null*) →* dynamic, (core::Null*) →* dynamic>*>* = dynamic>() →* void target10 = fsource10;
self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source11;
<Y extends self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* = dynamic>() →* void fsource11 = self::toF<self::B<self::AconCyclicCoBound<(core::Null?) →* dynamic, (core::Null?) →* dynamic>*>*>(source11);
<Y extends self::B<self::AconCyclicCoBound<(core::Null*) →* dynamic, (core::Null*) →* dynamic>*>* = dynamic>() →* void target11 = fsource11;
self::B<self::AinvCyclicCoBound<((core::Null?) →* dynamic) →* (core::Null?) →* dynamic, (core::Null?) →* dynamic>*>* source12;
}
static method main() → dynamic {
self::testTypeAliasAsTypeArgument();

View file

@ -2,7 +2,7 @@ library;
import self as self;
import "dart:core" as core;
typedef Foo<T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
typedef Foo<invariant T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
static field <T extends core::Object* = dynamic>(T*) →* T* x;
static method main() → dynamic
;

View file

@ -2,6 +2,6 @@ library;
import self as self;
import "dart:core" as core;
typedef Foo<T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
typedef Foo<invariant T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
static field <T extends core::Object* = dynamic>(T*) →* T* x;
static method main() → dynamic {}

View file

@ -2,6 +2,6 @@ library;
import self as self;
import "dart:core" as core;
typedef Foo<T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
typedef Foo<invariant T extends core::Object* = dynamic> = <T extends core::Object* = dynamic>(T*) →* T*;
static field <T extends core::Object* = dynamic>(T*) →* T* x;
static method main() → dynamic {}

View file

@ -2,8 +2,8 @@ library;
import self as self;
import "dart:core" as core;
typedef C<A extends core::Object* = dynamic, K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
typedef D<K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
typedef C<contravariant A extends core::Object* = dynamic, contravariant K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
typedef D<unrelated K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
static method producer<K extends core::Object* = dynamic>() → dynamic
;
static method main() → dynamic

View file

@ -2,8 +2,8 @@ library;
import self as self;
import "dart:core" as core;
typedef C<A extends core::Object* = dynamic, K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
typedef D<K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
typedef C<contravariant A extends core::Object* = dynamic, contravariant K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
typedef D<unrelated K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
static method producer<K extends core::Object* = dynamic>() → dynamic {
return <A extends core::Object* = dynamic>(core::int* v1) → <B extends core::Object* = dynamic>(A*, self::producer::K*, B*) →* core::int* {
return <B extends core::Object* = dynamic>(A* v2, self::producer::K* v3, B* v4) → core::int* => 0;

View file

@ -2,8 +2,8 @@ library;
import self as self;
import "dart:core" as core;
typedef C<A extends core::Object* = dynamic, K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
typedef D<K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
typedef C<contravariant A extends core::Object* = dynamic, contravariant K extends core::Object* = dynamic> = <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
typedef D<unrelated K extends core::Object* = dynamic> = <A extends core::Object* = dynamic>(core::int*) →* <B extends core::Object* = dynamic>(A*, K*, B*) →* core::int*;
static method producer<K extends core::Object* = dynamic>() → dynamic {
return <A extends core::Object* = dynamic>(core::int* v1) → <B extends core::Object* = dynamic>(A*, self::producer::K*, B*) →* core::int* {
return <B extends core::Object* = dynamic>(A* v2, self::producer::K* v3, B* v4) → core::int* => 0;

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