[cfe] Change outline test to test strong mode Closes #37904 Change-Id: I75cd093922dbcf29c0b073d6a37aaba9d6c1f5f2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113697 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jens Johansen <jensj@google.com>
diff --git a/pkg/front_end/test/fasta/outline_test.dart b/pkg/front_end/test/fasta/outline_test.dart index 3551732..43e9cc9 100644 --- a/pkg/front_end/test/fasta/outline_test.dart +++ b/pkg/front_end/test/fasta/outline_test.dart
@@ -10,7 +10,6 @@ Future<FastaContext> createContext( Chain suite, Map<String, String> environment) { - environment[LEGACY_MODE] = ""; return FastaContext.create(suite, environment); }
diff --git a/pkg/front_end/testcases/extensions/direct_instance_access.dart.outline.expect b/pkg/front_end/testcases/extensions/direct_instance_access.dart.outline.expect index f7cedf9..dfcdbe8 100644 --- a/pkg/front_end/testcases/extensions/direct_instance_access.dart.outline.expect +++ b/pkg/front_end/testcases/extensions/direct_instance_access.dart.outline.expect
@@ -1,61 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:9:1: Error: This requires the 'extension-methods' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// extension Extension on Class { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:9:24: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension Extension on Class { -// ^^^^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:9:24: Error: 'Class' is already declared in this scope. -// extension Extension on Class { -// ^^^^^ -// pkg/front_end/testcases/extensions/direct_instance_access.dart:5:7: Context: Previous declaration of 'Class'. -// class Class { -// ^^^^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:73:11: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension GenericExtension<T> on GenericClass<T> { -// ^^^^^^^^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:73:31: Error: Expected '{' before this. -// extension GenericExtension<T> on GenericClass<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:73:34: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension GenericExtension<T> on GenericClass<T> { -// ^^^^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:73:34: Error: 'GenericClass' is already declared in this scope. -// extension GenericExtension<T> on GenericClass<T> { -// ^^^^^^^^^^^^ -// pkg/front_end/testcases/extensions/direct_instance_access.dart:69:7: Context: Previous declaration of 'GenericClass'. -// class GenericClass<T> { -// ^^^^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:9:1: Warning: Type 'extension' not found. -// extension Extension on Class { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:9:21: Warning: Type 'on' not found. -// extension Extension on Class { -// ^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:73:1: Warning: Type 'extension' not found. -// extension GenericExtension<T> on GenericClass<T> { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/direct_instance_access.dart:73:31: Warning: Type 'on' not found. -// extension GenericExtension<T> on GenericClass<T> { -// ^^ -// import self as self; import "dart:core" as core; @@ -69,8 +12,105 @@ synthetic constructor •() → self::GenericClass<self::GenericClass::T*>* ; } -static field invalid-type Extension; -static method GenericExtension<T extends core::Object* = dynamic>() → invalid-type +extension Extension on self::Class* { + method readGetter = self::Extension|readGetter; + method writeSetterRequired = self::Extension|writeSetterRequired; + method writeSetterOptional = self::Extension|writeSetterOptional; + method writeSetterNamed = self::Extension|writeSetterNamed; + get tearOffGetterNoArgs = self::Extension|get#tearOffGetterNoArgs; + get tearOffGetterRequired = self::Extension|get#tearOffGetterRequired; + get tearOffGetterOptional = self::Extension|get#tearOffGetterOptional; + get tearOffGetterNamed = self::Extension|get#tearOffGetterNamed; + get property = self::Extension|get#property; + method invocations = self::Extension|invocations; + method tearOffs = self::Extension|tearOffs; + method getterCalls = self::Extension|getterCalls; + set property = self::Extension|set#property; +} +extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* { + method readGetter = self::GenericExtension|readGetter; + method writeSetterRequired = self::GenericExtension|writeSetterRequired; + method writeSetterOptional = self::GenericExtension|writeSetterOptional; + method writeSetterNamed = self::GenericExtension|writeSetterNamed; + method genericWriteSetterRequired = self::GenericExtension|genericWriteSetterRequired; + method genericWriteSetterOptional = self::GenericExtension|genericWriteSetterOptional; + method genericWriteSetterNamed = self::GenericExtension|genericWriteSetterNamed; + get property = self::GenericExtension|get#property; + get tearOffGetterNoArgs = self::GenericExtension|get#tearOffGetterNoArgs; + get tearOffGetterRequired = self::GenericExtension|get#tearOffGetterRequired; + get tearOffGetterOptional = self::GenericExtension|get#tearOffGetterOptional; + get tearOffGetterNamed = self::GenericExtension|get#tearOffGetterNamed; + get tearOffGetterGenericRequired = self::GenericExtension|get#tearOffGetterGenericRequired; + get tearOffGetterGenericOptional = self::GenericExtension|get#tearOffGetterGenericOptional; + get tearOffGetterGenericNamed = self::GenericExtension|get#tearOffGetterGenericNamed; + method invocations = self::GenericExtension|invocations; + method tearOffs = self::GenericExtension|tearOffs; + method getterCalls = self::GenericExtension|getterCalls; + set property = self::GenericExtension|set#property; +} +static method Extension|readGetter(final self::Class* #this) → dynamic + ; +static method Extension|writeSetterRequired(final self::Class* #this, dynamic value) → dynamic + ; +static method Extension|writeSetterOptional(final self::Class* #this, [dynamic value]) → dynamic + ; +static method Extension|writeSetterNamed(final self::Class* #this, {dynamic value}) → dynamic + ; +static method Extension|get#tearOffGetterNoArgs(final self::Class* #this) → dynamic + ; +static method Extension|get#tearOffGetterRequired(final self::Class* #this) → dynamic + ; +static method Extension|get#tearOffGetterOptional(final self::Class* #this) → dynamic + ; +static method Extension|get#tearOffGetterNamed(final self::Class* #this) → dynamic + ; +static method Extension|get#property(final self::Class* #this) → dynamic + ; +static method Extension|set#property(final self::Class* #this, dynamic value) → void + ; +static method Extension|invocations(final self::Class* #this, dynamic value) → dynamic + ; +static method Extension|tearOffs(final self::Class* #this, dynamic value) → dynamic + ; +static method Extension|getterCalls(final self::Class* #this, dynamic value) → dynamic + ; +static method GenericExtension|readGetter<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|readGetter::#T*>* #this) → self::GenericExtension|readGetter::#T* + ; +static method GenericExtension|writeSetterRequired<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterRequired::#T*>* #this, self::GenericExtension|writeSetterRequired::#T* value) → dynamic + ; +static method GenericExtension|writeSetterOptional<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterOptional::#T*>* #this, [self::GenericExtension|writeSetterOptional::#T* value]) → dynamic + ; +static method GenericExtension|writeSetterNamed<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterNamed::#T*>* #this, {self::GenericExtension|writeSetterNamed::#T* value}) → dynamic + ; +static method GenericExtension|genericWriteSetterRequired<#T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::#T = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::#T*>* #this, self::GenericExtension|genericWriteSetterRequired::S value) → dynamic + ; +static method GenericExtension|genericWriteSetterOptional<#T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::#T = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::#T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S value]) → dynamic + ; +static method GenericExtension|genericWriteSetterNamed<#T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::#T = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::#T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S value}) → dynamic + ; +static method GenericExtension|get#property<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::#T*>* #this) → self::GenericExtension|get#property::#T* + ; +static method GenericExtension|set#property<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#property::#T*>* #this, self::GenericExtension|set#property::#T* value) → void + ; +static method GenericExtension|get#tearOffGetterNoArgs<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::#T*>* #this) → dynamic + ; +static method GenericExtension|get#tearOffGetterRequired<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::#T*>* #this) → dynamic + ; +static method GenericExtension|get#tearOffGetterOptional<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::#T*>* #this) → dynamic + ; +static method GenericExtension|get#tearOffGetterNamed<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::#T*>* #this) → dynamic + ; +static method GenericExtension|get#tearOffGetterGenericRequired<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::#T*>* #this) → dynamic + ; +static method GenericExtension|get#tearOffGetterGenericOptional<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::#T*>* #this) → dynamic + ; +static method GenericExtension|get#tearOffGetterGenericNamed<#T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::#T*>* #this) → dynamic + ; +static method GenericExtension|invocations<#T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::#T = dynamic>(final self::GenericClass<self::GenericExtension|invocations::#T*>* #this, self::GenericExtension|invocations::S value) → dynamic + ; +static method GenericExtension|tearOffs<#T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::#T = dynamic>(final self::GenericClass<self::GenericExtension|tearOffs::#T*>* #this, self::GenericExtension|tearOffs::S value) → dynamic + ; +static method GenericExtension|getterCalls<#T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::#T = dynamic>(final self::GenericClass<self::GenericExtension|getterCalls::#T*>* #this, self::GenericExtension|getterCalls::S value) → dynamic ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/extensions/direct_static_access.dart.outline.expect b/pkg/front_end/testcases/extensions/direct_static_access.dart.outline.expect index e6826b8..5a1e9ab 100644 --- a/pkg/front_end/testcases/extensions/direct_static_access.dart.outline.expect +++ b/pkg/front_end/testcases/extensions/direct_static_access.dart.outline.expect
@@ -1,36 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/extensions/direct_static_access.dart:9:11: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension Extension<T> on Class<T> { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/direct_static_access.dart:9:24: Error: Expected '{' before this. -// extension Extension<T> on Class<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/direct_static_access.dart:9:27: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension Extension<T> on Class<T> { -// ^^^^^ -// -// pkg/front_end/testcases/extensions/direct_static_access.dart:9:27: Error: 'Class' is already declared in this scope. -// extension Extension<T> on Class<T> { -// ^^^^^ -// pkg/front_end/testcases/extensions/direct_static_access.dart:5:7: Context: Previous declaration of 'Class'. -// class Class<T> { -// ^^^^^ -// -// pkg/front_end/testcases/extensions/direct_static_access.dart:9:1: Warning: Type 'extension' not found. -// extension Extension<T> on Class<T> { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/direct_static_access.dart:9:24: Warning: Type 'on' not found. -// extension Extension<T> on Class<T> { -// ^^ -// import self as self; import "dart:core" as core; @@ -39,7 +7,81 @@ synthetic constructor •() → self::Class<self::Class::T*>* ; } -static method Extension<T extends core::Object* = dynamic>() → invalid-type +extension Extension<T extends core::Object* = dynamic> on self::Class<T*>* { + static get property = get self::Extension|property; + static field field = self::Extension|field; + static method readGetter = self::Extension|readGetter; + static method writeSetterRequired = self::Extension|writeSetterRequired; + static method writeSetterOptional = self::Extension|writeSetterOptional; + static method writeSetterNamed = self::Extension|writeSetterNamed; + static method genericWriteSetterRequired = self::Extension|genericWriteSetterRequired; + static method genericWriteSetterOptional = self::Extension|genericWriteSetterOptional; + static method genericWriteSetterNamed = self::Extension|genericWriteSetterNamed; + static get tearOffGetterNoArgs = get self::Extension|tearOffGetterNoArgs; + static get tearOffGetterRequired = get self::Extension|tearOffGetterRequired; + static get tearOffGetterOptional = get self::Extension|tearOffGetterOptional; + static get tearOffGetterNamed = get self::Extension|tearOffGetterNamed; + static get tearOffGetterGenericRequired = get self::Extension|tearOffGetterGenericRequired; + static get tearOffGetterGenericOptional = get self::Extension|tearOffGetterGenericOptional; + static get tearOffGetterGenericNamed = get self::Extension|tearOffGetterGenericNamed; + static method invocationsFromStaticContext = self::Extension|invocationsFromStaticContext; + static method tearOffsFromStaticContext = self::Extension|tearOffsFromStaticContext; + static method fieldAccessFromStaticContext = self::Extension|fieldAccessFromStaticContext; + static method getterCallsFromStaticContext = self::Extension|getterCallsFromStaticContext; + method invocationsFromInstanceContext = self::Extension|invocationsFromInstanceContext; + method tearOffsFromInstanceContext = self::Extension|tearOffsFromInstanceContext; + method fieldAccessFromInstanceContext = self::Extension|fieldAccessFromInstanceContext; + method getterCallsFromInstanceContext = self::Extension|getterCallsFromInstanceContext; + static set property = set self::Extension|property; +} +static field dynamic Extension|field; +static get Extension|property() → dynamic + ; +static set Extension|property(dynamic value) → void + ; +static method Extension|readGetter() → dynamic + ; +static method Extension|writeSetterRequired(dynamic value) → dynamic + ; +static method Extension|writeSetterOptional([dynamic value]) → dynamic + ; +static method Extension|writeSetterNamed({dynamic value}) → dynamic + ; +static method Extension|genericWriteSetterRequired<S extends core::Object* = dynamic>(self::Extension|genericWriteSetterRequired::S* value) → dynamic + ; +static method Extension|genericWriteSetterOptional<S extends core::Object* = dynamic>([self::Extension|genericWriteSetterOptional::S* value]) → dynamic + ; +static method Extension|genericWriteSetterNamed<S extends core::Object* = dynamic>({self::Extension|genericWriteSetterNamed::S* value}) → dynamic + ; +static get Extension|tearOffGetterNoArgs() → dynamic + ; +static get Extension|tearOffGetterRequired() → dynamic + ; +static get Extension|tearOffGetterOptional() → dynamic + ; +static get Extension|tearOffGetterNamed() → dynamic + ; +static get Extension|tearOffGetterGenericRequired() → dynamic + ; +static get Extension|tearOffGetterGenericOptional() → dynamic + ; +static get Extension|tearOffGetterGenericNamed() → dynamic + ; +static method Extension|invocationsFromStaticContext(core::int* value) → dynamic + ; +static method Extension|tearOffsFromStaticContext(core::int* value) → dynamic + ; +static method Extension|fieldAccessFromStaticContext() → dynamic + ; +static method Extension|getterCallsFromStaticContext(core::int* value) → dynamic + ; +static method Extension|invocationsFromInstanceContext<#T extends core::Object* = dynamic>(final self::Class<self::Extension|invocationsFromInstanceContext::#T*>* #this, self::Extension|invocationsFromInstanceContext::#T* value) → dynamic + ; +static method Extension|tearOffsFromInstanceContext<#T extends core::Object* = dynamic>(final self::Class<self::Extension|tearOffsFromInstanceContext::#T*>* #this, self::Extension|tearOffsFromInstanceContext::#T* value) → dynamic + ; +static method Extension|fieldAccessFromInstanceContext<#T extends core::Object* = dynamic>(final self::Class<self::Extension|fieldAccessFromInstanceContext::#T*>* #this) → dynamic + ; +static method Extension|getterCallsFromInstanceContext<#T extends core::Object* = dynamic>(final self::Class<self::Extension|getterCallsFromInstanceContext::#T*>* #this, self::Extension|getterCallsFromInstanceContext::#T* value) → dynamic ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/extensions/explicit_this.dart.outline.expect b/pkg/front_end/testcases/extensions/explicit_this.dart.outline.expect index 6102ceb..0819186 100644 --- a/pkg/front_end/testcases/extensions/explicit_this.dart.outline.expect +++ b/pkg/front_end/testcases/extensions/explicit_this.dart.outline.expect
@@ -1,32 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/extensions/explicit_this.dart:10:1: Error: This requires the 'extension-methods' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/explicit_this.dart:10:17: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension A2 on A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/explicit_this.dart:10:17: Error: 'A1' is already declared in this scope. -// extension A2 on A1 { -// ^^ -// pkg/front_end/testcases/extensions/explicit_this.dart:5:7: Context: Previous declaration of 'A1'. -// class A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/explicit_this.dart:10:1: Warning: Type 'extension' not found. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/explicit_this.dart:10:14: Warning: Type 'on' not found. -// extension A2 on A1 { -// ^^ -// import self as self; import "dart:core" as core; @@ -37,6 +9,16 @@ method method1() → void ; } -static field invalid-type A2; +extension A2 on self::A1* { + method method2 = self::A2|method2; + method method3 = self::A2|method3; + method method4 = self::A2|method4; +} +static method A2|method2(final self::A1* #this) → void + ; +static method A2|method3(final self::A1* #this) → core::Object* + ; +static method A2|method4(final self::A1* #this, core::Object* o) → void + ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/extensions/implicit_this.dart.outline.expect b/pkg/front_end/testcases/extensions/implicit_this.dart.outline.expect index ba9ea5f..0819186 100644 --- a/pkg/front_end/testcases/extensions/implicit_this.dart.outline.expect +++ b/pkg/front_end/testcases/extensions/implicit_this.dart.outline.expect
@@ -1,32 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/extensions/implicit_this.dart:10:1: Error: This requires the 'extension-methods' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/implicit_this.dart:10:17: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension A2 on A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/implicit_this.dart:10:17: Error: 'A1' is already declared in this scope. -// extension A2 on A1 { -// ^^ -// pkg/front_end/testcases/extensions/implicit_this.dart:5:7: Context: Previous declaration of 'A1'. -// class A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/implicit_this.dart:10:1: Warning: Type 'extension' not found. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/implicit_this.dart:10:14: Warning: Type 'on' not found. -// extension A2 on A1 { -// ^^ -// import self as self; import "dart:core" as core; @@ -37,6 +9,16 @@ method method1() → void ; } -static field invalid-type A2; +extension A2 on self::A1* { + method method2 = self::A2|method2; + method method3 = self::A2|method3; + method method4 = self::A2|method4; +} +static method A2|method2(final self::A1* #this) → void + ; +static method A2|method3(final self::A1* #this) → core::Object* + ; +static method A2|method4(final self::A1* #this, core::Object* o) → void + ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/extensions/instance_members.dart.outline.expect b/pkg/front_end/testcases/extensions/instance_members.dart.outline.expect index f1182fb..c2ae0c9 100644 --- a/pkg/front_end/testcases/extensions/instance_members.dart.outline.expect +++ b/pkg/front_end/testcases/extensions/instance_members.dart.outline.expect
@@ -1,61 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/extensions/instance_members.dart:7:1: Error: This requires the 'extension-methods' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:7:17: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension A2 on A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:7:17: Error: 'A1' is already declared in this scope. -// extension A2 on A1 { -// ^^ -// pkg/front_end/testcases/extensions/instance_members.dart:5:7: Context: Previous declaration of 'A1'. -// class A1 {} -// ^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:30:11: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension B2<T> on B1<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:30:17: Error: Expected '{' before this. -// extension B2<T> on B1<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:30:20: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension B2<T> on B1<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:30:20: Error: 'B1' is already declared in this scope. -// extension B2<T> on B1<T> { -// ^^ -// pkg/front_end/testcases/extensions/instance_members.dart:28:7: Context: Previous declaration of 'B1'. -// class B1<T> {} -// ^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:7:1: Warning: Type 'extension' not found. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:7:14: Warning: Type 'on' not found. -// extension A2 on A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:30:1: Warning: Type 'extension' not found. -// extension B2<T> on B1<T> { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/instance_members.dart:30:17: Warning: Type 'on' not found. -// extension B2<T> on B1<T> { -// ^^ -// import self as self; import "dart:core" as core; @@ -67,8 +10,27 @@ synthetic constructor •() → self::B1<self::B1::T*>* ; } -static field invalid-type A2; -static method B2<T extends core::Object* = dynamic>() → invalid-type +extension A2 on self::A1* { + method method1 = self::A2|method1; + method method2 = self::A2|method2; + method method3 = self::A2|method3; + method method4 = self::A2|method4; +} +extension B2<T extends core::Object* = dynamic> on self::B1<T*>* { + method method1 = self::B2|method1; + method method2 = self::B2|method2; +} +static method A2|method1(final self::A1* #this) → self::A1* + ; +static method A2|method2<T extends core::Object* = dynamic>(final self::A1* #this, self::A2|method2::T* o) → self::A1* + ; +static method A2|method3<T extends core::Object* = dynamic>(final self::A1* #this, [self::A2|method3::T* o]) → self::A1* + ; +static method A2|method4<T extends core::Object* = dynamic>(final self::A1* #this, {self::A2|method4::T* o}) → self::A1* + ; +static method B2|method1<#T extends core::Object* = dynamic>(final self::B1<self::B2|method1::#T*>* #this) → self::B1<self::B2|method1::#T*>* + ; +static method B2|method2<#T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::B1<self::B2|method2::#T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::#T*>* ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/extensions/other_kinds.dart.outline.expect b/pkg/front_end/testcases/extensions/other_kinds.dart.outline.expect index a323fdb..48438c1 100644 --- a/pkg/front_end/testcases/extensions/other_kinds.dart.outline.expect +++ b/pkg/front_end/testcases/extensions/other_kinds.dart.outline.expect
@@ -1,32 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/extensions/other_kinds.dart:18:1: Error: This requires the 'extension-methods' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/other_kinds.dart:18:17: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension A2 on A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/other_kinds.dart:18:17: Error: 'A1' is already declared in this scope. -// extension A2 on A1 { -// ^^ -// pkg/front_end/testcases/extensions/other_kinds.dart:5:7: Context: Previous declaration of 'A1'. -// class A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/other_kinds.dart:18:1: Warning: Type 'extension' not found. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/other_kinds.dart:18:14: Warning: Type 'on' not found. -// extension A2 on A1 { -// ^^ -// import self as self; import "dart:core" as core; @@ -44,6 +16,24 @@ static method setStaticField(core::int* value) → void ; } -static field invalid-type A2; +extension A2 on self::A1* { + get instanceProperty = self::A2|get#instanceProperty; + operator + = self::A2|+; + static field staticField = self::A2|staticField; + static get staticProperty = get self::A2|staticProperty; + set instanceProperty = self::A2|set#instanceProperty; + static set staticProperty = set self::A2|staticProperty; +} +static field core::int* A2|staticField; +static method A2|get#instanceProperty(final self::A1* #this) → core::int* + ; +static method A2|set#instanceProperty(final self::A1* #this, core::int* value) → void + ; +static method A2|+(final self::A1* #this, core::int* value) → core::int* + ; +static get A2|staticProperty() → core::int* + ; +static set A2|staticProperty(core::int* value) → void + ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/extensions/static_access.dart.outline.expect b/pkg/front_end/testcases/extensions/static_access.dart.outline.expect index 8334102..4e9dc86 100644 --- a/pkg/front_end/testcases/extensions/static_access.dart.outline.expect +++ b/pkg/front_end/testcases/extensions/static_access.dart.outline.expect
@@ -1,32 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/extensions/static_access.dart:7:1: Error: This requires the 'extension-methods' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// extension Extension on Class { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/static_access.dart:7:24: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension Extension on Class { -// ^^^^^ -// -// pkg/front_end/testcases/extensions/static_access.dart:7:24: Error: 'Class' is already declared in this scope. -// extension Extension on Class { -// ^^^^^ -// pkg/front_end/testcases/extensions/static_access.dart:5:7: Context: Previous declaration of 'Class'. -// class Class {} -// ^^^^^ -// -// pkg/front_end/testcases/extensions/static_access.dart:7:1: Warning: Type 'extension' not found. -// extension Extension on Class { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/static_access.dart:7:21: Warning: Type 'on' not found. -// extension Extension on Class { -// ^^ -// import self as self; import "dart:core" as core; @@ -34,6 +6,21 @@ synthetic constructor •() → self::Class* ; } -static field invalid-type Extension; +extension Extension on self::Class* { + static method method = self::Extension|method; + static method genericMethod = self::Extension|genericMethod; + static get property = get self::Extension|property; + static field field = self::Extension|field; + static set property = set self::Extension|property; +} +static field dynamic Extension|field; +static method Extension|method() → dynamic + ; +static method Extension|genericMethod<T extends core::Object* = dynamic>(self::Extension|genericMethod::T* t) → dynamic + ; +static get Extension|property() → dynamic + ; +static set Extension|property(dynamic value) → void + ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/extensions/type_variables.dart.outline.expect b/pkg/front_end/testcases/extensions/type_variables.dart.outline.expect index a6d69ea..3689d95 100644 --- a/pkg/front_end/testcases/extensions/type_variables.dart.outline.expect +++ b/pkg/front_end/testcases/extensions/type_variables.dart.outline.expect
@@ -1,36 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/extensions/type_variables.dart:7:11: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension A2<T> on A1<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/type_variables.dart:7:17: Error: Expected '{' before this. -// extension A2<T> on A1<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/type_variables.dart:7:20: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension A2<T> on A1<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/type_variables.dart:7:20: Error: 'A1' is already declared in this scope. -// extension A2<T> on A1<T> { -// ^^ -// pkg/front_end/testcases/extensions/type_variables.dart:5:7: Context: Previous declaration of 'A1'. -// class A1<T> {} -// ^^ -// -// pkg/front_end/testcases/extensions/type_variables.dart:7:1: Warning: Type 'extension' not found. -// extension A2<T> on A1<T> { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/type_variables.dart:7:17: Warning: Type 'on' not found. -// extension A2<T> on A1<T> { -// ^^ -// import self as self; import "dart:core" as core; @@ -38,7 +6,13 @@ synthetic constructor •() → self::A1<self::A1::T*>* ; } -static method A2<T extends core::Object* = dynamic>() → invalid-type +extension A2<T extends core::Object* = dynamic> on self::A1<T*>* { + method method1 = self::A2|method1; + method method2 = self::A2|method2; +} +static method A2|method1<#T extends core::Object* = dynamic, S extends self::A2|method1::#T = dynamic>(final self::A1<self::A2|method1::#T*>* #this) → self::A1<self::A2|method1::#T*>* + ; +static method A2|method2<#T extends core::Object* = dynamic, S extends self::A1<self::A2|method2::#T>* = dynamic>(final self::A1<self::A2|method2::#T*>* #this, self::A2|method2::S* o) → self::A1<self::A2|method2::#T*>* ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/extensions/use_this.dart.outline.expect b/pkg/front_end/testcases/extensions/use_this.dart.outline.expect index 9c0d4ca..dbd8b2e 100644 --- a/pkg/front_end/testcases/extensions/use_this.dart.outline.expect +++ b/pkg/front_end/testcases/extensions/use_this.dart.outline.expect
@@ -1,61 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/extensions/use_this.dart:9:1: Error: This requires the 'extension-methods' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:9:17: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension A2 on A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:9:17: Error: 'A1' is already declared in this scope. -// extension A2 on A1 { -// ^^ -// pkg/front_end/testcases/extensions/use_this.dart:7:7: Context: Previous declaration of 'A1'. -// class A1 {} -// ^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:22:11: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension B2<T> on B1<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:22:17: Error: Expected '{' before this. -// extension B2<T> on B1<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:22:20: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension B2<T> on B1<T> { -// ^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:22:20: Error: 'B1' is already declared in this scope. -// extension B2<T> on B1<T> { -// ^^ -// pkg/front_end/testcases/extensions/use_this.dart:20:7: Context: Previous declaration of 'B1'. -// class B1<T> {} -// ^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:9:1: Warning: Type 'extension' not found. -// extension A2 on A1 { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:9:14: Warning: Type 'on' not found. -// extension A2 on A1 { -// ^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:22:1: Warning: Type 'extension' not found. -// extension B2<T> on B1<T> { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/extensions/use_this.dart:22:17: Warning: Type 'on' not found. -// extension B2<T> on B1<T> { -// ^^ -// import self as self; import "dart:core" as core; @@ -67,8 +10,21 @@ synthetic constructor •() → self::B1<self::B1::T*>* ; } -static field invalid-type A2; -static method B2<T extends core::Object* = dynamic>() → invalid-type +extension A2 on self::A1* { + method method1 = self::A2|method1; + method method2 = self::A2|method2; +} +extension B2<T extends core::Object* = dynamic> on self::B1<T*>* { + method method1 = self::B2|method1; + method method2 = self::B2|method2; +} +static method A2|method1(final self::A1* #this) → self::A1* + ; +static method A2|method2<T extends core::Object* = dynamic>(final self::A1* #this, self::A2|method2::T* o) → self::A1* + ; +static method B2|method1<#T extends core::Object* = dynamic>(final self::B1<self::B2|method1::#T*>* #this) → self::B1<self::B2|method1::#T*>* + ; +static method B2|method2<#T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::B1<self::B2|method2::#T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::#T*>* ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.outline.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.outline.expect index daecf9e..0d1797b 100644 --- a/pkg/front_end/testcases/general/DeltaBlue.dart.outline.expect +++ b/pkg/front_end/testcases/general/DeltaBlue.dart.outline.expect
@@ -183,13 +183,13 @@ method execute() → void ; } -static const field dynamic REQUIRED = const self::Strength::•(0, "required"); -static const field dynamic STRONG_PREFERRED = const self::Strength::•(1, "strongPreferred"); -static const field dynamic PREFERRED = const self::Strength::•(2, "preferred"); -static const field dynamic STRONG_DEFAULT = const self::Strength::•(3, "strongDefault"); -static const field dynamic NORMAL = const self::Strength::•(4, "normal"); -static const field dynamic WEAK_DEFAULT = const self::Strength::•(5, "weakDefault"); -static const field dynamic WEAKEST = const self::Strength::•(6, "weakest"); +static const field self::Strength* REQUIRED = const self::Strength::•(0, "required"); +static const field self::Strength* STRONG_PREFERRED = const self::Strength::•(1, "strongPreferred"); +static const field self::Strength* PREFERRED = const self::Strength::•(2, "preferred"); +static const field self::Strength* STRONG_DEFAULT = const self::Strength::•(3, "strongDefault"); +static const field self::Strength* NORMAL = const self::Strength::•(4, "normal"); +static const field self::Strength* WEAK_DEFAULT = const self::Strength::•(5, "weakDefault"); +static const field self::Strength* WEAKEST = const self::Strength::•(6, "weakest"); static const field core::int* NONE = 1; static const field core::int* FORWARD = 2; static const field core::int* BACKWARD = 0;
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.outline.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.outline.expect index 466c02c..4c54d2f 100644 --- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.outline.expect +++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.outline.expect
@@ -14,7 +14,7 @@ static const field core::List<self::Foo*>* values = const <self::Foo*>[self::Foo::bar, self::Foo::baz, self::Foo::cafebabe]; @self::hest static const field self::Foo* bar = const self::Foo::•(0, "Foo.bar"); - @self::Fisk::fisk<dynamic>(self::hest) + @self::Fisk::fisk<core::int*>(self::hest) static const field self::Foo* baz = const self::Foo::•(1, "Foo.baz"); static const field self::Foo* cafebabe = const self::Foo::•(2, "Foo.cafebabe"); const constructor •(core::int* index, core::String* _name) → self::Foo*
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.outline.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.outline.expect index 60367e2..750b872 100644 --- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.outline.expect +++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.outline.expect
@@ -5,13 +5,13 @@ class A<X extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::A<self::A::X*>* ; - method bar<generic-covariant-impl Y extends self::A::X* = dynamic>() → dynamic + method bar<generic-covariant-impl Y extends self::A::X* = self::A::X*>() → dynamic ; } class B extends core::Object { synthetic constructor •() → self::B* ; - static method foo<Y extends core::Object* = dynamic>() → self::A<self::B::foo::Y*>* + static method foo<Y extends core::Object* = core::Object*>() → self::A<self::B::foo::Y*>* ; } static method baz() → dynamic
diff --git a/pkg/front_end/testcases/general/bug30695.dart.outline.expect b/pkg/front_end/testcases/general/bug30695.dart.outline.expect index bb6576d..8ab1586 100644 --- a/pkg/front_end/testcases/general/bug30695.dart.outline.expect +++ b/pkg/front_end/testcases/general/bug30695.dart.outline.expect
@@ -13,7 +13,7 @@ import "dart:core" as core; class A extends core::Object { - field dynamic foo; + field core::int* foo; synthetic constructor •() → self::A* ; }
diff --git a/pkg/front_end/testcases/general/bug31124.dart.outline.expect b/pkg/front_end/testcases/general/bug31124.dart.outline.expect index 8e65e77..7ac93d0 100644 --- a/pkg/front_end/testcases/general/bug31124.dart.outline.expect +++ b/pkg/front_end/testcases/general/bug31124.dart.outline.expect
@@ -15,5 +15,6 @@ // ^ // import self as self; +import "dart:core" as core; -static field dynamic a; +static field () →* core::String* a;
diff --git a/pkg/front_end/testcases/general/bug32866.dart.outline.expect b/pkg/front_end/testcases/general/bug32866.dart.outline.expect index cb6153c..6857612 100644 --- a/pkg/front_end/testcases/general/bug32866.dart.outline.expect +++ b/pkg/front_end/testcases/general/bug32866.dart.outline.expect
@@ -9,9 +9,9 @@ } class A extends core::Object implements self::B { final field core::String* f; - constructor •(dynamic f) → self::A* + constructor •(core::String* f) → self::A* ; } -static field dynamic a; +static field self::A* a; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/bug35470.dart.outline.expect b/pkg/front_end/testcases/general/bug35470.dart.outline.expect index e3abe47..c18a369 100644 --- a/pkg/front_end/testcases/general/bug35470.dart.outline.expect +++ b/pkg/front_end/testcases/general/bug35470.dart.outline.expect
@@ -5,7 +5,7 @@ class A<X extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::A<self::A::X*>* ; - method foo<generic-covariant-impl Y extends self::A::X* = dynamic>() → dynamic + method foo<generic-covariant-impl Y extends self::A::X* = self::A::X*>() → dynamic ; } class B extends self::A<dynamic> {
diff --git a/pkg/front_end/testcases/general/bug37476.dart.outline.expect b/pkg/front_end/testcases/general/bug37476.dart.outline.expect index 6c89350..50be2c0 100644 --- a/pkg/front_end/testcases/general/bug37476.dart.outline.expect +++ b/pkg/front_end/testcases/general/bug37476.dart.outline.expect
@@ -2,13 +2,13 @@ import self as self; import "dart:core" as core; -class A<T extends core::num* = dynamic> extends core::Object { +class A<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; method foo() → <S extends self::A::T* = dynamic>(S*) →* void ; } -class B<T extends core::num* = dynamic> extends core::Object { +class B<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::B<self::B::T*>* ; method foo() → (self::B::T*) →* void
diff --git a/pkg/front_end/testcases/general/check_deferred_allocation.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_allocation.dart.outline.expect index 82269cd..37e88f3 100644 --- a/pkg/front_end/testcases/general/check_deferred_allocation.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_allocation.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_as_check.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_as_check.dart.outline.expect index a5d2ec8..efd56f1 100644 --- a/pkg/front_end/testcases/general/check_deferred_as_check.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_as_check.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_before_args.dart.outline.expect index a513a65..9871382 100644 --- a/pkg/front_end/testcases/general/check_deferred_before_args.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_before_args.dart.outline.expect
@@ -21,6 +21,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.outline.expect index 82269cd..37e88f3 100644 --- a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_call.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_before_call.dart.outline.expect index 82269cd..37e88f3 100644 --- a/pkg/front_end/testcases/general/check_deferred_before_call.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_before_call.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_before_write.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_before_write.dart.outline.expect index 82269cd..37e88f3 100644 --- a/pkg/front_end/testcases/general/check_deferred_before_write.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_before_write.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_is_check.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_is_check.dart.outline.expect index a5d2ec8..efd56f1 100644 --- a/pkg/front_end/testcases/general/check_deferred_is_check.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_is_check.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_read.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_read.dart.outline.expect index 82269cd..37e88f3 100644 --- a/pkg/front_end/testcases/general/check_deferred_read.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_read.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.outline.expect index 82269cd..37e88f3 100644 --- a/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_read_static_field.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_read_type.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_read_type.dart.outline.expect index 82269cd..37e88f3 100644 --- a/pkg/front_end/testcases/general/check_deferred_read_type.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_read_type.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.outline.expect index 82269cd..37e88f3 100644 --- a/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_static_method_call.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.outline.expect b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.outline.expect index 82269cd..37e88f3 100644 --- a/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.outline.expect +++ b/pkg/front_end/testcases/general/check_deferred_type_declaration.dart.outline.expect
@@ -19,6 +19,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.outline.expect b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.outline.expect index 297fe46..fb0387c 100644 --- a/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.outline.expect +++ b/pkg/front_end/testcases/general/circularity-via-initializing-formal.dart.outline.expect
@@ -1,12 +1,20 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/circularity-via-initializing-formal.dart:15:3: Error: Can't infer the type of 'C._circular': circularity found during type inference. +// Specify the type explicitly. +// C._circular(this.f); +// ^^^^^^^^^^^ +// import self as self; import "dart:core" as core; class C extends core::Object { - field dynamic f; - constructor _circular(dynamic f) → self::C* + field self::C* f; + constructor _circular(self::C* f) → self::C* ; } -static field dynamic x; +static field self::C* x; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.outline.expect b/pkg/front_end/testcases/general/clone_function_type.dart.outline.expect index a2cf5b5..24bf6bc 100644 --- a/pkg/front_end/testcases/general/clone_function_type.dart.outline.expect +++ b/pkg/front_end/testcases/general/clone_function_type.dart.outline.expect
@@ -26,6 +26,74 @@ // class Ef1<X extends Function({int})> { // ^ // +// pkg/front_end/testcases/general/clone_function_type.dart:67:7: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2' in the supertype 'Am2' of class 'Object with Am2'. +// Try changing type arguments so that they conform to the bounds. +// class Bm2<Z> extends Object with Am2<Function(int), Z> {} +// ^ +// pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. +// class Am2<X extends Function(), Y> {} +// ^ +// +// pkg/front_end/testcases/general/clone_function_type.dart:70:7: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2' in the supertype 'Am2' of class 'Object with Am2'. +// Try changing type arguments so that they conform to the bounds. +// class Cm2<Z> extends Object with Am2<Function(int x), Z> {} +// ^ +// pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. +// class Am2<X extends Function(), Y> {} +// ^ +// +// pkg/front_end/testcases/general/clone_function_type.dart:86:7: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2' in the supertype 'Am2' of class 'Object with Am2'. +// - 'Function' is from 'dart:core'. +// Try changing type arguments so that they conform to the bounds. +// class Jm2<Z> extends Object with Am2<Function, Z> {} +// ^ +// pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. +// class Am2<X extends Function(), Y> {} +// ^ +// +// pkg/front_end/testcases/general/clone_function_type.dart:89:7: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2' in the supertype 'Am2' of class 'Object with Am2'. +// - 'Function' is from 'dart:core'. +// Try changing type arguments so that they conform to the bounds. +// class Km2<Z> extends Object with Am2<Function(Function Function), Z> {} +// ^ +// pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. +// class Am2<X extends Function(), Y> {} +// ^ +// +// pkg/front_end/testcases/general/clone_function_type.dart:95:7: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2' in the supertype 'Am2' of class 'Mm2'. +// Try changing type arguments so that they conform to the bounds. +// class Mm2<Z> = Object with Am2<Function(int), Z>; +// ^ +// pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. +// class Am2<X extends Function(), Y> {} +// ^ +// +// pkg/front_end/testcases/general/clone_function_type.dart:98:7: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2' in the supertype 'Am2' of class 'Nm2'. +// Try changing type arguments so that they conform to the bounds. +// class Nm2<Z> = Object with Am2<Function(int x), Z>; +// ^ +// pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. +// class Am2<X extends Function(), Y> {} +// ^ +// +// pkg/front_end/testcases/general/clone_function_type.dart:114:7: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2' in the supertype 'Am2' of class 'Um2'. +// - 'Function' is from 'dart:core'. +// Try changing type arguments so that they conform to the bounds. +// class Um2<Z> = Object with Am2<Function, Z>; +// ^ +// pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. +// class Am2<X extends Function(), Y> {} +// ^ +// +// pkg/front_end/testcases/general/clone_function_type.dart:117:7: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2' in the supertype 'Am2' of class 'Vm2'. +// - 'Function' is from 'dart:core'. +// Try changing type arguments so that they conform to the bounds. +// class Vm2<Z> = Object with Am2<Function(Function Function), Z>; +// ^ +// pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. +// class Am2<X extends Function(), Y> {} +// ^ +// import self as self; import "dart:core" as core; @@ -197,7 +265,7 @@ : super core::Object::•() ; } -class Am2<X extends () →* dynamic = dynamic, Y extends core::Object* = dynamic> extends core::Object { +class Am2<X extends () →* dynamic = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::Am2<self::Am2::X*, self::Am2::Y*>* ; } @@ -449,87 +517,87 @@ synthetic constructor •() → self::Km3<self::Km3::Z*>* ; } -class Af1<X extends (core::int*) →* dynamic = dynamic> extends core::Object { +class Af1<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object { static factory foo<X extends (core::int*) →* dynamic = dynamic>() → self::Af1<self::Af1::foo::X*>* ; } -class Bf1<X extends (core::int*) →* dynamic = dynamic> extends core::Object { +class Bf1<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object { static factory foo<X extends (core::int*) →* dynamic = dynamic>() → self::Bf1<self::Bf1::foo::X*>* ; } -class Cf1<X extends () →* core::int* = dynamic> extends core::Object { +class Cf1<X extends () →* core::int* = () →* core::int*> extends core::Object { static factory foo<X extends () →* core::int* = dynamic>() → self::Cf1<self::Cf1::foo::X*>* ; } -class Df1<X extends () →* dynamic = dynamic> extends core::Object { +class Df1<X extends () →* dynamic = () →* dynamic> extends core::Object { static factory foo<X extends () →* dynamic = dynamic>() → self::Df1<self::Df1::foo::X*>* ; } -class Ef1<X extends () →* dynamic = dynamic> extends core::Object { +class Ef1<X extends () →* dynamic = () →* dynamic> extends core::Object { static factory foo<X extends () →* dynamic = dynamic>() → self::Ef1<self::Ef1::foo::X*>* ; } -class Ff1<X extends ({x: core::int*}) →* dynamic = dynamic> extends core::Object { +class Ff1<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic> extends core::Object { static factory foo<X extends ({x: core::int*}) →* dynamic = dynamic>() → self::Ff1<self::Ff1::foo::X*>* ; } -class Gf1<X extends ([core::int*]) →* dynamic = dynamic> extends core::Object { +class Gf1<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object { static factory foo<X extends ([core::int*]) →* dynamic = dynamic>() → self::Gf1<self::Gf1::foo::X*>* ; } -class Hf1<X extends ([core::int*]) →* dynamic = dynamic> extends core::Object { +class Hf1<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object { static factory foo<X extends ([core::int*]) →* dynamic = dynamic>() → self::Hf1<self::Hf1::foo::X*>* ; } -class If1<X extends core::Function* = dynamic> extends core::Object { +class If1<X extends core::Function* = core::Function*> extends core::Object { static factory foo<X extends core::Function* = dynamic>() → self::If1<self::If1::foo::X*>* ; } -class Jf1<X extends (core::Function*) →* dynamic = dynamic> extends core::Object { +class Jf1<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic> extends core::Object { static factory foo<X extends (core::Function*) →* dynamic = dynamic>() → self::Jf1<self::Jf1::foo::X*>* ; } -class Kf1<X extends () →* (() →* core::Function*) →* dynamic = dynamic> extends core::Object { +class Kf1<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic> extends core::Object { static factory foo<X extends () →* (() →* core::Function*) →* dynamic = dynamic>() → self::Kf1<self::Kf1::foo::X*>* ; } -class Bf2<X extends (core::int*) →* dynamic = dynamic> extends core::Object { +class Bf2<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object { static factory foo<X extends (core::int*) →* dynamic = dynamic>() → self::Bf2<self::Bf2::foo::X*>* ; } -class Cf2<X extends (core::int*) →* dynamic = dynamic> extends core::Object { +class Cf2<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object { static factory foo<X extends (core::int*) →* dynamic = dynamic>() → self::Cf2<self::Cf2::foo::X*>* ; } -class Df2<X extends () →* core::int* = dynamic> extends core::Object { +class Df2<X extends () →* core::int* = () →* core::int*> extends core::Object { static factory foo<X extends () →* core::int* = dynamic>() → self::Df2<self::Df2::foo::X*>* ; } -class Ef2<X extends () →* dynamic = dynamic> extends core::Object { +class Ef2<X extends () →* dynamic = () →* dynamic> extends core::Object { static factory foo<X extends () →* dynamic = dynamic>() → self::Ef2<self::Ef2::foo::X*>* ; } -class Ff2<X extends () →* dynamic = dynamic> extends core::Object { +class Ff2<X extends () →* dynamic = () →* dynamic> extends core::Object { static factory foo<X extends () →* dynamic = dynamic>() → self::Ff2<self::Ff2::foo::X*>* ; } -class Gf2<X extends ({x: core::int*}) →* dynamic = dynamic> extends core::Object { +class Gf2<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic> extends core::Object { static factory foo<X extends ({x: core::int*}) →* dynamic = dynamic>() → self::Gf2<self::Gf2::foo::X*>* ; } -class Hf2<X extends ([core::int*]) →* dynamic = dynamic> extends core::Object { +class Hf2<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object { static factory foo<X extends ([core::int*]) →* dynamic = dynamic>() → self::Hf2<self::Hf2::foo::X*>* ; } -class If2<X extends ([core::int*]) →* dynamic = dynamic> extends core::Object { +class If2<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object { static factory foo<X extends ([core::int*]) →* dynamic = dynamic>() → self::If2<self::If2::foo::X*>* ; } -class Jf2<X extends (core::Function*) →* dynamic = dynamic> extends core::Object { +class Jf2<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic> extends core::Object { static factory foo<X extends (core::Function*) →* dynamic = dynamic>() → self::Jf2<self::Jf2::foo::X*>* ; } -class Kf2<X extends () →* (() →* core::Function*) →* dynamic = dynamic> extends core::Object { +class Kf2<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic> extends core::Object { static factory foo<X extends () →* (() →* core::Function*) →* dynamic = dynamic>() → self::Kf2<self::Kf2::foo::X*>* ; }
diff --git a/pkg/front_end/testcases/general/closure.dart.outline.expect b/pkg/front_end/testcases/general/closure.dart.outline.expect index 0f97df6..4f62ce2 100644 --- a/pkg/front_end/testcases/general/closure.dart.outline.expect +++ b/pkg/front_end/testcases/general/closure.dart.outline.expect
@@ -3,7 +3,7 @@ import "dart:core" as core; class Foo extends core::Object { - field dynamic _field; + field self::Bar* _field; synthetic constructor •() → self::Foo* ; }
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.outline.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.outline.expect index 901ca71..73716f7 100644 --- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.outline.expect +++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.outline.expect
@@ -18,7 +18,7 @@ synthetic constructor •() → self::D* ; } -class G<T extends self::A* = dynamic> extends core::Object { +class G<T extends self::A* = self::A*> extends core::Object { synthetic constructor •() → self::G<self::G::T*>* ; }
diff --git a/pkg/front_end/testcases/general/deferred_type_annotation.dart.outline.expect b/pkg/front_end/testcases/general/deferred_type_annotation.dart.outline.expect index 7640695..1446703 100644 --- a/pkg/front_end/testcases/general/deferred_type_annotation.dart.outline.expect +++ b/pkg/front_end/testcases/general/deferred_type_annotation.dart.outline.expect
@@ -20,6 +20,6 @@ static method m() → core::int* ; } -static field dynamic x; +static field core::int* x; static method m(dynamic x) → dynamic ;
diff --git a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.outline.expect b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.outline.expect index bedeadd..42a79f3 100644 --- a/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.outline.expect +++ b/pkg/front_end/testcases/general/duplicated_bad_prefix.dart.outline.expect
@@ -9,11 +9,11 @@ // class Dupe {} // ^^^^ // -// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Warning: Type 'Dupe.a' not found. +// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:13:3: Error: Type 'Dupe.a' not found. // Dupe.a b; // ^^^^^^ // -// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:6:45: Warning: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'. +// pkg/front_end/testcases/general/duplicated_bad_prefix.dart:6:45: Error: 'C' is imported from both 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib1.dart' and 'pkg/front_end/testcases/general/duplicated_bad_prefix_lib2.dart'. // import 'duplicated_bad_prefix_lib2.dart' as dupe; // ^ //
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.outline.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.outline.expect index 6764ff8..1b8f882 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.outline.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.outline.expect
@@ -299,7 +299,7 @@ // typedef Typedef = Object Function(); // ^^^^^^^ // -// pkg/front_end/testcases/general/duplicated_declarations.dart:65:19: Warning: 'C' isn't a type. +// pkg/front_end/testcases/general/duplicated_declarations.dart:65:19: Error: 'C' isn't a type. // class Sub extends C { // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:65:19: Context: This isn't a type. @@ -332,7 +332,7 @@ ; } class C#2 extends core::Object { // from org-dartlang-testcase:///duplicated_declarations_part.dart - field dynamic field; + field core::String* field; constructor •(dynamic a) → self::C#2* ; method m() → dynamic @@ -347,7 +347,7 @@ ; } class C extends core::Object { - field dynamic field; + field core::String* field; constructor •(dynamic a) → self::C* ; method m() → dynamic @@ -439,7 +439,7 @@ method toString() → core::String* return this.{=self::AnotherEnum::_name}; } -static field dynamic field; +static field core::String* field; static method main() → dynamic ; static method foo() → dynamic
diff --git a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.outline.expect b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.outline.expect index 8e9604a..96aece8 100644 --- a/pkg/front_end/testcases/general/duplicated_field_initializer.dart.outline.expect +++ b/pkg/front_end/testcases/general/duplicated_field_initializer.dart.outline.expect
@@ -14,7 +14,7 @@ class A extends core::Object { field core::int* a; - constructor •(dynamic a) → self::A* + constructor •(core::int* a) → self::A* ; } static method main() → void
diff --git a/pkg/front_end/testcases/general/dynamic_and_void.dart.outline.expect b/pkg/front_end/testcases/general/dynamic_and_void.dart.outline.expect index 4327762..9583c9b 100644 --- a/pkg/front_end/testcases/general/dynamic_and_void.dart.outline.expect +++ b/pkg/front_end/testcases/general/dynamic_and_void.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/general/dynamic_and_void.dart:10:27: Warning: Type 'dynamic' not found. +// pkg/front_end/testcases/general/dynamic_and_void.dart:10:27: Error: Type 'dynamic' not found. // /*@warning=TypeNotFound*/ dynamic testDynamic() => 0; // ^^^^^^^ //
diff --git a/pkg/front_end/testcases/general/extension_methods.dart.outline.expect b/pkg/front_end/testcases/general/extension_methods.dart.outline.expect index 5fcae20..98495a1 100644 --- a/pkg/front_end/testcases/general/extension_methods.dart.outline.expect +++ b/pkg/front_end/testcases/general/extension_methods.dart.outline.expect
@@ -1,32 +1,4 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/general/extension_methods.dart:13:1: Error: This requires the 'extension-methods' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// extension E on C { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/general/extension_methods.dart:13:16: Error: A function declaration needs an explicit list of parameters. -// Try adding a parameter list to the function declaration. -// extension E on C { -// ^ -// -// pkg/front_end/testcases/general/extension_methods.dart:13:16: Error: 'C' is already declared in this scope. -// extension E on C { -// ^ -// pkg/front_end/testcases/general/extension_methods.dart:9:7: Context: Previous declaration of 'C'. -// class C { -// ^ -// -// pkg/front_end/testcases/general/extension_methods.dart:13:1: Warning: Type 'extension' not found. -// extension E on C { -// ^^^^^^^^^ -// -// pkg/front_end/testcases/general/extension_methods.dart:13:13: Warning: Type 'on' not found. -// extension E on C { -// ^^ -// import self as self; import "dart:core" as core; @@ -38,6 +10,10 @@ get one() → core::int* ; } -static field invalid-type E; +extension E on self::C* { + get two = self::E|get#two; +} +static method E|get#two(final self::C* #this) → core::int* + ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/function_in_field.dart.outline.expect b/pkg/front_end/testcases/general/function_in_field.dart.outline.expect index 3470a7a..9f1148b 100644 --- a/pkg/front_end/testcases/general/function_in_field.dart.outline.expect +++ b/pkg/front_end/testcases/general/function_in_field.dart.outline.expect
@@ -1,6 +1,7 @@ library; import self as self; +import "dart:core" as core; -static field dynamic x; +static field () →* core::int* x; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.outline.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.outline.expect index 055c6c8..3edc43d 100644 --- a/pkg/front_end/testcases/general/function_type_assignments.dart.outline.expect +++ b/pkg/front_end/testcases/general/function_type_assignments.dart.outline.expect
@@ -7,9 +7,9 @@ static field core::String* z; static method identity<T extends core::Object* = dynamic>(self::identity::T* t) → self::identity::T* ; -static method identityObject<T extends core::Object* = dynamic>(self::identityObject::T* t) → self::identityObject::T* +static method identityObject<T extends core::Object* = core::Object*>(self::identityObject::T* t) → self::identityObject::T* ; -static method identityList<T extends core::List<self::identityList::T>* = dynamic>(self::identityList::T* t) → self::identityList::T* +static method identityList<T extends core::List<self::identityList::T>* = core::List<dynamic>*>(self::identityList::T* t) → self::identityList::T* ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/function_type_default_value.dart.outline.expect b/pkg/front_end/testcases/general/function_type_default_value.dart.outline.expect index 9bfb098..9d451cd 100644 --- a/pkg/front_end/testcases/general/function_type_default_value.dart.outline.expect +++ b/pkg/front_end/testcases/general/function_type_default_value.dart.outline.expect
@@ -10,7 +10,7 @@ // void Function({obj: Object}) x; // ^ // -// pkg/front_end/testcases/general/function_type_default_value.dart:5:16: Warning: Type 'obj' not found. +// pkg/front_end/testcases/general/function_type_default_value.dart:5:16: Error: Type 'obj' not found. // void Function({obj: Object}) x; // ^^^ //
diff --git a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.outline.expect b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.outline.expect index 07147d2..55f17dd 100644 --- a/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.outline.expect +++ b/pkg/front_end/testcases/general/implicit_const_with_static_fields.dart.outline.expect
@@ -3,11 +3,11 @@ import "dart:core" as core; class C extends core::Object { - static const field dynamic constField = 87; + static const field core::int* constField = 87; const constructor •(dynamic x) → self::C* : super core::Object::•() ; } -static const field dynamic constTopLevelField = 42; +static const field core::int* constTopLevelField = 42; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.outline.expect b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.outline.expect new file mode 100644 index 0000000..5494096 --- /dev/null +++ b/pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart.outline.expect
@@ -0,0 +1,41 @@ +library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:11: Error: Expected '.' before this. +// C.a(this); +// ^ +// +// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:6:11: Error: Expected an identifier, but got ')'. +// C.a(this); +// ^ +// +// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:7:12: Error: Expected an identifier, but got ')'. +// C.b(this.); +// ^ +// +// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:11: Error: Expected '.' before this. +// C.c(this, p); +// ^ +// +// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:8:11: Error: Expected an identifier, but got ','. +// C.c(this, p); +// ^ +// +// pkg/front_end/testcases/general/incomplete_field_formal_parameter.dart:9:12: Error: Expected an identifier, but got ','. +// C.d(this., p); +// ^ +// +import self as self; +import "dart:core" as core; + +class C extends core::Object { + constructor a() → self::C* + ; + constructor b() → self::C* + ; + constructor c() → self::C* + ; + constructor d() → self::C* + ; +}
diff --git a/pkg/front_end/testcases/general/many_errors.dart.outline.expect b/pkg/front_end/testcases/general/many_errors.dart.outline.expect index 27f485d..8485710 100644 --- a/pkg/front_end/testcases/general/many_errors.dart.outline.expect +++ b/pkg/front_end/testcases/general/many_errors.dart.outline.expect
@@ -15,7 +15,7 @@ // const A.named2() : x = new Object(); // ^^^ // -// pkg/front_end/testcases/general/many_errors.dart:10:24: Warning: 'x' is a final instance variable that has already been initialized. +// pkg/front_end/testcases/general/many_errors.dart:10:24: Error: 'x' is a final instance variable that has already been initialized. // const A.named2() : x = new Object(); // ^ // pkg/front_end/testcases/general/many_errors.dart:6:9: Context: 'x' was initialized here.
diff --git a/pkg/front_end/testcases/general/mixin_application_override.dart.outline.expect b/pkg/front_end/testcases/general/mixin_application_override.dart.outline.expect index fd825b0..c8bbb73 100644 --- a/pkg/front_end/testcases/general/mixin_application_override.dart.outline.expect +++ b/pkg/front_end/testcases/general/mixin_application_override.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -12,7 +12,7 @@ // class A0 = S with M; // ^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -22,7 +22,7 @@ // class A1 = S with M1, M; // ^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -32,7 +32,7 @@ // class A2 = S with M1, M2, M; // ^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -42,7 +42,7 @@ // class A0X = S with M, MX; // ^^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -52,7 +52,7 @@ // class A1X = S with M1, M, MX; // ^^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -62,7 +62,7 @@ // class A2X = S with M1, M2, M, MX; // ^^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -72,7 +72,7 @@ // class B0 extends S with M {} // ^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -82,7 +82,7 @@ // class B1 extends S with M1, M {} // ^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -92,7 +92,7 @@ // class B2 extends S with M1, M2, M {} // ^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -102,7 +102,7 @@ // class B0X extends S with M, MX {} // ^^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo'). @@ -112,7 +112,7 @@ // class B1X extends S with M1, M, MX {} // ^^^ // -// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. +// pkg/front_end/testcases/general/mixin_application_override.dart:12:3: Error: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'. // foo() {} // ^ // pkg/front_end/testcases/general/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.outline.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.outline.expect index 485f78a..5d68397 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.outline.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.outline.expect
@@ -6,7 +6,7 @@ synthetic constructor •() → self::A* ; } -class C<T extends self::A* = dynamic> extends core::Object { +class C<T extends self::A* = self::A*> extends core::Object { generic-covariant-impl field self::C::T* _field; synthetic constructor •() → self::C<self::C::T*>* ;
diff --git a/pkg/front_end/testcases/general/override_check_accessor_after_inference.dart.outline.expect b/pkg/front_end/testcases/general/override_check_accessor_after_inference.dart.outline.expect index d28f088..2da0b47 100644 --- a/pkg/front_end/testcases/general/override_check_accessor_after_inference.dart.outline.expect +++ b/pkg/front_end/testcases/general/override_check_accessor_after_inference.dart.outline.expect
@@ -1,4 +1,27 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/override_check_accessor_after_inference.dart:26:9: Error: The return type of the method 'F.y' is 'A', which does not match the return type, 'B', of the overridden method, 'D.y'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_accessor_after_inference.dart'. +// - 'B' is from 'pkg/front_end/testcases/general/override_check_accessor_after_inference.dart'. +// Change to a subtype of 'B'. +// A get y => null; +// ^ +// pkg/front_end/testcases/general/override_check_accessor_after_inference.dart:16:7: Context: This is the overridden method ('y'). +// get y => null; // Inferred type: B +// ^ +// +// pkg/front_end/testcases/general/override_check_accessor_after_inference.dart:25:16: Error: The parameter 'value' of the method 'F.x' has type 'B', which does not match the corresponding type, 'A', in the overridden method, 'D.x'. +// - 'B' is from 'pkg/front_end/testcases/general/override_check_accessor_after_inference.dart'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_accessor_after_inference.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void set x(B value) {} +// ^ +// pkg/front_end/testcases/general/override_check_accessor_after_inference.dart:15:12: Context: This is the overridden method ('x'). +// void set x(value) {} // Inferred type: A +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/override_check_accessor_basic.dart.outline.expect b/pkg/front_end/testcases/general/override_check_accessor_basic.dart.outline.expect index ba70391..5e1469f 100644 --- a/pkg/front_end/testcases/general/override_check_accessor_basic.dart.outline.expect +++ b/pkg/front_end/testcases/general/override_check_accessor_basic.dart.outline.expect
@@ -1,4 +1,27 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/override_check_accessor_basic.dart:21:14: Error: The return type of the method 'E.y' is 'Object', which does not match the return type, 'A', of the overridden method, 'C.y'. +// - 'Object' is from 'dart:core'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_accessor_basic.dart'. +// Change to a subtype of 'A'. +// Object get y => null; +// ^ +// pkg/front_end/testcases/general/override_check_accessor_basic.dart:11:9: Context: This is the overridden method ('y'). +// A get y => null; +// ^ +// +// pkg/front_end/testcases/general/override_check_accessor_basic.dart:20:16: Error: The parameter 'value' of the method 'E.x' has type 'B', which does not match the corresponding type, 'A', in the overridden method, 'C.x'. +// - 'B' is from 'pkg/front_end/testcases/general/override_check_accessor_basic.dart'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_accessor_basic.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void set x(B value) {} +// ^ +// pkg/front_end/testcases/general/override_check_accessor_basic.dart:10:12: Context: This is the overridden method ('x'). +// void set x(A value) {} +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart.outline.expect b/pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart.outline.expect index a3eaa5e..c042245 100644 --- a/pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart.outline.expect +++ b/pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart.outline.expect
@@ -1,4 +1,26 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart:22:17: Error: The parameter 'value' of the method 'D.x4' has type 'B', which does not match the corresponding type, 'A', in the overridden method, 'C.x4'. +// - 'B' is from 'pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void set x4(B value) {} // Not covariant +// ^ +// pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart:13:12: Context: This is the overridden method ('x4'). +// void set x4(A value) {} +// ^ +// +// pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart:23:32: Error: The parameter 'value' of the method 'D.x5' has type 'String', which does not match the corresponding type, 'A', in the overridden method, 'C.x5'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void set x5(covariant String value) {} +// ^ +// pkg/front_end/testcases/general/override_check_accessor_with_covariant_modifier.dart:14:12: Context: This is the overridden method ('x5'). +// void set x5(covariant A value) {} +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/override_check_after_inference.dart.outline.expect b/pkg/front_end/testcases/general/override_check_after_inference.dart.outline.expect index 3f00110..a04839a 100644 --- a/pkg/front_end/testcases/general/override_check_after_inference.dart.outline.expect +++ b/pkg/front_end/testcases/general/override_check_after_inference.dart.outline.expect
@@ -1,4 +1,17 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/override_check_after_inference.dart:22:12: Error: The parameter 'x' of the method 'F.f' has type 'B', which does not match the corresponding type, 'A', in the overridden method, 'D.f'. +// - 'B' is from 'pkg/front_end/testcases/general/override_check_after_inference.dart'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_after_inference.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void f(B x) {} +// ^ +// pkg/front_end/testcases/general/override_check_after_inference.dart:14:8: Context: This is the overridden method ('f'). +// void f(x) {} // Inferred type: (A) -> void +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/override_check_basic.dart.outline.expect b/pkg/front_end/testcases/general/override_check_basic.dart.outline.expect index aa8593d..82a45c2 100644 --- a/pkg/front_end/testcases/general/override_check_basic.dart.outline.expect +++ b/pkg/front_end/testcases/general/override_check_basic.dart.outline.expect
@@ -1,4 +1,47 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/override_check_basic.dart:27:10: Error: The return type of the method 'E.f4' is 'Object', which does not match the return type, 'A', of the overridden method, 'C.f4'. +// - 'Object' is from 'dart:core'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_basic.dart'. +// Change to a subtype of 'A'. +// Object f4() {} +// ^ +// pkg/front_end/testcases/general/override_check_basic.dart:13:5: Context: This is the overridden method ('f4'). +// A f4() {} +// ^ +// +// pkg/front_end/testcases/general/override_check_basic.dart:26:14: Error: The parameter 'x' of the method 'E.f3' has type 'B', which does not match the corresponding type, 'A', in the overridden method, 'C.f3'. +// - 'B' is from 'pkg/front_end/testcases/general/override_check_basic.dart'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_basic.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void f3({B x}) {} +// ^ +// pkg/front_end/testcases/general/override_check_basic.dart:12:8: Context: This is the overridden method ('f3'). +// void f3({A x}) {} +// ^ +// +// pkg/front_end/testcases/general/override_check_basic.dart:24:13: Error: The parameter 'x' of the method 'E.f1' has type 'B', which does not match the corresponding type, 'A', in the overridden method, 'C.f1'. +// - 'B' is from 'pkg/front_end/testcases/general/override_check_basic.dart'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_basic.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void f1(B x) {} +// ^ +// pkg/front_end/testcases/general/override_check_basic.dart:10:8: Context: This is the overridden method ('f1'). +// void f1(A x) {} +// ^ +// +// pkg/front_end/testcases/general/override_check_basic.dart:25:14: Error: The parameter 'x' of the method 'E.f2' has type 'B', which does not match the corresponding type, 'A', in the overridden method, 'C.f2'. +// - 'B' is from 'pkg/front_end/testcases/general/override_check_basic.dart'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_basic.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void f2([B x]) {} +// ^ +// pkg/front_end/testcases/general/override_check_basic.dart:11:8: Context: This is the overridden method ('f2'). +// void f2([A x]) {} +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/override_check_generic_method_f_bounded.dart.outline.expect b/pkg/front_end/testcases/general/override_check_generic_method_f_bounded.dart.outline.expect index 6865779..193f75c 100644 --- a/pkg/front_end/testcases/general/override_check_generic_method_f_bounded.dart.outline.expect +++ b/pkg/front_end/testcases/general/override_check_generic_method_f_bounded.dart.outline.expect
@@ -2,20 +2,20 @@ import self as self; import "dart:core" as core; -class Foo<T extends self::Foo<self::Foo::T>* = dynamic> extends core::Object { +class Foo<T extends self::Foo<self::Foo::T>* = self::Foo<dynamic>*> extends core::Object { synthetic constructor •() → self::Foo<self::Foo::T*>* ; } abstract class Bar extends core::Object { synthetic constructor •() → self::Bar* ; - abstract method fisk<S extends self::Foo<self::Bar::fisk::S>* = dynamic>() → void; + abstract method fisk<S extends self::Foo<self::Bar::fisk::S>* = self::Foo<dynamic>*>() → void; } class Hest extends core::Object implements self::Bar { synthetic constructor •() → self::Hest* ; @core::override - method fisk<U extends self::Foo<self::Hest::fisk::U>* = dynamic>() → void + method fisk<U extends self::Foo<self::Hest::fisk::U>* = self::Foo<dynamic>*>() → void ; } static method main() → void
diff --git a/pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart.outline.expect b/pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart.outline.expect index a65975c..4c08082 100644 --- a/pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart.outline.expect +++ b/pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart.outline.expect
@@ -1,4 +1,26 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart:23:28: Error: The parameter 'x' of the method 'D.f5' has type 'String', which does not match the corresponding type, 'A', in the overridden method, 'C.f5'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void f5(covariant String x) {} +// ^ +// pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart:14:8: Context: This is the overridden method ('f5'). +// void f5(covariant A x) {} +// ^ +// +// pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart:22:13: Error: The parameter 'x' of the method 'D.f4' has type 'B', which does not match the corresponding type, 'A', in the overridden method, 'C.f4'. +// - 'B' is from 'pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart'. +// - 'A' is from 'pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart'. +// Change to a supertype of 'A', or, for a covariant parameter, a subtype. +// void f4(B x) {} // Not covariant +// ^ +// pkg/front_end/testcases/general/override_check_with_covariant_modifier.dart:13:8: Context: This is the overridden method ('f4'). +// void f4(A x) {} +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/part_not_part_of_same_named_library.dart.outline.expect b/pkg/front_end/testcases/general/part_not_part_of_same_named_library.dart.outline.expect index 6cf04c8..65071a6 100644 --- a/pkg/front_end/testcases/general/part_not_part_of_same_named_library.dart.outline.expect +++ b/pkg/front_end/testcases/general/part_not_part_of_same_named_library.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/general/part_not_part_of_same_named_library.dart:8:6: Warning: Using 'pkg/front_end/testcases/general/part_not_part_of_same_named_library_lib1.dart' as part of 'pkg/front_end/testcases/general/part_not_part_of_same_named_library.dart' but its 'part of' declaration says 'foo'. +// pkg/front_end/testcases/general/part_not_part_of_same_named_library.dart:8:6: Error: Using 'pkg/front_end/testcases/general/part_not_part_of_same_named_library_lib1.dart' as part of 'pkg/front_end/testcases/general/part_not_part_of_same_named_library.dart' but its 'part of' declaration says 'foo'. // Try changing the 'part of' declaration to use a relative file name. // part 'part_not_part_of_same_named_library_lib1.dart'; // ^
diff --git a/pkg/front_end/testcases/general/part_part_of_different_unnamed_library.dart.outline.expect b/pkg/front_end/testcases/general/part_part_of_different_unnamed_library.dart.outline.expect index de523ea..bcd74cd 100644 --- a/pkg/front_end/testcases/general/part_part_of_different_unnamed_library.dart.outline.expect +++ b/pkg/front_end/testcases/general/part_part_of_different_unnamed_library.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/general/part_part_of_different_unnamed_library.dart:8:6: Warning: Using 'pkg/front_end/testcases/general/part_part_of_different_unnamed_library_lib1.dart' as part of 'pkg/front_end/testcases/general/part_part_of_different_unnamed_library.dart' but its 'part of' declaration says 'pkg/front_end/testcases/general/part_part_of_different_unnamed_library_lib2.dart'. +// pkg/front_end/testcases/general/part_part_of_different_unnamed_library.dart:8:6: Error: Using 'pkg/front_end/testcases/general/part_part_of_different_unnamed_library_lib1.dart' as part of 'pkg/front_end/testcases/general/part_part_of_different_unnamed_library.dart' but its 'part of' declaration says 'pkg/front_end/testcases/general/part_part_of_different_unnamed_library_lib2.dart'. // part 'part_part_of_different_unnamed_library_lib1.dart'; // ^ //
diff --git a/pkg/front_end/testcases/general/part_part_of_differently_named_library.dart.outline.expect b/pkg/front_end/testcases/general/part_part_of_differently_named_library.dart.outline.expect index 886001a..4f277c37 100644 --- a/pkg/front_end/testcases/general/part_part_of_differently_named_library.dart.outline.expect +++ b/pkg/front_end/testcases/general/part_part_of_differently_named_library.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/general/part_part_of_differently_named_library.dart:10:6: Warning: Using 'pkg/front_end/testcases/general/part_part_of_differently_named_library_lib1.dart' as part of 'foo' but its 'part of' declaration says 'bar'. +// pkg/front_end/testcases/general/part_part_of_differently_named_library.dart:10:6: Error: Using 'pkg/front_end/testcases/general/part_part_of_differently_named_library_lib1.dart' as part of 'foo' but its 'part of' declaration says 'bar'. // part 'part_part_of_differently_named_library_lib1.dart'; // ^ //
diff --git a/pkg/front_end/testcases/general/qualified.dart.outline.expect b/pkg/front_end/testcases/general/qualified.dart.outline.expect index 08d37e9..c8750b5 100644 --- a/pkg/front_end/testcases/general/qualified.dart.outline.expect +++ b/pkg/front_end/testcases/general/qualified.dart.outline.expect
@@ -9,18 +9,14 @@ // class Bad extends lib.Missing { // ^^^ // -// pkg/front_end/testcases/general/qualified.dart:11:19: Warning: Type 'lib.Missing' not found. -// class Bad extends lib.Missing { -// ^^^^^^^^^^^ -// -// pkg/front_end/testcases/general/qualified.dart:12:3: Warning: Type 'lib.Missing' not found. -// lib.Missing method() {} -// ^^^^^^^^^^^ -// // pkg/front_end/testcases/general/qualified.dart:11:19: Error: Type 'lib.Missing' not found. // class Bad extends lib.Missing { // ^^^^^^^^^^^ // +// pkg/front_end/testcases/general/qualified.dart:12:3: Error: Type 'lib.Missing' not found. +// lib.Missing method() {} +// ^^^^^^^^^^^ +// // pkg/front_end/testcases/general/qualified.dart:18:7: Error: The type 'lib.VoidFunction' can't be used as supertype. // class IllegalSupertype extends lib.VoidFunction {} // ^
diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.outline.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.outline.expect index c4b1096..ba037f1 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.outline.expect
@@ -1,4 +1,13 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/redirecting_factory.dart:7:28: Error: The constructor function type 'Foo<Tf> Function(int)' isn't a subtype of 'FooBase<Tf> Function(int)'. +// - 'Foo' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. +// - 'FooBase' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. +// factory FooBase(int x) = Foo<Tf>; +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.outline.expect index c5cbd80..b81eb59 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.outline.expect
@@ -3,10 +3,13 @@ import "dart:core" as core; class A extends core::Object { - constructor •() → void + static field dynamic _redirecting# = <dynamic>[self::A::first, self::A::second]; + constructor •() → self::A* ; - redirecting_factory first() = self::A::•; - redirecting_factory second() = self::A::first; + static factory first() → self::A* + let dynamic #redirecting_factory = self::A::• in invalid-expression; + static factory second() → self::A* + let dynamic #redirecting_factory = self::A::first in invalid-expression; } static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.outline.expect index 8d1d812..636af62 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.outline.expect
@@ -10,8 +10,8 @@ static factory •(dynamic p) → self::Foo* let dynamic #redirecting_factory = self::Foo::named in invalid-expression; } -static const field dynamic forParameter = 1; -static const field dynamic forFactoryItself = 2; -static const field dynamic anotherForParameter = 3; +static const field core::int* forParameter = 1; +static const field core::int* forFactoryItself = 2; +static const field core::int* anotherForParameter = 3; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.outline.expect index f14f820..fc62503 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.outline.expect
@@ -3,9 +3,11 @@ import "dart:core" as core; class A extends core::Object { - constructor •() → void + static field dynamic _redirecting# = <dynamic>[self::A::redir]; + constructor •() → self::A* ; - redirecting_factory redir() = self::A::•; + static factory redir() → self::A* + let dynamic #redirecting_factory = self::A::• in invalid-expression; } static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.outline.expect index e691673..caf6826 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.outline.expect
@@ -3,20 +3,22 @@ import "dart:core" as core; class X extends core::Object { - synthetic constructor •() → void + synthetic constructor •() → self::X* ; } class Y extends self::X { - synthetic constructor •() → void + synthetic constructor •() → self::Y* ; } class A extends core::Object { - constructor •() → void + static field dynamic _redirecting# = <dynamic>[self::A::redir]; + constructor •() → self::A* ; - redirecting_factory redir() = self::B::•<self::Y>; + static factory redir() → self::A* + let dynamic #redirecting_factory = self::B::• in let self::Y* #typeArg0 = null in invalid-expression; } -class B<T extends self::X> extends self::A { - constructor •() → void +class B<T extends self::X* = self::X*> extends self::A { + constructor •() → self::B<self::B::T*>* ; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.outline.expect index 8e9ac92..4526c6e 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.outline.expect
@@ -2,10 +2,12 @@ import self as self; import "dart:core" as core; -class A<T extends core::Object, S extends core::Object> extends core::Object { - constructor •(self::A::T t, self::A::S s) → void +class A<T extends core::Object* = dynamic, S extends core::Object* = dynamic> extends core::Object { + static field dynamic _redirecting# = <dynamic>[self::A::redir]; + constructor •(self::A::T* t, self::A::S* s) → self::A<self::A::T*, self::A::S*>* ; - redirecting_factory redir<T extends core::Object, S extends core::Object>(T t, S s) = self::A::•<T, S>; + static factory redir<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(self::A::redir::T* t, self::A::redir::S* s) → self::A<self::A::redir::T*, self::A::redir::S*>* + let dynamic #redirecting_factory = self::A::• in let self::A::redir::T* #typeArg0 = null in let self::A::redir::S* #typeArg1 = null in invalid-expression; } static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.outline.expect index 01df3c7..5c26d8c 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.outline.expect
@@ -3,17 +3,19 @@ import "dart:core" as core; class X extends core::Object { - synthetic constructor •() → void + synthetic constructor •() → self::X* ; } class Y extends self::X { - synthetic constructor •() → void + synthetic constructor •() → self::Y* ; } -class A<T extends core::Object, S extends self::A::T> extends core::Object { - constructor •(self::A::T t, self::A::S s) → void +class A<T extends core::Object* = dynamic, S extends self::A::T* = dynamic> extends core::Object { + static field dynamic _redirecting# = <dynamic>[self::A::redir]; + constructor •(self::A::T* t, self::A::S* s) → self::A<self::A::T*, self::A::S*>* ; - redirecting_factory redir<T extends core::Object, S extends T>(T t, S s) = self::A::•<T, S>; + static factory redir<T extends core::Object* = dynamic, S extends self::A::redir::T* = dynamic>(self::A::redir::T* t, self::A::redir::S* s) → self::A<self::A::redir::T*, self::A::redir::S*>* + let dynamic #redirecting_factory = self::A::• in let self::A::redir::T* #typeArg0 = null in let self::A::redir::S* #typeArg1 = null in invalid-expression; } static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.outline.expect b/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.outline.expect index f130ab6..0974ead 100644 --- a/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.outline.expect
@@ -6,7 +6,7 @@ synthetic constructor •() → self::X* ; } -class Foo<T extends self::X* = dynamic> extends core::Object { +class Foo<T extends self::X* = self::X*> extends core::Object { generic-covariant-impl field self::Foo::T* x; constructor fromX(self::X* _init) → self::Foo<self::Foo::T*>* ;
diff --git a/pkg/front_end/testcases/general/reject_generic_function_types_in_bounds.dart.outline.expect b/pkg/front_end/testcases/general/reject_generic_function_types_in_bounds.dart.outline.expect index af53cce..2160bc2 100644 --- a/pkg/front_end/testcases/general/reject_generic_function_types_in_bounds.dart.outline.expect +++ b/pkg/front_end/testcases/general/reject_generic_function_types_in_bounds.dart.outline.expect
@@ -1,4 +1,11 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/general/reject_generic_function_types_in_bounds.dart:8:12: Error: Type variables can't have generic function types in their bounds. +// class Hest<TypeX extends TypeY Function<TypeY>(TypeY)> {} +// ^^^^^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/stringliteral.dart.outline.expect b/pkg/front_end/testcases/general/stringliteral.dart.outline.expect index a46e629..0c2680f 100644 --- a/pkg/front_end/testcases/general/stringliteral.dart.outline.expect +++ b/pkg/front_end/testcases/general/stringliteral.dart.outline.expect
@@ -1,11 +1,12 @@ library; import self as self; +import "dart:core" as core; -static field dynamic color; -static field dynamic thing; -static field dynamic phrase; -static field dynamic adjacent; -static field dynamic linebreaks; -static field dynamic other; +static field core::String* color; +static field core::String* thing; +static field core::String* phrase; +static field core::String* adjacent; +static field core::String* linebreaks; +static field core::String* other; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/general/type_variable_prefix.dart.outline.expect b/pkg/front_end/testcases/general/type_variable_prefix.dart.outline.expect index 8174b6c..519578a 100644 --- a/pkg/front_end/testcases/general/type_variable_prefix.dart.outline.expect +++ b/pkg/front_end/testcases/general/type_variable_prefix.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/general/type_variable_prefix.dart:8:3: Warning: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix. +// pkg/front_end/testcases/general/type_variable_prefix.dart:8:3: Error: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix. // T.String method() => "Hello, World!"; // ^^^^^^^^ //
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart.outline.expect b/pkg/front_end/testcases/general/type_variable_uses.dart.outline.expect index 9bdf117..6de5e4c 100644 --- a/pkg/front_end/testcases/general/type_variable_uses.dart.outline.expect +++ b/pkg/front_end/testcases/general/type_variable_uses.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/general/type_variable_uses.dart:7:15: Warning: Can only use type variables in instance methods. +// pkg/front_end/testcases/general/type_variable_uses.dart:7:15: Error: Can only use type variables in instance methods. // static C<T> staticMethod() { // ^ //
diff --git a/pkg/front_end/testcases/general/unsound_promotion.dart.outline.expect b/pkg/front_end/testcases/general/unsound_promotion.dart.outline.expect index 45f6ecf..9a8c9d9 100644 --- a/pkg/front_end/testcases/general/unsound_promotion.dart.outline.expect +++ b/pkg/front_end/testcases/general/unsound_promotion.dart.outline.expect
@@ -15,7 +15,7 @@ ; } static field core::List<self::A*>* list; -static method g<T extends self::A* = dynamic>(self::g::T* t) → core::List<self::g::T*>* +static method g<T extends self::A* = self::A*>(self::g::T* t) → core::List<self::g::T*>* ; static method f<S extends core::Object* = dynamic>(self::f::S* s) → core::List<self::f::S*>* ;
diff --git a/pkg/front_end/testcases/general/var_as_type_name.dart.outline.expect b/pkg/front_end/testcases/general/var_as_type_name.dart.outline.expect index 421073f..6da5c74 100644 --- a/pkg/front_end/testcases/general/var_as_type_name.dart.outline.expect +++ b/pkg/front_end/testcases/general/var_as_type_name.dart.outline.expect
@@ -6,7 +6,7 @@ // Map<String, var> m; // ^^^ // -// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Warning: Type 'var' not found. +// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: Type 'var' not found. // Map<String, var> m; // ^^^ //
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.outline.expect b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.outline.expect new file mode 100644 index 0000000..2582eae --- /dev/null +++ b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:async" as asy; +import "dart:core" as core; + +import "dart:async"; + +static field asy::Future<core::int*>* futureInt; +static field () →* asy::Future<core::int*>* f; +static field () →* asy::Future<core::int*>* g; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.outline.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.outline.expect new file mode 100644 index 0000000..0231dd0 --- /dev/null +++ b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:async" as asy; +import "dart:core" as core; + +static field () →* asy::Future<core::int*>* f; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.outline.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.outline.expect new file mode 100644 index 0000000..d290a5b --- /dev/null +++ b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:async" as asy; +import "dart:core" as core; + +import "dart:async"; + +static field asy::FutureOr<core::int*>* futureOrInt; +static field () →* asy::FutureOr<core::int*>* f; +static field () →* asy::Future<core::int*>* g; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart.outline.expect new file mode 100644 index 0000000..49da2ef --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; + +import "dart:async"; +import "dart:math"; + +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart.outline.expect new file mode 100644 index 0000000..49da2ef --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; + +import "dart:async"; +import "dart:math"; + +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart.outline.expect new file mode 100644 index 0000000..49da2ef --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; + +import "dart:async"; +import "dart:math"; + +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart.outline.expect new file mode 100644 index 0000000..666bc54 --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; + +import "dart:async"; + +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.outline.expect new file mode 100644 index 0000000..3619892 --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test1() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.outline.expect new file mode 100644 index 0000000..d08afaa --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; +import "dart:core" as core; + +static field () →* core::String* g; +static method f() → core::String* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.outline.expect new file mode 100644 index 0000000..55e2ed1 --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +import "dart:async"; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.outline.expect new file mode 100644 index 0000000..55e2ed1 --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +import "dart:async"; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.outline.expect new file mode 100644 index 0000000..672fbfb --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field dynamic h; +static method foo((core::Object*) →* core::int* f) → void + ; +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.outline.expect new file mode 100644 index 0000000..0a623d0 --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; + +import "dart:math"; + +static method test2() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.outline.expect new file mode 100644 index 0000000..3619892 --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test1() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart.outline.expect new file mode 100644 index 0000000..8e85697 --- /dev/null +++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/bottom.dart.outline.expect b/pkg/front_end/testcases/inference/bottom.dart.outline.expect new file mode 100644 index 0000000..0387d83 --- /dev/null +++ b/pkg/front_end/testcases/inference/bottom.dart.outline.expect
@@ -0,0 +1,6 @@ +library test; +import self as self; + +static field dynamic v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.outline.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.outline.expect new file mode 100644 index 0000000..5497bda --- /dev/null +++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; +import "dart:core" as core; + +static field () →* core::Null* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.outline.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.outline.expect new file mode 100644 index 0000000..97b8e80 --- /dev/null +++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/circular_reference_via_closures.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference. +// Specify the type explicitly. +// var x = /*@ returnType=() ->* invalid-type */ () => y; +// ^ +// +import self as self; + +static field invalid-type x; +static field () →* invalid-type y; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.outline.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.outline.expect new file mode 100644 index 0000000..947182a0 --- /dev/null +++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference. +// Specify the type explicitly. +// var x = /*@ returnType=() ->* invalid-type */ () => y; +// ^ +// +import self as self; + +static field invalid-type x; +static field () →* invalid-type y; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/conditional_lub.dart.outline.expect b/pkg/front_end/testcases/inference/conditional_lub.dart.outline.expect index caf7760..a57d812 100644 --- a/pkg/front_end/testcases/inference/conditional_lub.dart.outline.expect +++ b/pkg/front_end/testcases/inference/conditional_lub.dart.outline.expect
@@ -5,6 +5,6 @@ static field core::bool* b; static field core::int* x; static field core::double* y; -static field dynamic z; +static field core::num* z; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.outline.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.outline.expect new file mode 100644 index 0000000..10031dd --- /dev/null +++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.outline.expect
@@ -0,0 +1,51 @@ +library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/conflicts_can_happen.dart:25:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types. +// Try adding an explicit type. +// get a => null; +// ^ +// +// pkg/front_end/testcases/inference/conflicts_can_happen.dart:30:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types. +// Try adding an explicit type. +// get a => null; +// ^ +// +import self as self; +import "dart:core" as core; + +class I1 extends core::Object { + field core::int* x; + synthetic constructor •() → self::I1* + ; +} +class I2 extends self::I1 { + field core::int* y; + synthetic constructor •() → self::I2* + ; +} +class A extends core::Object { + final field self::I1* a; + synthetic constructor •() → self::A* + ; +} +class B extends core::Object { + final field self::I2* a; + synthetic constructor •() → self::B* + ; +} +class C1 extends core::Object implements self::A, self::B { + synthetic constructor •() → self::C1* + ; + get a() → invalid-type + ; +} +class C2 extends core::Object implements self::B, self::A { + synthetic constructor •() → self::C2* + ; + get a() → invalid-type + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.outline.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.outline.expect new file mode 100644 index 0000000..f509791 --- /dev/null +++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.outline.expect
@@ -0,0 +1,52 @@ +library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types. +// Try adding an explicit type. +// get a => null; +// ^ +// +import self as self; +import "dart:core" as core; + +class I1 extends core::Object { + field core::int* x; + synthetic constructor •() → self::I1* + ; +} +class I2 extends core::Object { + field core::int* y; + synthetic constructor •() → self::I2* + ; +} +class I3 extends core::Object implements self::I1, self::I2 { + field core::int* x; + field core::int* y; + synthetic constructor •() → self::I3* + ; +} +class A extends core::Object { + final field self::I1* a; + synthetic constructor •() → self::A* + ; +} +class B extends core::Object { + final field self::I2* a; + synthetic constructor •() → self::B* + ; +} +class C1 extends core::Object implements self::A, self::B { + synthetic constructor •() → self::C1* + ; + get a() → self::I3* + ; +} +class C2 extends core::Object implements self::A, self::B { + synthetic constructor •() → self::C2* + ; + get a() → invalid-type + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.outline.expect new file mode 100644 index 0000000..be7aa62 --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + synthetic constructor •() → self::A* + ; +} +class B extends self::A { + synthetic constructor •() → self::B* + ; +} +class Foo<T extends self::A* = self::A*> extends core::Object { + synthetic constructor •() → self::Foo<self::Foo::T*>* + ; +} +static method main() → void + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.outline.expect new file mode 100644 index 0000000..704851c --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + generic-covariant-impl field self::C::T* t; + constructor •(self::C::T* t) → self::C<self::C::T*>* + ; +} +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.outline.expect index a195c85..0a07ab4 100644 --- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.outline.expect +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.outline.expect
@@ -7,7 +7,7 @@ synthetic constructor •() → self::A* ; } -class C<T extends self::A* = dynamic> extends core::Object { +class C<T extends self::A* = self::A*> extends core::Object { constructor •(() →* self::C::T* f) → self::C<self::C::T*>* ; }
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.outline.expect new file mode 100644 index 0000000..da1258f --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + final field self::C::T* t; + const constructor •(self::C::T* t) → self::C<self::C::T*>* + : self::C::t = t, super core::Object::•() + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.outline.expect new file mode 100644 index 0000000..cbb70eb --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.outline.expect
@@ -0,0 +1,17 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::num* = core::num*> extends core::Object { + final field self::C::T* x; + const constructor •(self::C::T* x) → self::C<self::C::T*>* + : self::C::x = x, super core::Object::•() + ; +} +class D<T extends core::num* = core::num*> extends core::Object { + const constructor •() → self::D<self::D::T*>* + : super core::Object::•() + ; +} +static method main() → void + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.outline.expect new file mode 100644 index 0000000..1936950 --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + constructor •(core::List<self::C::T*>* list) → self::C<self::C::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.outline.expect new file mode 100644 index 0000000..c33e3cc --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + generic-covariant-impl field self::C::T* t; + constructor _() → self::C<self::C::T*>* + ; + static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>* + ; +} +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.outline.expect new file mode 100644 index 0000000..9bb0a3d --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class A<T extends core::Object* = dynamic> extends core::Object { + generic-covariant-impl field self::A<self::A::T*>* f; + constructor •() → self::A<self::A::T*>* + ; + static factory factory<T extends core::Object* = dynamic>() → self::A<self::A::factory::T*>* + ; + method m() → self::A<self::A::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.outline.expect new file mode 100644 index 0000000..ba86a01 --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + generic-covariant-impl field self::C::T* t; + constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.outline.expect new file mode 100644 index 0000000..28ffdec --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + generic-covariant-impl field self::C::T* t; + constructor •() → self::C<self::C::T*>* + ; + static factory named<T extends core::Object* = dynamic>(self::C::named::T* t) → self::C<self::C::named::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.outline.expect new file mode 100644 index 0000000..306987f --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + generic-covariant-impl field self::C::T* t; + constructor •(self::C::T* t) → self::C<self::C::T*>* + ; + constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.outline.expect new file mode 100644 index 0000000..b66d0d6 --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +abstract class C<T extends core::Object* = dynamic> extends core::Object { + static field dynamic _redirecting# = <dynamic>[self::C::•]; + abstract get t() → self::C::T*; + abstract set t(generic-covariant-impl self::C::T* x) → void; + static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>* + let dynamic #redirecting_factory = self::CImpl::• in let self::C::•::T* #typeArg0 = null in invalid-expression; +} +class CImpl<T extends core::Object* = dynamic> extends core::Object implements self::C<self::CImpl::T*> { + generic-covariant-impl field self::CImpl::T* t; + constructor •(self::CImpl::T* t) → self::CImpl<self::CImpl::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.outline.expect index ee4e32e..4d266f4 100644 --- a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.outline.expect +++ b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.outline.expect
@@ -6,7 +6,7 @@ synthetic constructor •() → self::Cloneable<self::Cloneable::T*>* ; } -class Pair<T extends self::Cloneable<self::Pair::T>* = dynamic, U extends self::Cloneable<self::Pair::U>* = dynamic> extends core::Object { +class Pair<T extends self::Cloneable<self::Pair::T>* = self::Cloneable<dynamic>*, U extends self::Cloneable<self::Pair::U>* = self::Cloneable<dynamic>*> extends core::Object { generic-covariant-impl field self::Pair::T* t; generic-covariant-impl field self::Pair::U* u; constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>*
diff --git a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.outline.expect new file mode 100644 index 0000000..f1f5c5d --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.outline.expect
@@ -0,0 +1,14 @@ +library test; +import self as self; +import "dart:core" as core; + +class Pair<T extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object { + generic-covariant-impl field self::Pair::T* t; + generic-covariant-impl field self::Pair::U* u; + constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>* + ; + get reversed() → self::Pair<self::Pair::U*, self::Pair::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.outline.expect b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.outline.expect new file mode 100644 index 0000000..38f29cd --- /dev/null +++ b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; +import "dart:core" as core; + +class A<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::A<self::A::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.outline.expect b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.outline.expect new file mode 100644 index 0000000..908d36a --- /dev/null +++ b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.outline.expect
@@ -0,0 +1,30 @@ +library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart:13:49: Error: The return type of the method 'B.x' is 'dynamic', which does not match the return type, 'int', of the overridden method, 'A.x'. +// Change to a subtype of 'int'. +// /*error:INVALID_METHOD_OVERRIDE*/ dynamic get x => 3; +// ^ +// pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart:9:13: Context: This is the overridden method ('x'). +// final int x = 2; +// ^ +// +import self as self; +import "dart:core" as core; + +class A extends core::Object { + final field core::int* x; + synthetic constructor •() → self::A* + ; +} +class B extends core::Object implements self::A { + synthetic constructor •() → self::B* + ; + get x() → dynamic + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.outline.expect b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.outline.expect new file mode 100644 index 0000000..13d8894 --- /dev/null +++ b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.outline.expect
@@ -0,0 +1,16 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + static field dynamic x; + static field core::int* y; + field dynamic x2; + field core::int* y2; + synthetic constructor •() → self::A* + ; +} +static field dynamic x; +static field core::int* y; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.outline.expect b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.outline.expect new file mode 100644 index 0000000..8e85697 --- /dev/null +++ b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.outline.expect b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.outline.expect new file mode 100644 index 0000000..8e85697 --- /dev/null +++ b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.outline.expect b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.outline.expect new file mode 100644 index 0000000..5df14ed --- /dev/null +++ b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.outline.expect
@@ -0,0 +1,12 @@ +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*; +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*>* + ; +} +static method main() → void + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.outline.expect index 14bb442..2aa6d59 100644 --- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.outline.expect +++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.outline.expect
@@ -10,12 +10,12 @@ : super core::Object::•() ; } -@self::Foo::•(const <dynamic>[]) +@self::Foo::•(const <core::String*>[]) class Bar extends core::Object { synthetic constructor •() → self::Bar* ; } -@self::Foo::named(const <dynamic>[]) +@self::Foo::named(const <core::String*>[]) class Baz extends core::Object { synthetic constructor •() → self::Baz* ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.outline.expect index 779bc69..5b2f604 100644 --- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.outline.expect +++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.outline.expect
@@ -8,12 +8,12 @@ ; } abstract class Bar extends core::Object { - @self::Foo::•(const <dynamic>[]) + @self::Foo::•(const <core::String*>[]) field dynamic x; - @self::Foo::•(const <dynamic>[]) + @self::Foo::•(const <core::String*>[]) constructor •() → self::Bar* ; - @self::Foo::•(const <dynamic>[]) + @self::Foo::•(const <core::String*>[]) abstract method f() → void; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.outline.expect new file mode 100644 index 0000000..c74ce2b --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.outline.expect new file mode 100644 index 0000000..7554b7c --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:async" as asy; + +import "dart:async"; + +static method main() → asy::Future<dynamic>* + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.outline.expect new file mode 100644 index 0000000..3d473dc --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.outline.expect
@@ -0,0 +1,17 @@ +library test; +import self as self; +import "dart:core" as core; +import "dart:async" as asy; + +import "dart:async"; + +abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> { + static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>* + ; +} +static method F<T extends core::Object* = dynamic>() → self::F::T* + ; +static method f() → asy::Future<dynamic>* + ; +static method main() → asy::Future<dynamic>* + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.outline.expect new file mode 100644 index 0000000..e0a7edc --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.outline.expect
@@ -0,0 +1,17 @@ +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*; +class Foo extends core::Object { + field core::List<core::int*>* x; + constructor •([core::List<core::int*>* x]) → self::Foo* + ; + constructor named([core::List<core::int*>* x]) → self::Foo* + ; +} +static field ([core::List<core::int*>*]) →* core::String* g; +static method f([core::List<core::int*>* l]) → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.outline.expect new file mode 100644 index 0000000..6794a5c --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.outline.expect
@@ -0,0 +1,17 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field self::B<core::int*>* b; + synthetic constructor •() → self::A* + ; +} +class B<T extends core::Object* = dynamic> extends core::Object { + constructor •(self::B::T* x) → self::B<self::B::T*>* + ; +} +static field self::A* t1; +static field core::List<self::B<core::int*>*>* t2; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.outline.expect index e341531..9d0ad6f 100644 --- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.outline.expect +++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.outline.expect
@@ -6,6 +6,6 @@ constructor •(self::A::T* x) → self::A<self::A::T*>* ; } -static field dynamic t1; +static field core::List<self::A<core::int*>*>* t1; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.outline.expect new file mode 100644 index 0000000..3ec491b --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.outline.expect
@@ -0,0 +1,28 @@ +library test; +import self as self; +import "dart:core" as core; + +class F0 extends core::Object { + constructor •(core::List<core::int*>* a) → self::F0* + ; +} +class F1 extends core::Object { + constructor •({core::List<core::int*>* a}) → self::F1* + ; +} +class F2 extends core::Object { + constructor •(core::Iterable<core::int*>* a) → self::F2* + ; +} +class F3 extends core::Object { + constructor •(core::Iterable<core::Iterable<core::int*>*>* a) → self::F3* + ; +} +class F4 extends core::Object { + constructor •({core::Iterable<core::Iterable<core::int*>*>* a}) → self::F4* + ; +} +static method test() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.outline.expect new file mode 100644 index 0000000..2037825 --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +static method f0(core::List<core::int*>* a) → void + ; +static method f1({core::List<core::int*>* a}) → void + ; +static method f2(core::Iterable<core::int*>* a) → void + ; +static method f3(core::Iterable<core::Iterable<core::int*>*>* a) → void + ; +static method f4({core::Iterable<core::Iterable<core::int*>*>* a}) → void + ; +static method test() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.outline.expect new file mode 100644 index 0000000..3539aa7 --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.outline.expect
@@ -0,0 +1,9 @@ +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*; +static method test() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.outline.expect new file mode 100644 index 0000000..27b374a --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → void + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.outline.expect new file mode 100644 index 0000000..ba76888 --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.outline.expect
@@ -0,0 +1,14 @@ +library test; +import self as self; +import "dart:core" as core; + +class F3<T extends core::Object* = dynamic> extends core::Object { + constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>* + ; +} +class F4<T extends core::Object* = dynamic> extends core::Object { + constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a}) → self::F4<self::F4::T*>* + ; +} +static method main() → void + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.outline.expect new file mode 100644 index 0000000..c651d5f --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.outline.expect
@@ -0,0 +1,28 @@ +library test; +import self as self; +import "dart:core" as core; + +class F0<T extends core::Object* = dynamic> extends core::Object { + constructor •(core::List<self::F0::T*>* a) → self::F0<self::F0::T*>* + ; +} +class F1<T extends core::Object* = dynamic> extends core::Object { + constructor •({core::List<self::F1::T*>* a}) → self::F1<self::F1::T*>* + ; +} +class F2<T extends core::Object* = dynamic> extends core::Object { + constructor •(core::Iterable<self::F2::T*>* a) → self::F2<self::F2::T*>* + ; +} +class F3<T extends core::Object* = dynamic> extends core::Object { + constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>* + ; +} +class F4<T extends core::Object* = dynamic> extends core::Object { + constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a}) → self::F4<self::F4::T*>* + ; +} +static method test() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.outline.expect new file mode 100644 index 0000000..c74ce2b --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.outline.expect new file mode 100644 index 0000000..2bf3613 --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.outline.expect
@@ -0,0 +1,44 @@ +library test; +import self as self; +import "dart:core" as core; + +class A<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends core::Object { + generic-covariant-impl field self::A::S* x; + generic-covariant-impl field self::A::T* y; + constructor •(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>* + ; + constructor named(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>* + ; +} +class B<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::B::T*, self::B::S*> { + constructor •(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>* + ; + constructor named(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>* + ; +} +class C<S extends core::Object* = dynamic> extends self::B<self::C::S*, self::C::S*> { + constructor •(self::C::S* a) → self::C<self::C::S*>* + ; + constructor named(self::C::S* a) → self::C<self::C::S*>* + ; +} +class D<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::B<self::D::T*, core::int*> { + constructor •(self::D::T* a) → self::D<self::D::S*, self::D::T*>* + ; + constructor named(self::D::T* a) → self::D<self::D::S*, self::D::T*>* + ; +} +class E<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::C<self::E::S*>*, self::E::T*> { + constructor •(self::E::T* a) → self::E<self::E::S*, self::E::T*>* + ; +} +class F<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::F::S*, self::F::T*> { + constructor •(self::F::S* x, self::F::T* y, {core::List<self::F::S*>* a, core::List<self::F::T*>* b}) → self::F<self::F::S*, self::F::T*>* + ; + constructor named(self::F::S* x, self::F::T* y, [self::F::S* a, self::F::T* b]) → self::F<self::F::S*, self::F::T*>* + ; +} +static method test() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.outline.expect new file mode 100644 index 0000000..a92d585 --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +static method foo([core::List<core::String*>* list1, core::List<core::String*>* list2]) → void + ; +static method main() → void + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.outline.expect new file mode 100644 index 0000000..57c5b68 --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.outline.expect
@@ -0,0 +1,38 @@ +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; +class DartType extends core::Object { + synthetic constructor •() → self::DartType* + ; +} +abstract class C extends core::Object { + static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf; + field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf; + synthetic constructor •() → self::C* + ; + static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void + ; + abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void; + method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic + ; +} +abstract class G<T extends core::Object* = dynamic> extends core::Object { + field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf; + synthetic constructor •() → self::G<self::G::T*>* + ; + abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void; + method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic + ; +} +static field (self::DartType*) →* void _isInt; +static field (self::DartType*) →* void _isString; +static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf; +static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void + ; +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.outline.expect new file mode 100644 index 0000000..2456a4af --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; +import "dart:core" as core; + +static method foo([core::Map<core::int*, core::String*>* m1, core::Map<core::int*, core::String*>* m2]) → void + ; +static method test() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.outline.expect new file mode 100644 index 0000000..e1e83f3 --- /dev/null +++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.outline.expect
@@ -0,0 +1,17 @@ +library test; +import self as self; +import "dart:core" as core; +import "dart:async" as asy; + +import "dart:async"; + +abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> { + static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>* + ; +} +static method foo() → asy::Stream<core::List<core::int*>*>* + ; +static method bar() → core::Iterable<core::Map<core::int*, core::int*>*>* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.outline.expect b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.outline.expect new file mode 100644 index 0000000..0ac31d4 --- /dev/null +++ b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + final field core::int* x; + synthetic constructor •() → self::C* + ; + static get _x() → core::int* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.outline.expect b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.outline.expect new file mode 100644 index 0000000..2df00b8e --- /dev/null +++ b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + final field core::int* x; + synthetic constructor •() → self::C* + ; +} +static get y() → core::int* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/future_or_subtyping.dart.outline.expect b/pkg/front_end/testcases/inference/future_or_subtyping.dart.outline.expect new file mode 100644 index 0000000..c763edf --- /dev/null +++ b/pkg/front_end/testcases/inference/future_or_subtyping.dart.outline.expect
@@ -0,0 +1,14 @@ +library test; +import self as self; +import "dart:core" as core; + +import "dart:async"; + +static method add(core::int* x) → void + ; +static method add2(core::int* y) → dynamic + ; +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.outline.expect b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.outline.expect new file mode 100644 index 0000000..c410a31 --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef ToValue<T extends core::Object* = dynamic> = (T*) →* void; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.outline.expect new file mode 100644 index 0000000..9f34989 --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +static method f<S extends core::Object* = dynamic, T extends core::Object* = dynamic>(self::f::S* s) → self::f::T* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.outline.expect index 464dcd7..1a8b966 100644 --- a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.outline.expect +++ b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.outline.expect
@@ -2,10 +2,10 @@ import self as self; import "dart:core" as core; -class Foo<T extends core::Pattern* = dynamic> extends core::Object { +class Foo<T extends core::Pattern* = core::Pattern*> extends core::Object { synthetic constructor •() → self::Foo<self::Foo::T*>* ; - method method<generic-covariant-impl U extends self::Foo::T* = dynamic>(self::Foo::method::U* u) → self::Foo::method::U* + method method<generic-covariant-impl U extends self::Foo::T* = self::Foo::T*>(self::Foo::method::U* u) → self::Foo::method::U* ; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.outline.expect new file mode 100644 index 0000000..47b4040 --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.outline.expect
@@ -0,0 +1,16 @@ +library test; +import self as self; +import "dart:core" as core; + +import "dart:math"; + +static method printInt(core::int* x) → void + ; +static method printDouble(core::double* x) → void + ; +static method myMax(core::num* x, core::num* y) → core::num* + ; +static method f() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.outline.expect new file mode 100644 index 0000000..07bf679 --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.outline.expect
@@ -0,0 +1,36 @@ +library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart:13:3: Error: Declared type variables of 'D.m' doesn't match those on overridden method 'C.m'. +// m(x) => x; +// ^ +// pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart:9:5: Context: This is the overridden method ('m'). +// T m<T>(T x) => x; +// ^ +// +// pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart:13:3: Error: The return type of the method 'D.m' is 'dynamic', which does not match the return type, 'T', of the overridden method, 'C.m'. +// Change to a subtype of 'T'. +// m(x) => x; +// ^ +// pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart:9:5: Context: This is the overridden method ('m'). +// T m<T>(T x) => x; +// ^ +// +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T* + ; +} +class D extends self::C { + synthetic constructor •() → self::D* + ; + method m(dynamic x) → dynamic + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.outline.expect new file mode 100644 index 0000000..649bb11 --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; +import "dart:core" as core; + +static method f<T extends core::Object* = dynamic>(core::List<self::f::T*>* s) → self::f::T* + ; +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.outline.expect new file mode 100644 index 0000000..b3ae44d --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; + +static method test() → void + ; +static method functionExpressionInvocation() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.outline.expect new file mode 100644 index 0000000..9bbf070 --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.outline.expect
@@ -0,0 +1,55 @@ +library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart:14:5: Error: Declared type variables of 'D.m' doesn't match those on overridden method 'C.m'. +// T m<T>(T x) => x; +// ^ +// pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart:9:3: Context: This is the overridden method ('m'). +// m(x) => x; +// ^ +// +// pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart:14:12: Error: The parameter 'x' of the method 'D.m' has type 'T', which does not match the corresponding type, 'dynamic', in the overridden method, 'C.m'. +// Change to a supertype of 'dynamic', or, for a covariant parameter, a subtype. +// T m<T>(T x) => x; +// ^ +// pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart:9:3: Context: This is the overridden method ('m'). +// m(x) => x; +// ^ +// +// pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart:15:5: Error: Declared type variables of 'D.g' doesn't match those on overridden method 'C.g'. +// T g<T>(T x) => x; +// ^ +// pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart:10:11: Context: This is the overridden method ('g'). +// dynamic g(int x) => x; +// ^ +// +// pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart:15:12: Error: The parameter 'x' of the method 'D.g' has type 'T', which does not match the corresponding type, 'int', in the overridden method, 'C.g'. +// Change to a supertype of 'int', or, for a covariant parameter, a subtype. +// T g<T>(T x) => x; +// ^ +// pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart:10:11: Context: This is the overridden method ('g'). +// dynamic g(int x) => x; +// ^ +// +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method m(dynamic x) → dynamic + ; + method g(core::int* x) → dynamic + ; +} +class D extends self::C { + synthetic constructor •() → self::D* + ; + method m<T extends core::Object* = dynamic>(self::D::m::T* x) → self::D::m::T* + ; + method g<T extends core::Object* = dynamic>(self::D::g::T* x) → self::D::g::T* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.outline.expect new file mode 100644 index 0000000..465372c --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.outline.expect
@@ -0,0 +1,19 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef F<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*>* + ; + method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::f::U*) →* void + ; +} +class D<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::D<self::D::T*>* + ; + method f<U extends core::Object* = dynamic>(self::D::f::U* u) → (self::D::f::U*) →* void + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.outline.expect new file mode 100644 index 0000000..cd56022 --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef G<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*>* + ; + method f<U extends core::Object* = dynamic>(() →* core::List<self::C::f::U*>* g) → void + ; +} +abstract class D<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::D<self::D::T*>* + ; + abstract method f<U extends core::Object* = dynamic>(() →* core::List<self::D::f::U*>* g) → void; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.outline.expect new file mode 100644 index 0000000..0a73a00 --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.outline.expect
@@ -0,0 +1,19 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef F<V extends core::Object* = dynamic> = () →* V*; +class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> { + synthetic constructor •() → self::C<self::C::T*>* + ; + method f<U extends core::Object* = dynamic>(self::C::f::U* x) → () →* self::C::f::U* + ; +} +class D<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::D<self::D::T*>* + ; + method f<U extends core::Object* = dynamic>(self::D::f::U* u) → () →* self::D::f::U* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.outline.expect new file mode 100644 index 0000000..e19be4b --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.outline.expect
@@ -0,0 +1,45 @@ +library test; +import self as self; +import "dart:core" as core; + +import "dart:math" as math; +import "dart:math"; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method m<T extends core::num* = core::num*>(self::C::m::T* x, self::C::m::T* y) → self::C::m::T* + ; +} +static method test() → dynamic + ; +static method takeIII((core::int*, core::int*) →* core::int* fn) → void + ; +static method takeDDD((core::double*, core::double*) →* core::double* fn) → void + ; +static method takeIDI((core::double*, core::int*) →* core::int* fn) → void + ; +static method takeDID((core::int*, core::double*) →* core::double* fn) → void + ; +static method takeIDN((core::double*, core::int*) →* core::num* fn) → void + ; +static method takeDIN((core::int*, core::double*) →* core::num* fn) → void + ; +static method takeIIN((core::int*, core::int*) →* core::num* fn) → void + ; +static method takeDDN((core::double*, core::double*) →* core::num* fn) → void + ; +static method takeNNN((core::num*, core::num*) →* core::num* fn) → void + ; +static method takeOON((core::Object*, core::Object*) →* core::num* fn) → void + ; +static method takeOOO((core::Object*, core::Object*) →* core::num* fn) → void + ; +static method takeOOI((core::Object*, core::Object*) →* core::int* fn) → void + ; +static method takeIIO((core::int*, core::int*) →* core::Object* fn) → void + ; +static method takeDDO((core::double*, core::double*) →* core::Object* fn) → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.outline.expect new file mode 100644 index 0000000..45f2f2b --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T* + ; +} +class D extends self::C { + synthetic constructor •() → self::D* + ; + method m<S extends core::Object* = dynamic>(self::D::m::S* x) → self::D::m::S* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.outline.expect new file mode 100644 index 0000000..824697a --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method f() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.outline.expect new file mode 100644 index 0000000..abf425d --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; +import "dart:async" as asy; + +import "dart:async"; + +static method make(core::int* x) → asy::Future<core::int*>* + ; +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.outline.expect new file mode 100644 index 0000000..41b11c5 --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +import "dart:math" as math; + +class Trace extends core::Object { + field core::List<self::Frame*>* frames; + synthetic constructor •() → self::Trace* + ; +} +class Frame extends core::Object { + field core::String* location; + synthetic constructor •() → self::Frame* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.outline.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.outline.expect new file mode 100644 index 0000000..2afc98d --- /dev/null +++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef F = (core::int*) →* core::Iterable<core::num*>*; +typedef G = (core::double*) →* core::List<core::int*>*; +static method generic<T extends core::Object* = dynamic>((self::generic::T*) →* dynamic a, (self::generic::T*) →* dynamic b) → self::generic::T* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.outline.expect b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.outline.expect index 4046a6c..1374798 100644 --- a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.outline.expect +++ b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.outline.expect
@@ -5,13 +5,13 @@ class A extends core::Object implements self::B { synthetic constructor •() → self::A* ; - get x() → dynamic + get x() → core::int* ; - set x(dynamic value) → void + set x(core::int* value) → void ; } class B extends core::Object { - field dynamic x; + field core::int* x; synthetic constructor •() → self::B* ; }
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.outline.expect new file mode 100644 index 0000000..7971d4a --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field core::int* f; + synthetic constructor •() → self::A* + ; +} +static field self::A* a; +static field core::int* c; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_binary_custom.dart.outline.expect b/pkg/front_end/testcases/inference/infer_binary_custom.dart.outline.expect new file mode 100644 index 0000000..f9000f4 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_binary_custom.dart.outline.expect
@@ -0,0 +1,16 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + synthetic constructor •() → self::A* + ; + operator +(dynamic other) → core::int* + ; + operator -(dynamic other) → core::double* + ; +} +static field core::int* v_add; +static field core::double* v_minus; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.outline.expect b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.outline.expect new file mode 100644 index 0000000..fc1ae00 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::bool* a_equal; +static field core::bool* a_notEqual; +static field core::double* a_add; +static field core::double* a_subtract; +static field core::double* a_multiply; +static field core::double* a_divide; +static field core::int* a_floorDivide; +static field core::bool* a_greater; +static field core::bool* a_less; +static field core::bool* a_greaterEqual; +static field core::bool* a_lessEqual; +static field core::double* a_modulo; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.outline.expect b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.outline.expect new file mode 100644 index 0000000..fc1ae00 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::bool* a_equal; +static field core::bool* a_notEqual; +static field core::double* a_add; +static field core::double* a_subtract; +static field core::double* a_multiply; +static field core::double* a_divide; +static field core::int* a_floorDivide; +static field core::bool* a_greater; +static field core::bool* a_less; +static field core::bool* a_greaterEqual; +static field core::bool* a_lessEqual; +static field core::double* a_modulo; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.outline.expect b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.outline.expect new file mode 100644 index 0000000..fc1ae00 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::bool* a_equal; +static field core::bool* a_notEqual; +static field core::double* a_add; +static field core::double* a_subtract; +static field core::double* a_multiply; +static field core::double* a_divide; +static field core::int* a_floorDivide; +static field core::bool* a_greater; +static field core::bool* a_less; +static field core::bool* a_greaterEqual; +static field core::bool* a_lessEqual; +static field core::double* a_modulo; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.outline.expect b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.outline.expect new file mode 100644 index 0000000..cc7c479 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.outline.expect
@@ -0,0 +1,23 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::bool* a_equal; +static field core::bool* a_notEqual; +static field core::int* a_bitXor; +static field core::int* a_bitAnd; +static field core::int* a_bitOr; +static field core::int* a_bitShiftRight; +static field core::int* a_bitShiftLeft; +static field core::int* a_add; +static field core::int* a_subtract; +static field core::int* a_multiply; +static field core::double* a_divide; +static field core::int* a_floorDivide; +static field core::bool* a_greater; +static field core::bool* a_less; +static field core::bool* a_greaterEqual; +static field core::bool* a_lessEqual; +static field core::int* a_modulo; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_conditional.dart.outline.expect b/pkg/front_end/testcases/inference/infer_conditional.dart.outline.expect new file mode 100644 index 0000000..6ea6d78 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_conditional.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::num* a; +static field core::num* b; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.outline.expect new file mode 100644 index 0000000..d58d84f --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.outline.expect
@@ -0,0 +1,35 @@ +library test; +import self as self; +import "dart:core" as core; +import "infer_consts_transitively_2_a.dart" as inf; + +import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart"; + +static const field core::int* m1 = inf::a1; +static const field core::int* m2 = inf::a2; +static method foo() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as inf; +import "dart:core" as core; +import "infer_consts_transitively_2.dart" as self; +import "infer_consts_transitively_2_b.dart" as inf2; + +import "org-dartlang-testcase:///infer_consts_transitively_2.dart"; +import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart"; + +static const field core::int* a1 = self::m2; +static const field core::int* a2 = inf2::b1; +static method main() → dynamic + ; + +library; +import self as inf2; +import "dart:core" as core; + +static const field core::int* b1 = 2; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.outline.expect new file mode 100644 index 0000000..cb88599 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.outline.expect
@@ -0,0 +1,35 @@ +library; +import self as self; +import "dart:core" as core; +import "infer_consts_transitively_2.dart" as test; +import "infer_consts_transitively_2_b.dart" as inf; + +import "org-dartlang-testcase:///infer_consts_transitively_2.dart"; +import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart"; + +static const field core::int* a1 = test::m2; +static const field core::int* a2 = inf::b1; +static method main() → dynamic + ; + +library test; +import self as test; +import "dart:core" as core; +import "infer_consts_transitively_2_a.dart" as self; + +import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart"; + +static const field core::int* m1 = self::a1; +static const field core::int* m2 = self::a2; +static method foo() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as inf; +import "dart:core" as core; + +static const field core::int* b1 = 2; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.outline.expect new file mode 100644 index 0000000..afdd6d7 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.outline.expect
@@ -0,0 +1,7 @@ +library; +import self as self; +import "dart:core" as core; + +static const field core::int* b1 = 2; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.outline.expect new file mode 100644 index 0000000..afdd6d7 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.outline.expect
@@ -0,0 +1,7 @@ +library; +import self as self; +import "dart:core" as core; + +static const field core::int* b1 = 2; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.outline.expect b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.outline.expect new file mode 100644 index 0000000..dfad962 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.outline.expect
@@ -0,0 +1,23 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field dynamic x; + field core::int* y; + field core::String* z; + synthetic constructor •() → self::A* + ; +} +class B extends core::Object implements self::A { + field dynamic x; + field core::int* y; + field core::String* z; + field core::int* w; + synthetic constructor •() → self::B* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.outline.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.outline.expect index 218f5e9..4f999da 100644 --- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.outline.expect +++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.outline.expect
@@ -3,12 +3,12 @@ import "dart:core" as core; class A extends core::Object implements self::B { - field dynamic x; + field core::int* x; synthetic constructor •() → self::A* ; } class B extends core::Object { - field dynamic x; + field core::int* x; synthetic constructor •() → self::B* ; }
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.outline.expect index b917227..915eb44 100644 --- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.outline.expect +++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.outline.expect
@@ -11,7 +11,7 @@ } class B extends self::A { final field core::int* x; - constructor •(dynamic x) → self::B* + constructor •(core::int* x) → self::B* ; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.outline.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.outline.expect index 167fce8..b79c1b0 100644 --- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.outline.expect +++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.outline.expect
@@ -9,7 +9,7 @@ } class B extends self::A { final field core::int* x; - constructor •(dynamic x) → self::B* + constructor •(core::int* x) → self::B* ; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.outline.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.outline.expect index afb8687..9e5258a 100644 --- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.outline.expect +++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.outline.expect
@@ -10,7 +10,7 @@ } class B extends self::A { final field core::double* x; - constructor •(dynamic x) → self::B* + constructor •(core::double* x) → self::B* ; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.outline.expect new file mode 100644 index 0000000..1a5ccea --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.outline.expect
@@ -0,0 +1,41 @@ +library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:19:46: Error: Getter not found: 'x'. +// var b = new B(/*error:UNDEFINED_IDENTIFIER*/ x); // allocations +// ^ +// +// pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:21:34: Error: Getter not found: 'x'. +// /*error:UNDEFINED_IDENTIFIER*/ x +// ^ +// +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field core::int* x; + synthetic constructor •() → self::A* + ; + operator +(dynamic other) → self::B* + ; +} +class B extends self::A { + constructor •(dynamic ignore) → self::B* + ; +} +static field self::A* a; +static field self::B* b; +static field core::List<dynamic>* c1; +static field core::List<dynamic>* c2; +static field core::Map<dynamic, dynamic>* d; +static field self::A* e; +static field core::int* f; +static field core::int* g; +static field self::B* h; +static field dynamic i; +static field self::B* j; +static method test1() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.outline.expect new file mode 100644 index 0000000..c17611a --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field dynamic x; + synthetic constructor •() → self::A* + ; +} +class B extends core::Object implements self::A { + field dynamic x; + synthetic constructor •() → self::B* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.outline.expect new file mode 100644 index 0000000..8b9dd44 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + final field dynamic x; + synthetic constructor •() → self::A* + ; +} +class B extends core::Object implements self::A { + final field dynamic x; + synthetic constructor •() → self::B* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.outline.expect new file mode 100644 index 0000000..6a7760a --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.outline.expect
@@ -0,0 +1,51 @@ +library test; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart"; + +static field core::int* y; +static method test1() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as self2; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart"; + +static field core::int* x; +static method main() → dynamic + ; + +library test; +import self as self3; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart"; + +class B extends core::Object { + static field core::int* y; + synthetic constructor •() → self3::B* + ; +} +static method test1() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as self4; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart"; + +class A extends core::Object { + static field core::int* x; + synthetic constructor •() → self4::A* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.outline.expect new file mode 100644 index 0000000..e70d202 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.outline.expect
@@ -0,0 +1,29 @@ +library test; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart"; + +class B extends core::Object { + static field core::int* y; + synthetic constructor •() → self::B* + ; +} +static method test1() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as self2; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart"; + +class A extends core::Object { + static field core::int* x; + synthetic constructor •() → self2::A* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.outline.expect new file mode 100644 index 0000000..6cdbef6 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.outline.expect
@@ -0,0 +1,29 @@ +library; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart"; + +class A extends core::Object { + static field core::int* x; + synthetic constructor •() → self::A* + ; +} +static method main() → dynamic + ; + +library test; +import self as self2; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart"; + +class B extends core::Object { + static field core::int* y; + synthetic constructor •() → self2::B* + ; +} +static method test1() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.outline.expect new file mode 100644 index 0000000..7a1dac1 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.outline.expect
@@ -0,0 +1,39 @@ +library; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart"; + +static field core::int* x; +static method main() → dynamic + ; + +library test; +import self as self2; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart"; + +class B extends core::Object { + static field core::int* y; + synthetic constructor •() → self2::B* + ; +} +static method test1() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as self3; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart"; + +class A extends core::Object { + static field core::int* x; + synthetic constructor •() → self3::A* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.outline.expect new file mode 100644 index 0000000..a618e67 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.outline.expect
@@ -0,0 +1,19 @@ +library test; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag_a.dart"; + +static field core::int* y; +static method test1() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as self2; +import "dart:core" as core; + +static field core::int* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.outline.expect new file mode 100644 index 0000000..07b69ed --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.outline.expect
@@ -0,0 +1,27 @@ +library test; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag2_a.dart"; + +class B extends core::Object { + static field core::int* y; + synthetic constructor •() → self::B* + ; +} +static method test1() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as self2; +import "dart:core" as core; + +class A extends core::Object { + static field core::int* x; + synthetic constructor •() → self2::A* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.outline.expect new file mode 100644 index 0000000..9aa0236 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.outline.expect
@@ -0,0 +1,11 @@ +library; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + static field core::int* x; + synthetic constructor •() → self::A* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.outline.expect new file mode 100644 index 0000000..59f6600 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.outline.expect
@@ -0,0 +1,7 @@ +library; +import self as self; +import "dart:core" as core; + +static field core::int* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.outline.expect new file mode 100644 index 0000000..dc27164 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method m<T extends core::Object* = dynamic>(core::int* a, {core::String* b, self::C::m::T* c}) → self::C::m::T* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.outline.expect new file mode 100644 index 0000000..fab9845 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method m<T extends core::Object* = dynamic>(core::int* a, [self::C::m::T* b]) → self::C::m::T* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.outline.expect new file mode 100644 index 0000000..da0aacf --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method m<T extends core::Object* = dynamic>(core::int* a, [core::String* b, self::C::m::T* c]) → self::C::m::T* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.outline.expect new file mode 100644 index 0000000..2798d5a --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart.outline.expect b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart.outline.expect new file mode 100644 index 0000000..1421f70 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart.outline.expect
@@ -0,0 +1,20 @@ +library test; +import self as self; +import "dart:core" as core; + +class Resource extends core::Object { + synthetic constructor •() → self::Resource* + ; +} +class Folder extends self::Resource { + synthetic constructor •() → self::Folder* + ; +} +class Foo<T extends core::Object* = dynamic> extends core::Object { + constructor •(self::Foo::T* t) → self::Foo<self::Foo::T*>* + ; +} +static method getResource(core::String* str) → self::Resource* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.outline.expect b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.outline.expect new file mode 100644 index 0000000..8e85697 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.outline.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.outline.expect new file mode 100644 index 0000000..f87eb4f --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.outline.expect
@@ -0,0 +1,17 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends self::D { + synthetic constructor •() → self::C* + ; + set foo(core::int* x) → void + ; +} +class D extends core::Object { + field core::int* foo; + synthetic constructor •() → self::D* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.outline.expect new file mode 100644 index 0000000..8d523c6 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends self::D { + synthetic constructor •() → self::C* + ; + set foo(core::int* x) → void + ; +} +class D extends core::Object { + synthetic constructor •() → self::D* + ; + set foo(core::int* x) → void + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.outline.expect b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.outline.expect new file mode 100644 index 0000000..5594f99 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::bool* a_not; +static field core::int* a_complement; +static field core::int* a_negate; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.outline.expect b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.outline.expect new file mode 100644 index 0000000..264d18b --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.outline.expect
@@ -0,0 +1,17 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + constructor •() → self::A* + ; + operator ~() → core::int* + ; + operator unary-() → core::double* + ; +} +static field self::A* a; +static field core::int* v_complement; +static field core::double* v_negate; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.outline.expect b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.outline.expect new file mode 100644 index 0000000..628cf39 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +static method strings() → core::List<core::String*>* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.outline.expect new file mode 100644 index 0000000..531005e --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.outline.expect
@@ -0,0 +1,36 @@ +library test; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_statics_transitively_a.dart"; + +static final field core::int* m1; +static final field core::int* m2; +static method foo() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as self2; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_statics_transitively.dart"; +import "org-dartlang-testcase:///infer_statics_transitively_b.dart"; + +class A extends core::Object { + static final field core::int* a2; + synthetic constructor •() → self2::A* + ; +} +static final field core::int* a1; +static method main() → dynamic + ; + +library; +import self as self3; +import "dart:core" as core; + +static final field core::int* b1; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.outline.expect new file mode 100644 index 0000000..376e563 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +static const field core::int* x1 = 1; +static final field core::int* x2; +static final field core::int* y1; +static final field core::int* y2; +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.outline.expect new file mode 100644 index 0000000..992d62b --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.outline.expect
@@ -0,0 +1,32 @@ +library test; +import self as self; +import "dart:core" as core; +import "infer_statics_transitively3_a.dart" as inf; + +import "org-dartlang-testcase:///infer_statics_transitively3_a.dart"; +import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" as p; + +static const field core::int* t1 = 1; +static const field core::int* t2 = self::t1; +static const field core::int* t3 = inf::a1; +static const field core::int* t4 = inf::a2; +static const field dynamic t5 = inf::A::a3; +static const field dynamic t6 = inf::A::a3; +static method foo() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as inf; +import "dart:core" as core; + +class A extends core::Object { + static const field dynamic a3 = null; + synthetic constructor •() → inf::A* + ; +} +static const field core::int* a1 = 3; +static const field core::int* a2 = 4; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.outline.expect new file mode 100644 index 0000000..7eda95a --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.outline.expect
@@ -0,0 +1,13 @@ +library; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + static const field dynamic a3 = null; + synthetic constructor •() → self::A* + ; +} +static const field core::int* a1 = 3; +static const field core::int* a2 = 4; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.outline.expect new file mode 100644 index 0000000..b62ec89 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.outline.expect
@@ -0,0 +1,52 @@ +library; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_statics_transitively.dart"; +import "org-dartlang-testcase:///infer_statics_transitively_b.dart"; + +class A extends core::Object { + static final field core::int* a2; + synthetic constructor •() → self::A* + ; +} +static final field core::int* a1; +static method main() → dynamic + ; + +library test; +import self as self2; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_statics_transitively_a.dart"; + +static final field core::int* m1; +static final field core::int* m2; +static method foo() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as self3; +import "dart:core" as core; + +static final field core::int* b1; +static method main() → dynamic + ; + +library; +import self as self4; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_statics_transitively.dart"; +import "org-dartlang-testcase:///infer_statics_transitively_b.dart"; + +class A extends core::Object { + static final field core::int* a2; + synthetic constructor •() → self4::A* + ; +} +static final field core::int* a1; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.outline.expect new file mode 100644 index 0000000..54f49cbb7 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.outline.expect
@@ -0,0 +1,36 @@ +library; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_statics_transitively.dart"; +import "org-dartlang-testcase:///infer_statics_transitively_b.dart"; + +class A extends core::Object { + static final field core::int* a2; + synthetic constructor •() → self::A* + ; +} +static final field core::int* a1; +static method main() → dynamic + ; + +library test; +import self as self2; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_statics_transitively_a.dart"; + +static final field core::int* m1; +static final field core::int* m2; +static method foo() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as self3; +import "dart:core" as core; + +static final field core::int* b1; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.outline.expect new file mode 100644 index 0000000..1634bbb --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.outline.expect
@@ -0,0 +1,7 @@ +library; +import self as self; +import "dart:core" as core; + +static final field core::int* b1; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.outline.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.outline.expect new file mode 100644 index 0000000..82eac85 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.outline.expect
@@ -0,0 +1,26 @@ +library test; +import self as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_statics_with_method_invocations_a.dart"; + +class T extends core::Object { + static final field self::T* foo; + synthetic constructor •() → self::T* + ; + static method m1(core::String* m) → self::T* + ; + static method m2(dynamic e) → core::String* + ; +} +static method main() → dynamic + ; + +library; +import self as self2; +import "dart:core" as core; + +static method m3(core::String* a, core::String* b, [dynamic a1, dynamic a2]) → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.outline.expect new file mode 100644 index 0000000..92e6635 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.outline.expect
@@ -0,0 +1,8 @@ +library; +import self as self; +import "dart:core" as core; + +static method m3(core::String* a, core::String* b, [dynamic a1, dynamic a2]) → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_throw.dart.outline.expect b/pkg/front_end/testcases/inference/infer_throw.dart.outline.expect new file mode 100644 index 0000000..a26c77f --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_throw.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::bool* t; +static field dynamic a; +static field core::int* b; +static field core::int* c; +static field core::int* d; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.outline.expect new file mode 100644 index 0000000..fdad487 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.outline.expect
@@ -0,0 +1,19 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field core::int* x; + synthetic constructor •() → self::A* + ; +} +class B extends self::A { + synthetic constructor •() → self::B* + ; + get x() → core::int* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.outline.expect new file mode 100644 index 0000000..740163e --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.outline.expect
@@ -0,0 +1,19 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + final field core::int* x; + synthetic constructor •() → self::A* + ; +} +class B extends core::Object implements self::A { + synthetic constructor •() → self::B* + ; + get x() → core::int* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var.dart.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var.dart.outline.expect new file mode 100644 index 0000000..3619892 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_type_on_var.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test1() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.outline.expect new file mode 100644 index 0000000..59396ab --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test2() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.outline.expect new file mode 100644 index 0000000..556acab --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field core::int* x; + field core::int* y; + final field core::int* z; + synthetic constructor •() → self::A* + ; + method test1() → dynamic + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.outline.expect new file mode 100644 index 0000000..818f5f5e --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::int* x; +static field core::int* y; +static final field core::int* z; +static method test1() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.outline.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.outline.expect new file mode 100644 index 0000000..6e632b8 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.outline.expect
@@ -0,0 +1,36 @@ +library test; +import self as self; +import "infer_type_regardless_of_declaration_order_or_cycles_b.dart" as inf; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart"; + +class C extends inf::B { + synthetic constructor •() → self::C* + ; + get x() → core::int* + ; +} +class A extends core::Object { + synthetic constructor •() → self::A* + ; + get x() → core::int* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as inf; +import "infer_type_regardless_of_declaration_order_or_cycles.dart" as self; + +import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart"; + +class B extends self::A { + synthetic constructor •() → inf::B* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.outline.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.outline.expect new file mode 100644 index 0000000..3dc6858 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.outline.expect
@@ -0,0 +1,36 @@ +library; +import self as self; +import "infer_type_regardless_of_declaration_order_or_cycles.dart" as test; + +import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart"; + +class B extends test::A { + synthetic constructor •() → self::B* + ; +} +static method main() → dynamic + ; + +library test; +import self as test; +import "infer_type_regardless_of_declaration_order_or_cycles_b.dart" as self; +import "dart:core" as core; + +import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart"; + +class C extends self::B { + synthetic constructor •() → test::C* + ; + get x() → core::int* + ; +} +class A extends core::Object { + synthetic constructor •() → test::A* + ; + get x() → core::int* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.outline.expect b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.outline.expect new file mode 100644 index 0000000..de41e4b --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::Map<core::int*, core::String*>* a; +static field core::Map<core::double*, core::int*>* b; +static field core::Map<core::List<core::int*>*, core::Map<core::String*, core::double*>*>* c; +static field core::Map<core::int*, dynamic>* d; +static field core::Map<dynamic, core::int*>* e; +static field core::Map<dynamic, dynamic>* f; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.outline.expect new file mode 100644 index 0000000..fd0db16 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.outline.expect
@@ -0,0 +1,22 @@ +library test; +import self as self; +import "dart:core" as core; + +class A<T extends core::Object* = dynamic> extends core::Object { + final field self::A::T* x; + final field self::A::T* w; + synthetic constructor •() → self::A<self::A::T*>* + ; +} +class B extends core::Object implements self::A<core::int*> { + synthetic constructor •() → self::B* + ; + get x() → core::int* + ; + get w() → core::int* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.outline.expect new file mode 100644 index 0000000..42d4b2e --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.outline.expect
@@ -0,0 +1,20 @@ +library test; +import self as self; +import "dart:core" as core; + +class A<T extends core::Object* = dynamic> extends core::Object { + generic-covariant-impl field self::A::T* x; + synthetic constructor •() → self::A<self::A::T*>* + ; +} +class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> { + generic-covariant-impl field self::B::E* y; + synthetic constructor •() → self::B<self::B::E*>* + ; + get x() → self::B::E* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.outline.expect new file mode 100644 index 0000000..f7f66a7 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.outline.expect
@@ -0,0 +1,33 @@ +library test; +import self as self; +import "dart:core" as core; + +abstract class I<E extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::I<self::I::E*>* + ; + abstract method m(dynamic a, (dynamic, self::I::E*) →* core::String* f) → core::String*; +} +abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<self::A::E*> { + const constructor •() → self::A<self::A::E*>* + : super core::Object::•() + ; + abstract method m(dynamic a, (dynamic, self::A::E*) →* core::String* f) → core::String*; +} +abstract class M extends core::Object { + final field core::int* y; + synthetic constructor •() → self::M* + ; +} +class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M { + const constructor •() → self::B<self::B::E*>* + : super self::A::•() + ; + get y() → core::int* + ; + method m(dynamic a, (dynamic, self::B::E*) →* dynamic f) → core::String* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.outline.expect new file mode 100644 index 0000000..d10152ae --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.outline.expect
@@ -0,0 +1,46 @@ +library test; +import self as self; +import "dart:core" as core; +import "infer_types_on_generic_instantiations_in_library_cycle_a.dart" as inf; + +import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart"; + +abstract class A<E extends core::Object* = dynamic> extends core::Object implements inf::I<self::A::E*> { + final field self::A::E* value = null; + const constructor •() → self::A<self::A::E*>* + : super core::Object::•() + ; +} +abstract class M extends core::Object { + final field core::int* y; + synthetic constructor •() → self::M* + ; +} +class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M { + const constructor •() → self::B<self::B::E*>* + : super self::A::•() + ; + get y() → core::int* + ; + method m(dynamic a, (dynamic, core::int*) →* dynamic f) → self::A<self::B::E*>* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ; + +library; +import self as inf; +import "dart:core" as core; +import "infer_types_on_generic_instantiations_in_library_cycle.dart" as self; + +import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart"; + +abstract class I<E extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → inf::I<inf::I::E*>* + ; + abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → self::A<inf::I::E*>*; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.outline.expect new file mode 100644 index 0000000..4b3a052 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.outline.expect
@@ -0,0 +1,46 @@ +library; +import self as self; +import "dart:core" as core; +import "infer_types_on_generic_instantiations_in_library_cycle.dart" as test; + +import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart"; + +abstract class I<E extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::I<self::I::E*>* + ; + abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → test::A<self::I::E*>*; +} +static method main() → dynamic + ; + +library test; +import self as test; +import "dart:core" as core; +import "infer_types_on_generic_instantiations_in_library_cycle_a.dart" as self; + +import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart"; + +abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<test::A::E*> { + final field test::A::E* value = null; + const constructor •() → test::A<test::A::E*>* + : super core::Object::•() + ; +} +abstract class M extends core::Object { + final field core::int* y; + synthetic constructor •() → test::M* + ; +} +class B<E extends core::Object* = dynamic> extends test::A<test::B::E*> implements test::M { + const constructor •() → test::B<test::B::E*>* + : super test::A::•() + ; + get y() → core::int* + ; + method m(dynamic a, (dynamic, core::int*) →* dynamic f) → test::A<test::B::E*>* + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.outline.expect new file mode 100644 index 0000000..6186c9d --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.outline.expect
@@ -0,0 +1,30 @@ +library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart:13:49: Error: The return type of the method 'B.x' is 'dynamic', which does not match the return type, 'int', of the overridden method, 'A.x'. +// Change to a subtype of 'int'. +// /*error:INVALID_METHOD_OVERRIDE*/ dynamic get x => 3; +// ^ +// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart:9:11: Context: This is the overridden method ('x'). +// final T x = null; +// ^ +// +import self as self; +import "dart:core" as core; + +class A<T extends core::Object* = dynamic> extends core::Object { + final field self::A::T* x; + synthetic constructor •() → self::A<self::A::T*>* + ; +} +class B extends core::Object implements self::A<core::int*> { + synthetic constructor •() → self::B* + ; + get x() → dynamic + ; +} +static method foo() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.outline.expect new file mode 100644 index 0000000..2ecbacc --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.outline.expect
@@ -0,0 +1,25 @@ +library test; +import self as self; +import "dart:core" as core; + +class Foo extends core::Object { + field core::int* bar; + synthetic constructor •() → self::Foo* + ; +} +class Bar<T extends core::Iterable<core::String*>* = core::Iterable<core::String*>*> extends core::Object { + synthetic constructor •() → self::Bar<self::Bar::T*>* + ; + method foo(generic-covariant-impl self::Bar::T* t) → void + ; +} +class Baz<T extends core::Object* = dynamic, E extends core::Iterable<self::Baz::T*>* = core::Iterable<dynamic>*, S extends self::Baz::E* = core::Iterable<dynamic>*> extends core::Object { + synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>* + ; + method foo(generic-covariant-impl self::Baz::S* t) → void + ; +} +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.outline.expect index 15b2a4d..43bc546 100644 --- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.outline.expect +++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.outline.expect
@@ -10,13 +10,13 @@ synthetic constructor •() → self::Foo* ; } -class Bar<T extends asy::Stream<core::String*>* = dynamic> extends core::Object { +class Bar<T extends asy::Stream<core::String*>* = asy::Stream<core::String*>*> extends core::Object { synthetic constructor •() → self::Bar<self::Bar::T*>* ; method foo(generic-covariant-impl self::Bar::T* t) → dynamic ; } -class Baz<T extends core::Object* = dynamic, E extends asy::Stream<self::Baz::T*>* = dynamic, S extends self::Baz::E* = dynamic> extends core::Object { +class Baz<T extends core::Object* = dynamic, E extends asy::Stream<self::Baz::T*>* = asy::Stream<dynamic>*, S extends self::Baz::E* = asy::Stream<dynamic>*> extends core::Object { synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>* ; method foo(generic-covariant-impl self::Baz::S* t) → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.outline.expect new file mode 100644 index 0000000..8e85697 --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart.outline.expect b/pkg/front_end/testcases/inference/infer_variable_void.dart.outline.expect new file mode 100644 index 0000000..3c20c2d --- /dev/null +++ b/pkg/front_end/testcases/inference/infer_variable_void.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; + +static field void x; +static method f() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.outline.expect new file mode 100644 index 0000000..e484bfb --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class Foo extends core::Object { + field core::int* x; + constructor •([core::int* x]) → self::Foo* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.outline.expect new file mode 100644 index 0000000..10e00b4 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + static field core::String* x; + field core::Map<core::String*, core::Map<core::String*, core::String*>*>* y; + synthetic constructor •() → self::C* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.outline.expect new file mode 100644 index 0000000..546284f --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + field core::String* y; + synthetic constructor •() → self::C* + ; +} +static field core::String* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.outline.expect new file mode 100644 index 0000000..558a097 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field core::int* a; + field core::List<core::int*>* b; + synthetic constructor •() → self::A* + ; + method m() → void + ; +} +static field self::A* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.outline.expect new file mode 100644 index 0000000..023351f --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.outline.expect
@@ -0,0 +1,14 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + operator *(self::C* other) → core::bool* + ; +} +static field self::C* c; +static field core::bool* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.outline.expect new file mode 100644 index 0000000..e63cff7 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class I extends core::Object { + synthetic constructor •() → self::I* + ; + operator *(self::C* other) → core::bool* + ; +} +abstract class C extends core::Object implements self::I { + synthetic constructor •() → self::C* + ; +} +static field self::C* c; +static field core::bool* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.outline.expect new file mode 100644 index 0000000..0bc720e --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + operator [](core::int* index) → core::bool* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.outline.expect new file mode 100644 index 0000000..071abaa --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class I extends core::Object { + synthetic constructor •() → self::I* + ; + operator [](core::int* index) → core::bool* + ; +} +abstract class C extends core::Object implements self::I { + synthetic constructor •() → self::C* + ; +} +static method f() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.outline.expect new file mode 100644 index 0000000..4c4ec52 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.outline.expect
@@ -0,0 +1,14 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + operator unary-() → core::bool* + ; +} +static field self::C* c; +static field core::bool* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.outline.expect new file mode 100644 index 0000000..01d1040 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class I extends core::Object { + synthetic constructor •() → self::I* + ; + operator unary-() → core::bool* + ; +} +abstract class C extends core::Object implements self::I { + synthetic constructor •() → self::C* + ; +} +static field self::C* c; +static field core::bool* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.outline.expect new file mode 100644 index 0000000..7f7e2d3 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method g() → core::bool* + ; +} +static field () →* core::bool* x; +static method f() → self::C* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.outline.expect new file mode 100644 index 0000000..dd6d6c5 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.outline.expect
@@ -0,0 +1,19 @@ +library test; +import self as self; +import "dart:core" as core; + +class I extends core::Object { + synthetic constructor •() → self::I* + ; + method g() → core::bool* + ; +} +abstract class C extends core::Object implements self::I { + synthetic constructor •() → self::C* + ; +} +static field () →* core::bool* x; +static method f() → self::C* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.outline.expect new file mode 100644 index 0000000..093165a --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; +import "dart:core" as core; + +static field (core::Object*) →* void v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.outline.expect new file mode 100644 index 0000000..64a0c83 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method g() → core::bool* + ; +} +static field core::bool* x; +static method f() → self::C* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.outline.expect new file mode 100644 index 0000000..1dc5beb --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.outline.expect
@@ -0,0 +1,19 @@ +library test; +import self as self; +import "dart:core" as core; + +class I extends core::Object { + synthetic constructor •() → self::I* + ; + method g() → core::bool* + ; +} +abstract class C extends core::Object implements self::I { + synthetic constructor •() → self::C* + ; +} +static field core::bool* x; +static method f() → self::C* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.outline.expect new file mode 100644 index 0000000..f34fca1 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class E extends core::Object { + final field core::int* index; + final field core::String* _name; + static const field core::List<self::E*>* values = const <self::E*>[self::E::v1]; + static const field self::E* v1 = const self::E::•(0, "E.v1"); + const constructor •(core::int* index, core::String* _name) → self::E* + : self::E::index = index, self::E::_name = _name, super core::Object::•() + ; + method toString() → core::String* + return this.{=self::E::_name}; +} +static final field self::E* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.outline.expect new file mode 100644 index 0000000..c337f19 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class E extends core::Object { + final field core::int* index; + final field core::String* _name; + static const field core::List<self::E*>* values = const <self::E*>[self::E::v1]; + static const field self::E* v1 = const self::E::•(0, "E.v1"); + const constructor •(core::int* index, core::String* _name) → self::E* + : self::E::index = index, self::E::_name = _name, super core::Object::•() + ; + method toString() → core::String* + return this.{=self::E::_name}; +} +static final field core::List<self::E*>* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.outline.expect new file mode 100644 index 0000000..8c72258 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef F = () →* void; +static final field core::Map<core::String*, () →* void>* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.outline.expect new file mode 100644 index 0000000..41a8e7b --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef F<T extends core::Object* = dynamic> = () →* T*; +static final field core::Map<core::String*, () →* core::int*>* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.outline.expect new file mode 100644 index 0000000..022fc54 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<() →* core::Object*>* v; +static method f() → core::int* + ; +static method g() → core::String* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.outline.expect new file mode 100644 index 0000000..19ea551 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<((core::String*) →* core::int*) →* core::Object*>* v; +static method f((core::String*) →* core::int* x) → core::int* + ; +static method g((core::String*) →* core::int* x) → core::String* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.outline.expect new file mode 100644 index 0000000..13063fa5 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<({x: core::int*}) →* core::Object*>* v; +static method f({core::int* x}) → core::int* + ; +static method g({core::int* x}) → core::String* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.outline.expect new file mode 100644 index 0000000..bd37456 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<([core::int*]) →* core::Object*>* v; +static method f([core::int* x]) → core::int* + ; +static method g([core::int* x]) → core::String* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.outline.expect new file mode 100644 index 0000000..4de588f --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<(core::int*) →* core::Object*>* v; +static method f(core::int* x) → core::int* + ; +static method g(core::int* x) → core::String* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.outline.expect new file mode 100644 index 0000000..4673ba3 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + static final field (core::bool*) →* (core::int*) →* core::Map<core::int*, core::bool*>* f; + synthetic constructor •() → self::C* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.outline.expect new file mode 100644 index 0000000..a4ec082 --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + static final field (core::bool*) →* core::bool* f; + synthetic constructor •() → self::C* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.outline.expect new file mode 100644 index 0000000..40aeb8e --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + static final field (core::bool*) →* core::int* f; + synthetic constructor •() → self::C* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.outline.expect new file mode 100644 index 0000000..d303dfc --- /dev/null +++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; +import "dart:core" as core; + +static final field (core::bool*) →* core::int* f; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.outline.expect b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.outline.expect index 3a1211f..d0bd559 100644 --- a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.outline.expect +++ b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.outline.expect
@@ -3,7 +3,7 @@ import "dart:core" as core; class I1 extends core::Object { - final field dynamic x; + final field core::int* x; synthetic constructor •() → self::I1* ; } @@ -18,6 +18,6 @@ get x() → core::int* ; } -static field dynamic y; +static field core::int* y; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.outline.expect new file mode 100644 index 0000000..6aa475b --- /dev/null +++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class B<T extends self::A<core::int*>* = self::A<core::int*>*> extends core::Object { + synthetic constructor •() → self::B<self::B::T*>* + ; +} +class A<T extends core::int* = core::int*> extends core::Object { + synthetic constructor •() → self::A<self::A::T*>* + ; +} +static field self::B<self::A<core::int*>*>* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.outline.expect new file mode 100644 index 0000000..90698fa --- /dev/null +++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class A<T extends core::int* = core::int*> extends core::Object { + synthetic constructor •() → self::A<self::A::T*>* + ; +} +class B<T extends self::A<core::int*>* = self::A<core::int*>*> extends core::Object { + synthetic constructor •() → self::B<self::B::T*>* + ; +} +static field self::B<self::A<core::int*>*>* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.outline.expect new file mode 100644 index 0000000..0a2734e --- /dev/null +++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class A<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::A<self::A::T*>* + ; +} +class B<T extends self::A<dynamic>* = self::A<dynamic>*> extends core::Object { + synthetic constructor •() → self::B<self::B::T*>* + ; +} +static field self::B<self::A<dynamic>*>* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.outline.expect new file mode 100644 index 0000000..34b5179 --- /dev/null +++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class A<T extends core::int* = core::int*> extends core::Object { + synthetic constructor •() → self::A<self::A::T*>* + ; +} +static field self::A<core::int*>* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.outline.expect new file mode 100644 index 0000000..34b5179 --- /dev/null +++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class A<T extends core::int* = core::int*> extends core::Object { + synthetic constructor •() → self::A<self::A::T*>* + ; +} +static field self::A<core::int*>* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.outline.expect new file mode 100644 index 0000000..fc54b7b --- /dev/null +++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::C<self::C::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.outline.expect new file mode 100644 index 0000000..2d88b5d --- /dev/null +++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::num* = core::num*> extends core::Object { + synthetic constructor •() → self::C<self::C::T*>* + ; +} +static field self::C<core::int*>* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.outline.expect new file mode 100644 index 0000000..8f0c87e --- /dev/null +++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + synthetic constructor •() → self::A* + ; +} +class B<T extends self::A* = self::A*> extends core::Object { + synthetic constructor •() → self::B<self::B::T*>* + ; +} +static field self::B<self::A*>* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.outline.expect b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.outline.expect new file mode 100644 index 0000000..a021f96 --- /dev/null +++ b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +static method getListOfString() → core::List<core::String*>* + ; +static method foo() → void + ; +static method bar() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/list_literal_typed.dart.outline.expect b/pkg/front_end/testcases/inference/list_literal_typed.dart.outline.expect index ecd13b6..683fac8 100644 --- a/pkg/front_end/testcases/inference/list_literal_typed.dart.outline.expect +++ b/pkg/front_end/testcases/inference/list_literal_typed.dart.outline.expect
@@ -1,9 +1,10 @@ library test; import self as self; +import "dart:core" as core; -static field dynamic a; -static field dynamic b; -static field dynamic c; -static field dynamic d; +static field core::List<core::int*>* a; +static field core::List<core::double*>* b; +static field core::List<core::List<core::int*>*>* c; +static field core::List<dynamic>* d; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/list_literals.dart.outline.expect b/pkg/front_end/testcases/inference/list_literals.dart.outline.expect new file mode 100644 index 0000000..893540e --- /dev/null +++ b/pkg/front_end/testcases/inference/list_literals.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; + +static method test1() → dynamic + ; +static method test2() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.outline.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.outline.expect new file mode 100644 index 0000000..3619892 --- /dev/null +++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test1() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/list_literals_top_level.dart.outline.expect b/pkg/front_end/testcases/inference/list_literals_top_level.dart.outline.expect new file mode 100644 index 0000000..24cab9d --- /dev/null +++ b/pkg/front_end/testcases/inference/list_literals_top_level.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<core::int*>* x1; +static field core::List<core::num*>* x2; +static method test1() → dynamic + ; +static method test2() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/map_literals.dart.outline.expect b/pkg/front_end/testcases/inference/map_literals.dart.outline.expect new file mode 100644 index 0000000..893540e --- /dev/null +++ b/pkg/front_end/testcases/inference/map_literals.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; + +static method test1() → dynamic + ; +static method test2() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.outline.expect b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.outline.expect new file mode 100644 index 0000000..3619892 --- /dev/null +++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test1() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/map_literals_top_level.dart.outline.expect b/pkg/front_end/testcases/inference/map_literals_top_level.dart.outline.expect new file mode 100644 index 0000000..f63db32 --- /dev/null +++ b/pkg/front_end/testcases/inference/map_literals_top_level.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::Map<core::int*, core::String*>* x1; +static field core::Map<core::num*, core::Pattern*>* x2; +static method test1() → dynamic + ; +static method test2() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.outline.expect new file mode 100644 index 0000000..9bfb5d5 --- /dev/null +++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.outline.expect
@@ -0,0 +1,17 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>* + ; +} +class D<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::D<self::D::T*>* + ; +} +static field self::D<core::int*>* f; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.outline.expect new file mode 100644 index 0000000..26e19b2 --- /dev/null +++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.outline.expect
@@ -0,0 +1,18 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>* + ; +} +class D<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::D<self::D::T*>* + ; +} +static field self::C* c; +static field self::D<core::int*>* f; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.outline.expect new file mode 100644 index 0000000..ee571a5 --- /dev/null +++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.outline.expect
@@ -0,0 +1,17 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + static method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>* + ; +} +class D<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::D<self::D::T*>* + ; +} +static field self::D<core::int*>* f; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.outline.expect new file mode 100644 index 0000000..5edbaf7 --- /dev/null +++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class D<T extends core::Object* = dynamic> extends core::Object { + synthetic constructor •() → self::D<self::D::T*>* + ; +} +static field self::D<core::int*>* g; +static method f<T extends core::Object* = dynamic>() → self::D<self::f::T*>* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.outline.expect index a7ce02f..07c3f61 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.outline.expect
@@ -6,7 +6,7 @@ synthetic constructor •() → self::I<self::I::X*>* ; } -class M0<X extends core::Object* = dynamic, Y extends core::String* = dynamic> extends self::I<self::M0::X*> { +class M0<X extends core::Object* = dynamic, Y extends core::String* = core::String*> extends self::I<self::M0::X*> { synthetic constructor •() → self::M0<self::M0::X*, self::M0::Y*>* ; }
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.outline.expect index 6af70be..f952fac 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.outline.expect
@@ -1,4 +1,16 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart:13:7: Error: Type argument 'Comparable<dynamic>' doesn't conform to the bound 'Comparable<Y>' of the type variable 'Y' on 'M0' in the supertype 'M0' of class 'M1 with M0'. +// - 'Comparable' is from 'dart:core'. +// Try changing type arguments so that they conform to the bounds. +// class A extends M1 with M0 {} +// ^ +// pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart:7:13: Context: This is the type variable whose bound isn't conformed to. +// class M0<X, Y extends Comparable<Y>> extends I<X> {} +// ^ +// import self as self; import "dart:core" as core; @@ -6,7 +18,7 @@ synthetic constructor •() → self::I<self::I::X*>* ; } -class M0<X extends core::Object* = dynamic, Y extends core::Comparable<self::M0::Y>* = dynamic> extends self::I<self::M0::X*> { +class M0<X extends core::Object* = dynamic, Y extends core::Comparable<self::M0::Y>* = core::Comparable<dynamic>*> extends self::I<self::M0::X*> { synthetic constructor •() → self::M0<self::M0::X*, self::M0::Y*>* ; }
diff --git a/pkg/front_end/testcases/inference/no_error_when_declared_type_is_num_and_assigned_null.dart.outline.expect b/pkg/front_end/testcases/inference/no_error_when_declared_type_is_num_and_assigned_null.dart.outline.expect new file mode 100644 index 0000000..3619892 --- /dev/null +++ b/pkg/front_end/testcases/inference/no_error_when_declared_type_is_num_and_assigned_null.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; + +static method test1() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.outline.expect b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.outline.expect b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.outline.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.outline.expect new file mode 100644 index 0000000..672fbfb --- /dev/null +++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field dynamic h; +static method foo((core::Object*) →* core::int* f) → void + ; +static method test() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.outline.expect b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.outline.expect index 583e980..3c44d0cc 100644 --- a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.outline.expect +++ b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.outline.expect
@@ -3,13 +3,13 @@ import "dart:core" as core; class A<X extends core::Object* = dynamic> extends core::Object { - final field dynamic foo; + final field core::String* foo; synthetic constructor •() → self::A<self::A::X*>* ; } class B<Y extends core::Object* = dynamic> extends self::A<self::B::Y*> { - final field dynamic foo; - constructor •(dynamic foo) → self::B<self::B::Y*>* + final field core::String* foo; + constructor •(core::String* foo) → self::B<self::B::Y*>* ; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/promote_bounds.dart.outline.expect b/pkg/front_end/testcases/inference/promote_bounds.dart.outline.expect index 2efb122..6bd3591 100644 --- a/pkg/front_end/testcases/inference/promote_bounds.dart.outline.expect +++ b/pkg/front_end/testcases/inference/promote_bounds.dart.outline.expect
@@ -12,7 +12,7 @@ ; abstract method bar() → void; } -static method f<T extends self::B* = dynamic>(self::f::T* a) → void +static method f<T extends self::B* = self::B*>(self::f::T* a) → void ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.outline.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.outline.expect new file mode 100644 index 0000000..24a81b6 --- /dev/null +++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field core::int* x; + synthetic constructor •() → self::A* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.outline.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.outline.expect new file mode 100644 index 0000000..24a81b6 --- /dev/null +++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field core::int* x; + synthetic constructor •() → self::A* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.outline.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.outline.expect new file mode 100644 index 0000000..630505e --- /dev/null +++ b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field core::int* x; + synthetic constructor •() → self::A* + ; +} +static method test5() → dynamic + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.outline.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.outline.expect new file mode 100644 index 0000000..b31847d --- /dev/null +++ b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.outline.expect
@@ -0,0 +1,26 @@ +library test; +import self as self; +import "dart:core" as core; + +class A extends core::Object { + field core::int* x; + synthetic constructor •() → self::A* + ; +} +class B extends core::Object { + field self::A* a; + synthetic constructor •() → self::B* + ; +} +class C extends core::Object { + field self::B* b; + synthetic constructor •() → self::C* + ; +} +class D extends core::Object { + field self::C* c; + synthetic constructor •() → self::D* + ; +} +static method main() → void + ;
diff --git a/pkg/front_end/testcases/inference/property_get_toplevel.dart.outline.expect b/pkg/front_end/testcases/inference/property_get_toplevel.dart.outline.expect index 1ec74b1..b1da205 100644 --- a/pkg/front_end/testcases/inference/property_get_toplevel.dart.outline.expect +++ b/pkg/front_end/testcases/inference/property_get_toplevel.dart.outline.expect
@@ -12,7 +12,7 @@ ; } static field self::C* c; -static field dynamic function_ref; -static field dynamic function_ref_list; +static field () →* core::int* function_ref; +static field core::List<() →* core::int*>* function_ref_list; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/reference_to_typedef.dart.outline.expect b/pkg/front_end/testcases/inference/reference_to_typedef.dart.outline.expect new file mode 100644 index 0000000..a1ba81e --- /dev/null +++ b/pkg/front_end/testcases/inference/reference_to_typedef.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef F = () →* void; +static final field core::Type* x; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.outline.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.outline.expect new file mode 100644 index 0000000..4b7a850 --- /dev/null +++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::num* = core::num*> extends core::Object { + generic-covariant-impl field self::C::T* a; + synthetic constructor •() → self::C<self::C::T*>* + ; + method op(core::double* b) → void + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.outline.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.outline.expect new file mode 100644 index 0000000..c8572b5 --- /dev/null +++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::num* = core::num*> extends core::Object { + generic-covariant-impl field self::C::T* a; + synthetic constructor •() → self::C<self::C::T*>* + ; + method op(core::int* b) → void + ; + method opEq(core::int* b) → void + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.outline.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.outline.expect new file mode 100644 index 0000000..5050ee5 --- /dev/null +++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.outline.expect
@@ -0,0 +1,15 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::num* = core::num*> extends core::Object { + generic-covariant-impl field self::C::T* a; + synthetic constructor •() → self::C<self::C::T*>* + ; + method op(generic-covariant-impl self::C::T* b) → void + ; + method opEq(generic-covariant-impl self::C::T* b) → void + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/simple_literal_bool.dart.outline.expect b/pkg/front_end/testcases/inference/simple_literal_bool.dart.outline.expect index 7e1ab76..7cc78f5 100644 --- a/pkg/front_end/testcases/inference/simple_literal_bool.dart.outline.expect +++ b/pkg/front_end/testcases/inference/simple_literal_bool.dart.outline.expect
@@ -1,6 +1,7 @@ library test; import self as self; +import "dart:core" as core; -static field dynamic a; +static field core::bool* a; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/simple_literal_double.dart.outline.expect b/pkg/front_end/testcases/inference/simple_literal_double.dart.outline.expect index 7e1ab76..ce3f6d5 100644 --- a/pkg/front_end/testcases/inference/simple_literal_double.dart.outline.expect +++ b/pkg/front_end/testcases/inference/simple_literal_double.dart.outline.expect
@@ -1,6 +1,7 @@ library test; import self as self; +import "dart:core" as core; -static field dynamic a; +static field core::double* a; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/simple_literal_int.dart.outline.expect b/pkg/front_end/testcases/inference/simple_literal_int.dart.outline.expect index 7e1ab76..0596698 100644 --- a/pkg/front_end/testcases/inference/simple_literal_int.dart.outline.expect +++ b/pkg/front_end/testcases/inference/simple_literal_int.dart.outline.expect
@@ -1,6 +1,7 @@ library test; import self as self; +import "dart:core" as core; -static field dynamic a; +static field core::int* a; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/static_method_tear_off.dart.outline.expect b/pkg/front_end/testcases/inference/static_method_tear_off.dart.outline.expect new file mode 100644 index 0000000..74e9791 --- /dev/null +++ b/pkg/front_end/testcases/inference/static_method_tear_off.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + static method f(core::String* s) → core::int* + ; +} +static const field (core::String*) →* core::int* v = self::C::f; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/string_literal.dart.outline.expect b/pkg/front_end/testcases/inference/string_literal.dart.outline.expect index b10c845..506fd95 100644 --- a/pkg/front_end/testcases/inference/string_literal.dart.outline.expect +++ b/pkg/front_end/testcases/inference/string_literal.dart.outline.expect
@@ -1,9 +1,10 @@ library test; import self as self; +import "dart:core" as core; -static field dynamic x; -static field dynamic a; -static field dynamic b; -static field dynamic c; +static field core::int* x; +static field core::String* a; +static field core::String* b; +static field core::String* c; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/super_property_get.dart.outline.expect b/pkg/front_end/testcases/inference/super_property_get.dart.outline.expect index b8b9db0..2148ea4 100644 --- a/pkg/front_end/testcases/inference/super_property_get.dart.outline.expect +++ b/pkg/front_end/testcases/inference/super_property_get.dart.outline.expect
@@ -3,7 +3,7 @@ import "dart:core" as core; class C extends core::Object { - field dynamic x; + field core::int* x; synthetic constructor •() → self::C* ; }
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.outline.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.outline.expect index 4752269..50d69f8 100644 --- a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.outline.expect +++ b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.outline.expect
@@ -3,7 +3,7 @@ import "dart:core" as core; class C extends core::Object { - field dynamic f; + field () →* core::int* f; synthetic constructor •() → self::C* ; }
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.outline.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.outline.expect index ec6089a..93be11a 100644 --- a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.outline.expect +++ b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.outline.expect
@@ -9,7 +9,7 @@ ; } class C extends core::Object { - field dynamic f; + field self::CallableClass* f; synthetic constructor •() → self::C* ; }
diff --git a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.outline.expect b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.outline.expect index 3b44c95..e393ff8 100644 --- a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.outline.expect +++ b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.outline.expect
@@ -1,6 +1,7 @@ library test; import self as self; +import "dart:core" as core; -static field dynamic i; +static field core::int* i; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/type_cast.dart.outline.expect b/pkg/front_end/testcases/inference/type_cast.dart.outline.expect index 0cf1b92..32f2f1d 100644 --- a/pkg/front_end/testcases/inference/type_cast.dart.outline.expect +++ b/pkg/front_end/testcases/inference/type_cast.dart.outline.expect
@@ -13,6 +13,6 @@ ; } static field self::A<core::num*>* a; -static field dynamic b; +static field self::B<core::int*>* b; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.outline.expect new file mode 100644 index 0000000..bd31fbd --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + constructor •(() →* self::C::T* x) → self::C<self::C::T*>* + ; +} +static field self::C<dynamic>* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.outline.expect new file mode 100644 index 0000000..19474ef --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + constructor •(() →* self::C::T* x) → self::C<self::C::T*>* + ; +} +static field self::C<core::int*>* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.outline.expect new file mode 100644 index 0000000..be2806f --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.outline.expect
@@ -0,0 +1,10 @@ +library test; +import self as self; +import "dart:core" as core; + +class C<T extends core::Object* = dynamic> extends core::Object { + constructor •(() →* self::C::T* x) → self::C<self::C::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.outline.expect new file mode 100644 index 0000000..db56dbb --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + constructor •(() →* dynamic x) → self::C* + ; +} +static field self::C* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.outline.expect new file mode 100644 index 0000000..10eb51f --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<dynamic>* v; +static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.outline.expect new file mode 100644 index 0000000..10eb51f --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<dynamic>* v; +static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.outline.expect new file mode 100644 index 0000000..f0dd2fa --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<core::int*>* v; +static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.outline.expect new file mode 100644 index 0000000..f0dd2fa --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.outline.expect
@@ -0,0 +1,9 @@ +library test; +import self as self; +import "dart:core" as core; + +static field core::List<core::int*>* v; +static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>* + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.outline.expect new file mode 100644 index 0000000..c7133df --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +static method main() → dynamic + ; +static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>* + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.outline.expect new file mode 100644 index 0000000..c7133df --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +static method main() → dynamic + ; +static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>* + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.outline.expect new file mode 100644 index 0000000..8c0f7c6 --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +static method main() → dynamic + ; +static method f(dynamic x) → core::double* + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.outline.expect new file mode 100644 index 0000000..8c0f7c6 --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.outline.expect
@@ -0,0 +1,8 @@ +library test; +import self as self; +import "dart:core" as core; + +static method main() → dynamic + ; +static method f(dynamic x) → core::double* + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.outline.expect new file mode 100644 index 0000000..87c776d --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef F = () →* core::int*; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.outline.expect new file mode 100644 index 0000000..87c776d --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.outline.expect
@@ -0,0 +1,7 @@ +library test; +import self as self; +import "dart:core" as core; + +typedef F = () →* core::int*; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.outline.expect new file mode 100644 index 0000000..09dc88c --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.outline.expect
@@ -0,0 +1,5 @@ +library test; +import self as self; + +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.outline.expect new file mode 100644 index 0000000..a207fbd --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.outline.expect new file mode 100644 index 0000000..a207fbd --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.outline.expect new file mode 100644 index 0000000..a207fbd --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.outline.expect
@@ -0,0 +1,12 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>* + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.outline.expect new file mode 100644 index 0000000..2579e0a --- /dev/null +++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.outline.expect
@@ -0,0 +1,13 @@ +library test; +import self as self; +import "dart:core" as core; + +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method f(dynamic x) → core::double* + ; +} +static field core::double* v; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.outline.expect b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.outline.expect new file mode 100644 index 0000000..24086b1 --- /dev/null +++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.outline.expect
@@ -0,0 +1,11 @@ +library test; +import self as self; +import "dart:core" as core; + +static field dynamic x; +static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T* + ; +static method printRunning() → void + ; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.outline.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.outline.expect index a833221..7ba11cd 100644 --- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.outline.expect
@@ -1,4 +1,12 @@ library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:18:5: Error: Can't infer the type of 'b': circularity found during type inference. +// Specify the type explicitly. +// var b = /*@ returnType=() ->* invalid-type */ () => +// ^ +// import self as self; import "dart:core" as core; @@ -10,10 +18,10 @@ method g(dynamic i) → core::int* ; } -static field dynamic a; -static field dynamic b; -static field dynamic c; -static field dynamic d; -static field dynamic e; +static field self::A* a; +static field invalid-type b; +static field () →* invalid-type c; +static field () →* () →* core::int* d; +static field () →* core::int* e; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.outline.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.outline.expect index 078aa97..c44763e 100644 --- a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.outline.expect
@@ -1,15 +1,23 @@ library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:15:5: Error: Can't infer the type of 'a': circularity found during type inference. +// Specify the type explicitly. +// var a = /*@ returnType=num* */ () => intValue /*@target=num::+*/ + b; +// ^ +// import self as self; import "dart:core" as core; static field core::int* intValue; static field core::num* numValue; static field core::double* doubleValue; -static field dynamic a; +static field invalid-type a; static field dynamic b; -static field dynamic c; -static field dynamic d; -static field dynamic e; -static field dynamic f; +static field () →* core::num* c; +static field core::num* d; +static field () →* core::double* e; +static field core::double* f; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.outline.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.outline.expect index 7322015..f42e8b5 100644 --- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.outline.expect
@@ -11,6 +11,6 @@ constructor •(self::B::T* x) → self::B<self::B::T*>* ; } -static field dynamic t3; +static field core::List<self::B<core::int*>*>* t3; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.outline.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.outline.expect index 7ce484e..382933c 100644 --- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.outline.expect
@@ -6,6 +6,6 @@ constructor •(self::A::T* x) → self::A<self::A::T*>* ; } -static field dynamic t2; +static field core::List<self::A<core::int*>*>* t2; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.outline.expect b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.outline.expect index 93bd955..c95d0de 100644 --- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.outline.expect
@@ -1,16 +1,24 @@ library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference_new/field_inference_circularity.dart:12:7: Error: Can't infer the type of 'x': circularity found during type inference. +// Specify the type explicitly. +// var x = /*@returnType=invalid-type*/ () => new B(). /*@target=B::x*/ x; +// ^ +// import self as self; import "dart:core" as core; class A extends core::Object { - field dynamic x; - field dynamic y; + field invalid-type x; + field () →* invalid-type y; synthetic constructor •() → self::A* ; } class B extends self::A { - field dynamic x; - field dynamic y; + field invalid-type x; + field () →* invalid-type y; synthetic constructor •() → self::B* ; }
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.outline.expect index 4f84fb6..b3128a3 100644 --- a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.outline.expect
@@ -3,6 +3,6 @@ import "dart:core" as core; static field core::List<core::double*>* a; -static field dynamic b; +static field core::double* b; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.outline.expect index 30d498e..e5e9410 100644 --- a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.outline.expect
@@ -7,13 +7,13 @@ synthetic constructor •() → self::A* ; } -static field dynamic v_assign; -static field dynamic v_plus; -static field dynamic v_minus; -static field dynamic v_multiply; -static field dynamic v_prefix_pp; -static field dynamic v_prefix_mm; -static field dynamic v_postfix_pp; -static field dynamic v_postfix_mm; +static field core::int* v_assign; +static field core::int* v_plus; +static field core::int* v_minus; +static field core::int* v_multiply; +static field core::int* v_prefix_pp; +static field core::int* v_prefix_mm; +static field core::int* v_postfix_pp; +static field core::int* v_postfix_mm; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.outline.expect index abd1782..f0cfbcc 100644 --- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.outline.expect
@@ -15,9 +15,9 @@ synthetic constructor •() → self::B* ; } -static field dynamic v_prefix_pp; -static field dynamic v_prefix_mm; -static field dynamic v_postfix_pp; -static field dynamic v_postfix_mm; +static field core::int* v_prefix_pp; +static field core::double* v_prefix_mm; +static field self::A* v_postfix_pp; +static field self::A* v_postfix_mm; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.outline.expect index 1e6470c..454ab6d 100644 --- a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.outline.expect
@@ -8,8 +8,8 @@ ; } static field self::A* a; -static field dynamic b; -static field dynamic c; -static field dynamic d; +static field core::int* b; +static field core::int* c; +static field core::int* d; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.outline.expect index fe43c76..a468053 100644 --- a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.outline.expect
@@ -23,8 +23,8 @@ synthetic constructor •() → self::D* ; } -static field dynamic a; -static field dynamic x; -static field dynamic y; +static field self::A* a; +static field self::C* x; +static field self::C* y; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.outline.expect index f51db36..8c060c2 100644 --- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.outline.expect
@@ -20,8 +20,8 @@ synthetic constructor •() → self::D* ; } -static field dynamic a; -static field dynamic x; -static field dynamic y; +static field self::A* a; +static field self::C* x; +static field self::C* y; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.outline.expect index aae5d7d..fee3471 100644 --- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.outline.expect
@@ -1,15 +1,23 @@ library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart:11:7: Error: Can't infer the type of 'b': circularity found during type inference. +// Specify the type explicitly. +// var b = /*@ returnType=() ->* invalid-type */ () => x; +// ^ +// import self as self; import "dart:core" as core; class A extends core::Object { - field dynamic b; - field dynamic c; + field invalid-type b; + field () →* () →* invalid-type c; synthetic constructor •() → self::A* ; } -static field dynamic a; -static field dynamic x; -static field dynamic y; +static field self::A* a; +static field () →* invalid-type x; +static field () →* () →* () →* invalid-type y; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/infer_logical.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_logical.dart.outline.expect index 2f9d5ce..13732dc 100644 --- a/pkg/front_end/testcases/inference_new/infer_logical.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/infer_logical.dart.outline.expect
@@ -2,8 +2,8 @@ import self as self; import "dart:core" as core; -static field dynamic x; -static field dynamic y; +static field core::bool* x; +static field core::bool* y; static method f<T extends core::Object* = dynamic>() → self::f::T* ; static method test() → void
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.outline.expect index 093da51..2013872 100644 --- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.outline.expect
@@ -14,6 +14,6 @@ method f() → void ; } -static field dynamic x; +static field void x; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.outline.expect b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.outline.expect index 2c1f8c3..51cd968 100644 --- a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.outline.expect
@@ -4,6 +4,6 @@ static field core::int* i; static field core::String* s; -static field dynamic x; +static field core::String* x; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.outline.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.outline.expect index cbf3089..efecb76 100644 --- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.outline.expect
@@ -1,6 +1,7 @@ library test; import self as self; +import "dart:core" as core; -static field dynamic x; +static field core::List<core::Null*>* x; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.outline.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.outline.expect index cbf3089..0f28e73 100644 --- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.outline.expect
@@ -1,6 +1,7 @@ library test; import self as self; +import "dart:core" as core; -static field dynamic x; +static field core::Map<core::Null*, core::Null*>* x; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.outline.expect b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.outline.expect index c49eaef..ea79db2 100644 --- a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.outline.expect
@@ -12,11 +12,11 @@ ; } static field self::C* c; -static field dynamic field_ref; -static field dynamic getter_ref; -static field dynamic function_ref; -static field dynamic field_ref_list; -static field dynamic getter_ref_list; -static field dynamic function_ref_list; +static field core::int* field_ref; +static field core::int* getter_ref; +static field () →* core::int* function_ref; +static field core::List<core::int*>* field_ref_list; +static field core::List<core::int*>* getter_ref_list; +static field core::List<() →* core::int*>* function_ref_list; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.outline.expect b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.outline.expect index 34725d5..e14b203 100644 --- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.outline.expect
@@ -1,10 +1,18 @@ library test; +// +// Problems in library: +// +// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:17:5: Error: Can't infer the type of 'x': circularity found during type inference. +// Specify the type explicitly. +// var x = /*@ returnType=() ->* invalid-type */ () => f() ? y : z; +// ^ +// import self as self; import "dart:core" as core; -static field dynamic x; -static field dynamic y; -static field dynamic z; +static field invalid-type x; +static field () →* invalid-type y; +static field () →* invalid-type z; static method f() → core::bool* ; static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.outline.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.outline.expect index 3e04860..d517114 100644 --- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.outline.expect
@@ -40,7 +40,7 @@ method foo() → self::C* ; } -static field dynamic x; +static field self::B* x; static method bar() → self::G* ; static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.outline.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.outline.expect index 81dff1f..f0dd2fa 100644 --- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -static field dynamic v; +static field core::List<core::int*>* v; static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>* ; static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.outline.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.outline.expect index 81dff1f..f0dd2fa 100644 --- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -static field dynamic v; +static field core::List<core::int*>* v; static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>* ; static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.outline.expect b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.outline.expect index abbb66b..46dad28 100644 --- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.outline.expect +++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -static field dynamic y; +static field void y; static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T* ; static method printRunning() → void
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.outline.expect index 773a50f..b3d2329 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.outline.expect
@@ -10,7 +10,7 @@ synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -class D<X extends self::B<self::D::X, self::D::Y>* = dynamic, Y extends self::C<self::D::X*, self::D::Y>* = dynamic, Z extends (self::D::Y*) →* self::D::X* = dynamic, W extends core::num* = dynamic> extends core::Object { +class D<X extends self::B<self::D::X, self::D::Y>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (core::Null*) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.outline.expect index 1c9866f..ddec6fc 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -class A<T extends core::num* = dynamic> extends core::Object { +class A<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.outline.expect index 1c9866f..ddec6fc 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -class A<T extends core::num* = dynamic> extends core::Object { +class A<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.outline.expect index a44d4e1..b719a1c 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -class A<T extends self::A<self::A::T>* = dynamic> extends core::Object { +class A<T extends self::A<self::A::T>* = self::A<dynamic>*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.outline.expect index 44ba958..3d491c7 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -typedef A<T extends core::num* = dynamic> = (T*) →* dynamic; +typedef A<T extends core::num* = core::num*> = (T*) →* dynamic; class B extends core::Object { synthetic constructor •() → self::B* ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.outline.expect index 44ba958..3d491c7 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -typedef A<T extends core::num* = dynamic> = (T*) →* dynamic; +typedef A<T extends core::num* = core::num*> = (T*) →* dynamic; class B extends core::Object { synthetic constructor •() → self::B* ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.outline.expect new file mode 100644 index 0000000..9038ebd --- /dev/null +++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.outline.expect
@@ -0,0 +1,14 @@ +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; +class C extends core::Object { + synthetic constructor •() → self::C* + ; + method foo() → dynamic + ; +} +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.outline.expect index 5a9d18f..941b9b6 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.outline.expect
@@ -2,10 +2,10 @@ import self as self; import "dart:core" as core; -class C<X extends core::num* = dynamic, Y extends (self::C::X*) →* void = dynamic> extends core::Object { +class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (core::Null*) →* void> extends core::Object { synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -static field self::C<dynamic, dynamic>* c; +static field self::C<core::num*, (core::Null*) →* void>* c; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.outline.expect index 38c128d..28f1f4b 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.outline.expect
@@ -2,11 +2,11 @@ import self as self; import "dart:core" as core; -class C<X extends core::num* = dynamic, Y extends (self::C::X*) →* void = dynamic> extends core::Object { +class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (core::Null*) →* void> extends core::Object { synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -static field dynamic lc; -static field dynamic mc; +static field core::List<self::C<core::num*, (core::Null*) →* void>*>* lc; +static field core::Map<self::C<core::num*, (core::Null*) →* void>*, self::C<core::num*, (core::Null*) →* void>*>* mc; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.outline.expect index 42b3335..543c453 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.outline.expect
@@ -2,15 +2,15 @@ import self as self; import "dart:core" as core; -class D<X extends (self::D::X, self::D::Y) →* void = dynamic, Y extends (self::D::X*, self::D::Y) →* void = dynamic> extends core::Object { +class D<X extends (self::D::X, self::D::Y) →* void = (core::Null*, core::Null*) →* void, Y extends (self::D::X*, self::D::Y) →* void = (core::Null*, core::Null*) →* void> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*>* ; } -class E<X extends (self::E::X) →* void = dynamic> extends core::Object { +class E<X extends (self::E::X) →* void = (core::Null*) →* void> extends core::Object { synthetic constructor •() → self::E<self::E::X*>* ; } -static field self::D<dynamic, dynamic>* d; -static field self::E<dynamic>* e; +static field self::D<(core::Null*, core::Null*) →* void, (core::Null*, core::Null*) →* void>* d; +static field self::E<(core::Null*) →* void>* e; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.outline.expect index b75263b..bcf89d2 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.outline.expect
@@ -2,17 +2,17 @@ import self as self; import "dart:core" as core; -class D<X extends (self::D::X, self::D::Y) →* void = dynamic, Y extends (self::D::X*, self::D::Y) →* void = dynamic> extends core::Object { +class D<X extends (self::D::X, self::D::Y) →* void = (core::Null*, core::Null*) →* void, Y extends (self::D::X*, self::D::Y) →* void = (core::Null*, core::Null*) →* void> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*>* ; } -class E<X extends (self::E::X) →* void = dynamic> extends core::Object { +class E<X extends (self::E::X) →* void = (core::Null*) →* void> extends core::Object { synthetic constructor •() → self::E<self::E::X*>* ; } -static field dynamic ld; -static field dynamic md; -static field dynamic le; -static field dynamic me; +static field core::List<self::D<(core::Null*, core::Null*) →* void, (core::Null*, core::Null*) →* void>*>* ld; +static field core::Map<self::D<(core::Null*, core::Null*) →* void, (core::Null*, core::Null*) →* void>*, self::D<(core::Null*, core::Null*) →* void, (core::Null*, core::Null*) →* void>*>* md; +static field core::List<self::E<(core::Null*) →* void>*>* le; +static field core::Map<self::E<(core::Null*) →* void>*, self::E<(core::Null*) →* void>*>* me; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.outline.expect index 06bc06a..e6c39b1 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.outline.expect
@@ -6,25 +6,25 @@ synthetic constructor •() → self::A<self::A::X*>* ; } -class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = dynamic> extends core::Object { +class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object { synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -class D<X extends core::num* = dynamic, Y extends self::A<self::D::X*>* = dynamic> extends core::Object { +class D<X extends core::num* = core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*>* ; } -class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = dynamic> extends core::Object { +class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object { synthetic constructor •() → self::E<self::E::X*, self::E::Y*>* ; } -class F<X extends core::num* = dynamic, Y extends () →* self::F::X* = dynamic> extends core::Object { +class F<X extends core::num* = core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object { synthetic constructor •() → self::F<self::F::X*, self::F::Y*>* ; } -static field self::C<dynamic, dynamic>* c; -static field self::D<dynamic, dynamic>* d; -static field self::E<dynamic, dynamic>* e; -static field self::F<dynamic, dynamic>* f; +static field self::C<dynamic, self::A<dynamic>*>* c; +static field self::D<core::num*, self::A<core::num*>*>* d; +static field self::E<dynamic, () →* dynamic>* e; +static field self::F<core::num*, () →* core::num*>* f; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.outline.expect index 32d8cdb..3bf392c8 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.outline.expect
@@ -6,29 +6,29 @@ synthetic constructor •() → self::A<self::A::X*>* ; } -class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = dynamic> extends core::Object { +class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object { synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -class D<X extends core::num* = dynamic, Y extends self::A<self::D::X*>* = dynamic> extends core::Object { +class D<X extends core::num* = core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*>* ; } -class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = dynamic> extends core::Object { +class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object { synthetic constructor •() → self::E<self::E::X*, self::E::Y*>* ; } -class F<X extends core::num* = dynamic, Y extends () →* self::F::X* = dynamic> extends core::Object { +class F<X extends core::num* = core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object { synthetic constructor •() → self::F<self::F::X*, self::F::Y*>* ; } -static field dynamic lc; -static field dynamic mc; -static field dynamic ld; -static field dynamic md; -static field dynamic le; -static field dynamic me; -static field dynamic lf; -static field dynamic mf; +static field core::List<self::C<dynamic, self::A<dynamic>*>*>* lc; +static field core::Map<self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>* mc; +static field core::List<self::D<core::num*, self::A<core::num*>*>*>* ld; +static field core::Map<self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>* md; +static field core::List<self::E<dynamic, () →* dynamic>*>* le; +static field core::Map<self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>* me; +static field core::List<self::F<core::num*, () →* core::num*>*>* lf; +static field core::Map<self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>* mf; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.outline.expect index 2c04aba..ab32947 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.outline.expect
@@ -10,20 +10,20 @@ synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -class D<X extends self::B<self::D::X, self::D::Y>* = dynamic, Y extends self::C<self::D::X*, self::D::Y>* = dynamic> extends core::Object { +class D<X extends self::B<self::D::X, self::D::Y>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y>* = self::C<dynamic, dynamic>*> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*>* ; } -class E<X extends self::B<self::E::X, self::E::Y>* = dynamic, Y extends () →* self::E::X* = dynamic> extends core::Object { +class E<X extends self::B<self::E::X, self::E::Y>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object { synthetic constructor •() → self::E<self::E::X*, self::E::Y*>* ; } -class F<X extends () →* self::F::X = dynamic> extends core::Object { +class F<X extends () →* self::F::X = () →* dynamic> extends core::Object { synthetic constructor •() → self::F<self::F::X*>* ; } -static field self::D<dynamic, dynamic>* d; -static field self::E<dynamic, dynamic>* e; -static field self::F<dynamic>* f; +static field self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* d; +static field self::E<self::B<dynamic, dynamic>*, () →* dynamic>* e; +static field self::F<() →* dynamic>* f; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.outline.expect index 6cfd9f5..e9f5ac1 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.outline.expect
@@ -10,23 +10,23 @@ synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -class D<X extends self::B<self::D::X, self::D::Y>* = dynamic, Y extends self::C<self::D::X*, self::D::Y>* = dynamic> extends core::Object { +class D<X extends self::B<self::D::X, self::D::Y>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y>* = self::C<dynamic, dynamic>*> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*>* ; } -class E<X extends self::B<self::E::X, self::E::Y>* = dynamic, Y extends () →* self::E::X* = dynamic> extends core::Object { +class E<X extends self::B<self::E::X, self::E::Y>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object { synthetic constructor •() → self::E<self::E::X*, self::E::Y*>* ; } -class F<X extends () →* self::F::X = dynamic> extends core::Object { +class F<X extends () →* self::F::X = () →* dynamic> extends core::Object { synthetic constructor •() → self::F<self::F::X*>* ; } -static field dynamic ld; -static field dynamic md; -static field dynamic le; -static field dynamic me; -static field dynamic lf; -static field dynamic mf; +static field core::List<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* ld; +static field core::Map<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* md; +static field core::List<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* le; +static field core::Map<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* me; +static field core::List<self::F<() →* dynamic>*>* lf; +static field core::Map<self::F<() →* dynamic>*, self::F<() →* dynamic>*>* mf; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.outline.expect index 1a94d9d..e767b17 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.outline.expect
@@ -6,15 +6,15 @@ synthetic constructor •() → self::A<self::A::X*>* ; } -class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = dynamic> extends core::Object { +class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -class D<X extends core::num* = dynamic, Y extends (self::D::X*) →* self::D::X* = dynamic> extends core::Object { +class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (core::Null*) →* core::num*> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*>* ; } -static field self::C<dynamic, dynamic>* c; -static field self::D<dynamic, dynamic>* d; +static field self::C<dynamic, (core::Null*) →* dynamic>* c; +static field self::D<core::num*, (core::Null*) →* core::num*>* d; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.outline.expect index e27f41f..04e5fdf 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.outline.expect
@@ -6,17 +6,17 @@ synthetic constructor •() → self::A<self::A::X*>* ; } -class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = dynamic> extends core::Object { +class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -class D<X extends core::num* = dynamic, Y extends (self::D::X*) →* self::D::X* = dynamic> extends core::Object { +class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (core::Null*) →* core::num*> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*>* ; } -static field dynamic lc; -static field dynamic mc; -static field dynamic ld; -static field dynamic md; +static field core::List<self::C<dynamic, (core::Null*) →* dynamic>*>* lc; +static field core::Map<self::C<dynamic, (core::Null*) →* dynamic>*, self::C<dynamic, (core::Null*) →* dynamic>*>* mc; +static field core::List<self::D<core::num*, (core::Null*) →* core::num*>*>* ld; +static field core::Map<self::D<core::num*, (core::Null*) →* core::num*>*, self::D<core::num*, (core::Null*) →* core::num*>*>* md; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.outline.expect index a014cc8..053b62f 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.outline.expect
@@ -4,6 +4,6 @@ import "dart:collection"; -static field col::LinkedListEntry<dynamic>* y; +static field col::LinkedListEntry<col::LinkedListEntry<dynamic>*>* y; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.outline.expect index b01dcf6..86fbb12 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -class A<T extends core::num* = dynamic> extends core::Object { +class A<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.outline.expect index b01dcf6..86fbb12 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -class A<T extends core::num* = dynamic> extends core::Object { +class A<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.outline.expect index 8db9fc1..1a8907a 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.outline.expect
@@ -6,7 +6,7 @@ synthetic constructor •() → self::A<self::A::T*>* ; } -class B<T extends core::num* = dynamic, S extends core::List<self::B::T*>* = dynamic> extends self::A<self::B::T*> { +class B<T extends core::num* = core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> { constructor •([self::B::T* x]) → self::B<self::B::T*, self::B::S*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.outline.expect index dafb049..4b449c4 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.outline.expect
@@ -2,10 +2,10 @@ import self as self; import "dart:core" as core; -class B<T extends core::Comparable<self::B::T>* = dynamic> extends core::Object { +class B<T extends core::Comparable<self::B::T>* = core::Comparable<dynamic>*> extends core::Object { synthetic constructor •() → self::B<self::B::T*>* ; } -static field dynamic y; +static field self::B<core::Comparable<dynamic>*>* y; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.outline.expect index 4db0df2..7bd7cea 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.outline.expect
@@ -2,16 +2,16 @@ import self as self; import "dart:core" as core; -class A<T extends core::num* = dynamic> extends core::Object { +class A<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; } class B extends core::Object { synthetic constructor •() → self::B* ; - method foo(self::A<dynamic>* a) → dynamic + method foo(self::A<core::num*>* a) → dynamic ; - method bar() → self::A<dynamic>* + method bar() → self::A<core::num*>* ; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.outline.expect index c7fd878..048cb6e 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.outline.expect
@@ -2,10 +2,10 @@ import self as self; import "dart:core" as core; -class A<T extends core::num* = dynamic> extends core::Object { +class A<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; } -static field dynamic a; +static field core::List<self::A<core::num*>*>* a; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.outline.expect index c7fd878..1fef771 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.outline.expect
@@ -2,10 +2,10 @@ import self as self; import "dart:core" as core; -class A<T extends core::num* = dynamic> extends core::Object { +class A<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; } -static field dynamic a; +static field core::Map<self::A<core::num*>*, self::A<core::num*>*>* a; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.outline.expect index 81409aa..556a2ee 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.outline.expect
@@ -37,40 +37,40 @@ synthetic constructor •() → self::C<self::C::X*, self::C::Y*>* ; } -class D<X extends self::A<self::D::X>* = dynamic, Y extends self::A<self::D::Y>* = dynamic> extends core::Object { +class D<X extends self::A<self::D::X>* = self::A<dynamic>*, Y extends self::A<self::D::Y>* = self::A<dynamic>*> extends core::Object { synthetic constructor •() → self::D<self::D::X*, self::D::Y*>* ; } -class E<W extends self::B<self::E::W, self::E::X>* = dynamic, X extends self::C<self::E::W*, self::E::X>* = dynamic, Y extends self::B<self::E::Y, self::E::Z>* = dynamic, Z extends self::C<self::E::Y*, self::E::Z>* = dynamic> extends core::Object { +class E<W extends self::B<self::E::W, self::E::X>* = self::B<dynamic, dynamic>*, X extends self::C<self::E::W*, self::E::X>* = self::C<dynamic, dynamic>*, Y extends self::B<self::E::Y, self::E::Z>* = self::B<dynamic, dynamic>*, Z extends self::C<self::E::Y*, self::E::Z>* = self::C<dynamic, dynamic>*> extends core::Object { synthetic constructor •() → self::E<self::E::W*, self::E::X*, self::E::Y*, self::E::Z*>* ; } -class F<V extends core::num* = dynamic, W extends self::B<self::F::W, self::F::X>* = dynamic, X extends self::C<self::F::W*, self::F::X>* = dynamic, Y extends self::B<self::F::W*, self::F::X*>* = dynamic, Z extends self::C<self::F::Y*, self::F::Z>* = dynamic> extends core::Object { +class F<V extends core::num* = core::num*, W extends self::B<self::F::W, self::F::X>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object { synthetic constructor •() → self::F<self::F::V*, self::F::W*, self::F::X*, self::F::Y*, self::F::Z*>* ; } -class G<V extends core::num* = dynamic, W extends self::B<self::G::V*, self::G::X>* = dynamic, X extends self::C<self::G::W*, self::G::V*>* = dynamic, Y extends self::B<self::G::W*, self::G::X*>* = dynamic, Z extends self::C<self::G::Y*, self::G::Z>* = dynamic> extends core::Object { +class G<V extends core::num* = core::num*, W extends self::B<self::G::V*, self::G::X>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object { synthetic constructor •() → self::G<self::G::V*, self::G::W*, self::G::X*, self::G::Y*, self::G::Z*>* ; } -class H<S extends self::A<self::H::S>* = dynamic, T extends self::B<self::H::T, self::H::U>* = dynamic, U extends self::C<self::H::T*, self::H::U>* = dynamic, V extends self::A<self::H::V>* = dynamic, W extends self::H::S* = dynamic, X extends self::H::T* = dynamic, Y extends self::H::U* = dynamic, Z extends self::H::V* = dynamic> extends core::Object { +class H<S extends self::A<self::H::S>* = self::A<dynamic>*, T extends self::B<self::H::T, self::H::U>* = self::B<dynamic, dynamic>*, U extends self::C<self::H::T*, self::H::U>* = self::C<dynamic, dynamic>*, V extends self::A<self::H::V>* = self::A<dynamic>*, W extends self::H::S* = self::A<dynamic>*, X extends self::H::T* = self::B<dynamic, dynamic>*, Y extends self::H::U* = self::C<dynamic, dynamic>*, Z extends self::H::V* = self::A<dynamic>*> extends core::Object { synthetic constructor •() → self::H<self::H::S*, self::H::T*, self::H::U*, self::H::V*, self::H::W*, self::H::X*, self::H::Y*, self::H::Z*>* ; } -class I<T extends self::I::U = dynamic, U extends self::I::Y = dynamic, V extends (self::I::W) →* dynamic = dynamic, W extends (self::I::X) →* dynamic = dynamic, X extends (self::I::V*) →* dynamic = dynamic, Y extends self::I::Z = dynamic, Z extends self::I::T = dynamic> extends core::Object { +class I<T extends self::I::U = dynamic, U extends self::I::Y = dynamic, V extends (self::I::W) →* dynamic = (core::Null*) →* dynamic, W extends (self::I::X) →* dynamic = (core::Null*) →* dynamic, X extends (self::I::V*) →* dynamic = (core::Null*) →* dynamic, Y extends self::I::Z = dynamic, Z extends self::I::T = dynamic> extends core::Object { synthetic constructor •() → self::I<self::I::T, self::I::U, self::I::V*, self::I::W*, self::I::X*, self::I::Y, self::I::Z>* ; } -class J<S extends (self::J::U) →* self::J::T = dynamic, T extends (self::J::S*) →* self::J::U = dynamic, U extends (self::J::T*) →* self::J::S* = dynamic, V extends self::J::W = dynamic, W extends self::J::X = dynamic, X extends (self::J::V) →* self::J::Y = dynamic, Y extends self::J::Z = dynamic, Z extends self::J::X* = dynamic> extends core::Object { +class J<S extends (self::J::U) →* self::J::T = (core::Null*) →* dynamic, T extends (self::J::S*) →* self::J::U = (core::Null*) →* dynamic, U extends (self::J::T*) →* self::J::S* = (core::Null*) →* dynamic, V extends self::J::W = dynamic, W extends self::J::X = dynamic, X extends (self::J::V) →* self::J::Y = (core::Null*) →* dynamic, Y extends self::J::Z = dynamic, Z extends self::J::X* = dynamic> extends core::Object { synthetic constructor •() → self::J<self::J::S*, self::J::T*, self::J::U*, self::J::V, self::J::W, self::J::X*, self::J::Y, self::J::Z*>* ; } -static field self::D<dynamic, dynamic>* d; -static field self::E<dynamic, dynamic, dynamic, dynamic>* e; -static field self::F<dynamic, dynamic, dynamic, dynamic, dynamic>* f; -static field self::G<dynamic, dynamic, dynamic, dynamic, dynamic>* g; -static field self::H<dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic>* h; -static field self::I<dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic>* i; -static field self::J<dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic, dynamic>* j; +static field self::D<self::A<dynamic>*, self::A<dynamic>*>* d; +static field self::E<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* e; +static field self::F<core::num*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*>* f; +static field self::G<core::num*, self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*, self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*>* g; +static field self::H<self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*, self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*>* h; +static field self::I<dynamic, dynamic, (core::Null*) →* dynamic, (core::Null*) →* dynamic, (core::Null*) →* dynamic, dynamic, dynamic>* i; +static field self::J<(core::Null*) →* dynamic, (core::Null*) →* dynamic, (core::Null*) →* dynamic, dynamic, dynamic, (core::Null*) →* dynamic, dynamic, dynamic>* j; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.outline.expect index 8c2fc53..78b6d1c 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.outline.expect
@@ -6,50 +6,50 @@ synthetic constructor •() → self::B<self::B::X*, self::B::Y*>* ; } -class C1<X extends (self::C1::Y) →* self::C1::X = dynamic, Y extends (self::C1::Y) →* self::C1::X* = dynamic> extends core::Object { +class C1<X extends (self::C1::Y) →* self::C1::X = (core::Null*) →* dynamic, Y extends (self::C1::Y) →* self::C1::X* = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>* ; } -class C2<X extends (self::C2::Y) →* self::C2::X = dynamic, Y extends (self::C2::X*) →* self::C2::Y = dynamic> extends core::Object { +class C2<X extends (self::C2::Y) →* self::C2::X = (core::Null*) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>* ; } -class C3<X extends (self::C3::X, self::C3::Y) →* self::C3::X = dynamic, Y extends (self::C3::X*, self::C3::Y) →* self::C3::X* = dynamic> extends core::Object { +class C3<X extends (self::C3::X, self::C3::Y) →* self::C3::X = (core::Null*, core::Null*) →* dynamic, Y extends (self::C3::X*, self::C3::Y) →* self::C3::X* = (core::Null*, core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>* ; } -class C4<X extends (self::C4::X, self::C4::Y) →* self::C4::X = dynamic, Y extends (self::C4::X*, self::C4::Y) →* self::C4::Y = dynamic> extends core::Object { +class C4<X extends (self::C4::X, self::C4::Y) →* self::C4::X = (core::Null*, core::Null*) →* dynamic, Y extends (self::C4::X*, self::C4::Y) →* self::C4::Y = (core::Null*, core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>* ; } -class D1<X extends self::B<self::D1::X, self::D1::Y>* = dynamic, Y extends (self::D1::Y) →* self::D1::X* = dynamic> extends core::Object { +class D1<X extends self::B<self::D1::X, self::D1::Y>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y) →* self::D1::X* = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>* ; } -class D2<X extends self::B<self::D2::X, self::D2::Y>* = dynamic, Y extends (self::D2::X*) →* self::D2::Y = dynamic> extends core::Object { +class D2<X extends self::B<self::D2::X, self::D2::Y>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>* ; } -class D3<X extends self::B<self::D3::X, self::D3::Y>* = dynamic, Y extends (self::D3::X*, self::D3::Y) →* self::D3::X* = dynamic> extends core::Object { +class D3<X extends self::B<self::D3::X, self::D3::Y>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y) →* self::D3::X* = (core::Null*, core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>* ; } -class D4<X extends self::B<self::D4::X, self::D4::Y>* = dynamic, Y extends (self::D4::X*, self::D4::Y) →* self::D4::Y = dynamic> extends core::Object { +class D4<X extends self::B<self::D4::X, self::D4::Y>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y) →* self::D4::Y = (core::Null*, core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>* ; } -class E<X extends (self::E::X) →* self::E::X = dynamic> extends core::Object { +class E<X extends (self::E::X) →* self::E::X = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::E<self::E::X*>* ; } -static field self::C1<dynamic, dynamic>* c1; -static field self::C2<dynamic, dynamic>* c2; -static field self::C3<dynamic, dynamic>* c3; -static field self::C4<dynamic, dynamic>* c4; -static field self::D1<dynamic, dynamic>* d1; -static field self::D2<dynamic, dynamic>* d2; -static field self::D3<dynamic, dynamic>* d3; -static field self::D4<dynamic, dynamic>* d4; -static field self::E<dynamic>* e; +static field self::C1<(core::Null*) →* dynamic, (core::Null*) →* dynamic>* c1; +static field self::C2<(core::Null*) →* dynamic, (core::Null*) →* dynamic>* c2; +static field self::C3<(core::Null*, core::Null*) →* dynamic, (core::Null*, core::Null*) →* dynamic>* c3; +static field self::C4<(core::Null*, core::Null*) →* dynamic, (core::Null*, core::Null*) →* dynamic>* c4; +static field self::D1<self::B<dynamic, dynamic>*, (core::Null*) →* dynamic>* d1; +static field self::D2<self::B<dynamic, dynamic>*, (core::Null*) →* dynamic>* d2; +static field self::D3<self::B<dynamic, dynamic>*, (core::Null*, core::Null*) →* dynamic>* d3; +static field self::D4<self::B<dynamic, dynamic>*, (core::Null*, core::Null*) →* dynamic>* d4; +static field self::E<(core::Null*) →* dynamic>* e; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.outline.expect index b742990..0db7d67 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.outline.expect
@@ -6,59 +6,59 @@ synthetic constructor •() → self::B<self::B::X*, self::B::Y*>* ; } -class C1<X extends (self::C1::Y) →* self::C1::X = dynamic, Y extends (self::C1::Y) →* self::C1::X* = dynamic> extends core::Object { +class C1<X extends (self::C1::Y) →* self::C1::X = (core::Null*) →* dynamic, Y extends (self::C1::Y) →* self::C1::X* = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>* ; } -class C2<X extends (self::C2::Y) →* self::C2::X = dynamic, Y extends (self::C2::X*) →* self::C2::Y = dynamic> extends core::Object { +class C2<X extends (self::C2::Y) →* self::C2::X = (core::Null*) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>* ; } -class C3<X extends (self::C3::X, self::C3::Y) →* self::C3::X = dynamic, Y extends (self::C3::X*, self::C3::Y) →* self::C3::X* = dynamic> extends core::Object { +class C3<X extends (self::C3::X, self::C3::Y) →* self::C3::X = (core::Null*, core::Null*) →* dynamic, Y extends (self::C3::X*, self::C3::Y) →* self::C3::X* = (core::Null*, core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>* ; } -class C4<X extends (self::C4::X, self::C4::Y) →* self::C4::X = dynamic, Y extends (self::C4::X*, self::C4::Y) →* self::C4::Y = dynamic> extends core::Object { +class C4<X extends (self::C4::X, self::C4::Y) →* self::C4::X = (core::Null*, core::Null*) →* dynamic, Y extends (self::C4::X*, self::C4::Y) →* self::C4::Y = (core::Null*, core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>* ; } -class D1<X extends self::B<self::D1::X, self::D1::Y>* = dynamic, Y extends (self::D1::Y) →* self::D1::X* = dynamic> extends core::Object { +class D1<X extends self::B<self::D1::X, self::D1::Y>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y) →* self::D1::X* = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>* ; } -class D2<X extends self::B<self::D2::X, self::D2::Y>* = dynamic, Y extends (self::D2::X*) →* self::D2::Y = dynamic> extends core::Object { +class D2<X extends self::B<self::D2::X, self::D2::Y>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>* ; } -class D3<X extends self::B<self::D3::X, self::D3::Y>* = dynamic, Y extends (self::D3::X*, self::D3::Y) →* self::D3::X* = dynamic> extends core::Object { +class D3<X extends self::B<self::D3::X, self::D3::Y>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y) →* self::D3::X* = (core::Null*, core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>* ; } -class D4<X extends self::B<self::D4::X, self::D4::Y>* = dynamic, Y extends (self::D4::X*, self::D4::Y) →* self::D4::Y = dynamic> extends core::Object { +class D4<X extends self::B<self::D4::X, self::D4::Y>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y) →* self::D4::Y = (core::Null*, core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>* ; } -class E<X extends (self::E::X) →* self::E::X = dynamic> extends core::Object { +class E<X extends (self::E::X) →* self::E::X = (core::Null*) →* dynamic> extends core::Object { synthetic constructor •() → self::E<self::E::X*>* ; } -static field dynamic lc1; -static field dynamic mc1; -static field dynamic lc2; -static field dynamic mc2; -static field dynamic lc3; -static field dynamic mc3; -static field dynamic lc4; -static field dynamic mc4; -static field dynamic ld1; -static field dynamic md1; -static field dynamic ld2; -static field dynamic md2; -static field dynamic ld3; -static field dynamic md3; -static field dynamic ld4; -static field dynamic md4; -static field dynamic le; -static field dynamic me; +static field core::List<self::C1<(core::Null*) →* dynamic, (core::Null*) →* dynamic>*>* lc1; +static field core::Map<self::C1<(core::Null*) →* dynamic, (core::Null*) →* dynamic>*, self::C1<(core::Null*) →* dynamic, (core::Null*) →* dynamic>*>* mc1; +static field core::List<self::C2<(core::Null*) →* dynamic, (core::Null*) →* dynamic>*>* lc2; +static field core::Map<self::C2<(core::Null*) →* dynamic, (core::Null*) →* dynamic>*, self::C2<(core::Null*) →* dynamic, (core::Null*) →* dynamic>*>* mc2; +static field core::List<self::C3<(core::Null*, core::Null*) →* dynamic, (core::Null*, core::Null*) →* dynamic>*>* lc3; +static field core::Map<self::C3<(core::Null*, core::Null*) →* dynamic, (core::Null*, core::Null*) →* dynamic>*, self::C3<(core::Null*, core::Null*) →* dynamic, (core::Null*, core::Null*) →* dynamic>*>* mc3; +static field core::List<self::C4<(core::Null*, core::Null*) →* dynamic, (core::Null*, core::Null*) →* dynamic>*>* lc4; +static field core::Map<self::C4<(core::Null*, core::Null*) →* dynamic, (core::Null*, core::Null*) →* dynamic>*, self::C4<(core::Null*, core::Null*) →* dynamic, (core::Null*, core::Null*) →* dynamic>*>* mc4; +static field core::List<self::D1<self::B<dynamic, dynamic>*, (core::Null*) →* dynamic>*>* ld1; +static field core::Map<self::D1<self::B<dynamic, dynamic>*, (core::Null*) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (core::Null*) →* dynamic>*>* md1; +static field core::List<self::D2<self::B<dynamic, dynamic>*, (core::Null*) →* dynamic>*>* ld2; +static field core::Map<self::D2<self::B<dynamic, dynamic>*, (core::Null*) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (core::Null*) →* dynamic>*>* md2; +static field core::List<self::D3<self::B<dynamic, dynamic>*, (core::Null*, core::Null*) →* dynamic>*>* ld3; +static field core::Map<self::D3<self::B<dynamic, dynamic>*, (core::Null*, core::Null*) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (core::Null*, core::Null*) →* dynamic>*>* md3; +static field core::List<self::D4<self::B<dynamic, dynamic>*, (core::Null*, core::Null*) →* dynamic>*>* ld4; +static field core::Map<self::D4<self::B<dynamic, dynamic>*, (core::Null*, core::Null*) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (core::Null*, core::Null*) →* dynamic>*>* md4; +static field core::List<self::E<(core::Null*) →* dynamic>*>* le; +static field core::Map<self::E<(core::Null*) →* dynamic>*, self::E<(core::Null*) →* dynamic>*>* me; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.outline.expect index 5f6a80b..18774f6 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.outline.expect
@@ -1,4 +1,15 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart:12:9: Error: Generic type 'A' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'A' here. +// class B<TypeU extends A> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart:10:16: Context: Bound of this variable references variable 'TypeT' from the same declaration. +// class A<TypeT, TypeS extends TypeT> {} +// ^^^^^ +// import self as self; import "dart:core" as core; @@ -10,10 +21,10 @@ synthetic constructor •() → self::B<self::B::TypeU*>* ; } -class C<TypeV extends self::B<dynamic>* = dynamic> extends core::Object { +class C<TypeV extends self::B<dynamic>* = self::B<dynamic>*> extends core::Object { synthetic constructor •() → self::C<self::C::TypeV*>* ; } -static field self::C<dynamic>* c; +static field self::C<self::B<dynamic>*>* c; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.outline.expect index 81293ce..c2e470a 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.outline.expect
@@ -1,4 +1,15 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart:11:9: Error: Generic type 'A' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'A' here. +// class B<TypeU extends A> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart:9:16: Context: Bound of this variable references variable 'TypeT' from the same declaration. +// class A<TypeT, TypeS extends TypeT> {} +// ^^^^^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.outline.expect index 6729f04..33a14b2 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.outline.expect
@@ -1,9 +1,23 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'. +// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain. +// typedef Fisk = void Function<TypeY extends Hest>(); +// ^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:30: Context: Bound of this variable references raw type 'Hest'. +// typedef Fisk = void Function<TypeY extends Hest>(); +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:9:12: Context: Bound of this variable references raw type 'Fisk'. +// class Hest<TypeX extends Fisk> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -typedef Fisk = <TypeY extends self::Hest<dynamic>* = dynamic>() →* void; -class Hest<TypeX extends <TypeY extends self::Hest<dynamic>* = dynamic>() →* void = dynamic> extends core::Object { +typedef Fisk = <TypeY extends core::Object* = dynamic>() →* void; +class Hest<TypeX extends <TypeY extends core::Object* = dynamic>() →* void = <TypeY extends core::Object* = dynamic>() →* void> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.outline.expect index a6fe87c..1283fc5 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.outline.expect
@@ -1,9 +1,23 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart:10:14: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'. +// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain. +// typedef void Fisk<TypeY extends Hest>(); +// ^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart:10:19: Context: Bound of this variable references raw type 'Hest'. +// typedef void Fisk<TypeY extends Hest>(); +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart:8:12: Context: Bound of this variable references raw type 'Fisk'. +// class Hest<TypeX extends Fisk> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -typedef Fisk<TypeY extends self::Hest<dynamic>* = dynamic> = () →* void; -class Hest<TypeX extends () →* void = dynamic> extends core::Object { +typedef Fisk<TypeY extends core::Object* = dynamic> = () →* void; +class Hest<TypeX extends () →* void = () →* void> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.outline.expect index b15092d..a14595a 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.outline.expect
@@ -1,8 +1,16 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart:8:12: Error: Generic type 'Hest' can't be used without type arguments in the bounds of its own type variables. +// Try providing type arguments to 'Hest' here. +// class Hest<TypeX extends Hest> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -class Hest<TypeX extends self::Hest<dynamic>* = dynamic> extends core::Object { +class Hest<TypeX extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.outline.expect index 2c55b6f..667c623 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.outline.expect
@@ -1,8 +1,21 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart:8:12: Error: Generic type 'Hest' can't be used without type arguments in the bounds of its own type variables. +// Try providing type arguments to 'Hest' here. +// class Hest<TypeX extends Hest, TypeY extends Hest> {} +// ^^^^^ +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart:8:32: Error: Generic type 'Hest' can't be used without type arguments in the bounds of its own type variables. +// Try providing type arguments to 'Hest' here. +// class Hest<TypeX extends Hest, TypeY extends Hest> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -class Hest<TypeX extends self::Hest<dynamic, dynamic>* = dynamic, TypeY extends self::Hest<dynamic, dynamic>* = dynamic> extends core::Object { +class Hest<TypeX extends core::Object* = dynamic, TypeY extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*, self::Hest::TypeY*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.outline.expect index ce84ab3..84aeb37 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.outline.expect
@@ -1,8 +1,16 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart:9:12: Error: Generic type 'Hest' can't be used without type arguments in the bounds of its own type variables. +// Try providing type arguments to 'Hest' here. +// class Hest<TypeX extends Map<Hest, Hest>> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -class Hest<TypeX extends core::Map<self::Hest<dynamic>*, self::Hest<dynamic>*>* = dynamic> extends core::Object { +class Hest<TypeX extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.outline.expect index 39ff531..e90977d 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.outline.expect
@@ -6,7 +6,7 @@ synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; } -class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>* = dynamic> extends core::Object { +class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>* = self::Hest<self::Hest<core::Object*>*>*> extends core::Object { synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.outline.expect index 35c5f78..09fd8ad 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.outline.expect
@@ -1,12 +1,31 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart:11:12: Error: Generic type 'Hest' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'Hest' here. +// class Fisk<TypeY extends Hest, TypeZ extends Hest> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart:9:12: Context: Bound of this variable references variable 'TypeX' from the same declaration. +// class Hest<TypeX extends Hest<TypeX>> {} +// ^^^^^ +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart:11:32: Error: Generic type 'Hest' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'Hest' here. +// class Fisk<TypeY extends Hest, TypeZ extends Hest> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart:9:12: Context: Bound of this variable references variable 'TypeX' from the same declaration. +// class Hest<TypeX extends Hest<TypeX>> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = dynamic> extends core::Object { +class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = self::Hest<dynamic>*> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; } -class Fisk<TypeY extends self::Hest<dynamic>* = dynamic, TypeZ extends self::Hest<dynamic>* = dynamic> extends core::Object { +class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic, TypeZ extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object { synthetic constructor •() → self::Fisk<self::Fisk::TypeY*, self::Fisk::TypeZ*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.outline.expect index 286a5ac..261be38 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.outline.expect
@@ -1,11 +1,19 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart:15:12: Error: Generic type 'LinkedListEntry' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'LinkedListEntry' here. +// class Hest<X extends LinkedListEntry> {} +// ^ +// import self as self; import "dart:collection" as col; import "dart:core" as core; import "dart:collection"; -class Hest<X extends col::LinkedListEntry<dynamic>* = dynamic> extends core::Object { +class Hest<X extends col::LinkedListEntry<col::LinkedListEntry<dynamic>*>* = dynamic> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::X*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.outline.expect index 760a2bd..b4a29e8 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.outline.expect
@@ -1,8 +1,15 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart:11:12: Error: Type variables can't have generic function types in their bounds. +// class Fisk<TypeY extends Function<TypeZ extends Hest<Null>>(TypeZ)> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = dynamic> extends core::Object { +class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = self::Hest<dynamic>*> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.outline.expect index 175cfb3..cda7cca 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.outline.expect
@@ -1,16 +1,35 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart:12:15: Error: Generic type 'Hest' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'Hest' here. +// class Naebdyr<TypeZ extends Map<Hest, Fisk>> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart:8:12: Context: Bound of this variable references variable 'TypeX' from the same declaration. +// class Hest<TypeX extends Hest<TypeX>> {} +// ^^^^^ +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart:12:15: Error: Generic type 'Fisk' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'Fisk' here. +// class Naebdyr<TypeZ extends Map<Hest, Fisk>> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart:10:12: Context: Bound of this variable references variable 'TypeY' from the same declaration. +// class Fisk<TypeY extends Fisk<TypeY>> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = dynamic> extends core::Object { +class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = self::Hest<dynamic>*> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; } -class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY>* = dynamic> extends core::Object { +class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY>* = self::Fisk<dynamic>*> extends core::Object { synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>* ; } -class Naebdyr<TypeZ extends core::Map<self::Hest<dynamic>*, self::Fisk<dynamic>*>* = dynamic> extends core::Object { +class Naebdyr<TypeZ extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Fisk<self::Fisk<dynamic>*>*>* = dynamic> extends core::Object { synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.outline.expect index ed0fbab..fb1db93 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.outline.expect
@@ -1,11 +1,24 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart:11:7: Error: Generic type 'Hest' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'. +// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain. +// class Hest<TypeX extends lib.Hest> {} +// ^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart:11:12: Context: Bound of this variable references raw type 'Hest'. +// class Hest<TypeX extends lib.Hest> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle_lib.dart:16:12: Context: Bound of this variable references raw type 'Hest'. +// class Hest<TypeY extends lib.Hest> {} +// ^^^^^ +// import self as self; -import "non_simple_many_libs_same_name_cycle_lib.dart" as non; import "dart:core" as core; import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle_lib.dart" as lib; -class Hest<TypeX extends non::Hest<dynamic>* = dynamic> extends core::Object { +class Hest<TypeX extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; } @@ -13,13 +26,13 @@ ; library non_simple_many_libs_same_name_cycle_lib; -import self as non; +import self as self2; import "non_simple_many_libs_same_name_cycle.dart" as self; import "dart:core" as core; import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle.dart" as lib; -class Hest<TypeY extends self::Hest<dynamic>* = dynamic> extends core::Object { - synthetic constructor •() → non::Hest<non::Hest::TypeY*>* +class Hest<TypeY extends self::Hest<dynamic>* = self::Hest<dynamic>*> extends core::Object { + synthetic constructor •() → self2::Hest<self2::Hest::TypeY*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.outline.expect index a81c103..2337453 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.outline.expect
@@ -1,12 +1,23 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart:11:12: Error: Generic type 'Hest' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'Hest' here. +// class Fisk<TypeY extends Map<Hest, Hest>> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart:9:12: Context: Bound of this variable references variable 'TypeX' from the same declaration. +// class Hest<TypeX extends Hest<TypeX>> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = dynamic> extends core::Object { +class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = self::Hest<dynamic>*> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; } -class Fisk<TypeY extends core::Map<self::Hest<dynamic>*, self::Hest<dynamic>*>* = dynamic> extends core::Object { +class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Hest<self::Hest<dynamic>*>*>* = dynamic> extends core::Object { synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.outline.expect index 57cdeed..bd2bd0e 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.outline.expect
@@ -1,16 +1,27 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart:11:12: Error: Generic type 'Hest' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'Hest' here. +// class Fisk<TypeY extends Hest> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart:9:12: Context: Bound of this variable references variable 'TypeX' from the same declaration. +// class Hest<TypeX extends Hest<TypeX>> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = dynamic> extends core::Object { +class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = self::Hest<dynamic>*> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; } -class Fisk<TypeY extends self::Hest<dynamic>* = dynamic> extends core::Object { +class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object { synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>* ; } -class Naebdyr<TypeZ extends self::Fisk<dynamic>* = dynamic> extends core::Object { +class Naebdyr<TypeZ extends self::Fisk<dynamic>* = self::Fisk<dynamic>*> extends core::Object { synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.outline.expect index 49f116a..2097fc5 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.outline.expect
@@ -1,12 +1,23 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart:12:12: Error: Generic type 'Hest' can't be used without type arguments in a type variable bound. +// Try providing type arguments to 'Hest' here. +// class Fisk<TypeY extends Hest> {} +// ^^^^^ +// pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart:10:12: Context: Bound of this variable references variable 'TypeX' from the same declaration. +// class Hest<TypeX extends Hest<TypeX>> {} +// ^^^^^ +// import self as self; import "dart:core" as core; -class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = dynamic> extends core::Object { +class Hest<TypeX extends self::Hest<self::Hest::TypeX>* = self::Hest<dynamic>*> extends core::Object { synthetic constructor •() → self::Hest<self::Hest::TypeX*>* ; } -class Fisk<TypeY extends self::Hest<dynamic>* = dynamic> extends core::Object { +class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object { synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.outline.expect index 77163cf..ff215ac 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.outline.expect
@@ -2,11 +2,11 @@ import self as self; import "dart:core" as core; -class A<T extends core::num* = dynamic> extends core::Object { +class A<T extends core::num* = core::num*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; } -class B<T extends self::A<dynamic>* = dynamic> extends core::Object { +class B<T extends self::A<core::num*>* = self::A<core::num*>*> extends core::Object { synthetic constructor •() → self::B<self::B::T*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.outline.expect index c1cd644..040e2a3 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.outline.expect
@@ -2,11 +2,11 @@ import self as self; import "dart:core" as core; -class A<X extends core::Comparable<self::A::X>* = dynamic> extends core::Object { +class A<X extends core::Comparable<self::A::X>* = core::Comparable<dynamic>*> extends core::Object { synthetic constructor •() → self::A<self::A::X*>* ; } -class B<Y extends self::A<dynamic>* = dynamic> extends core::Object { +class B<Y extends self::A<dynamic>* = self::A<dynamic>*> extends core::Object { synthetic constructor •() → self::B<self::B::Y*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.outline.expect index a2a9d19..2075628 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.outline.expect
@@ -2,10 +2,10 @@ import self as self; import "dart:core" as core; -class A<T extends self::A<self::A::T>* = dynamic> extends core::Object { +class A<T extends self::A<self::A::T>* = self::A<dynamic>*> extends core::Object { synthetic constructor •() → self::A<self::A::T*>* ; } -static field self::A<dynamic>* a; +static field self::A<self::A<dynamic>*>* a; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.outline.expect index c64d3c5..63d1e70 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.outline.expect
@@ -8,11 +8,11 @@ synthetic constructor •() → self::B* ; } -class X<T extends self::B* = dynamic> extends core::Object { +class X<T extends self::B* = self::B*> extends core::Object { synthetic constructor •() → self::X<self::X::T*>* ; } -class Y extends self::X<dynamic> { +class Y extends self::X<self::B*> { synthetic constructor •() → self::Y* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.outline.expect index a05dade..a9a5b64 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.outline.expect
@@ -2,13 +2,13 @@ import self as self; import "dart:core" as core; -typedef A<T extends core::num* = dynamic> = (T*) →* dynamic; +typedef A<T extends core::num* = core::num*> = (T*) →* dynamic; class B extends core::Object { synthetic constructor •() → self::B* ; - method foo((dynamic) →* dynamic a) → dynamic + method foo((core::num*) →* dynamic a) → dynamic ; - method bar() → (dynamic) →* dynamic + method bar() → (core::num*) →* dynamic ; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.outline.expect index e1932d8..9af14c6 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -typedef A<T extends core::num* = dynamic> = (T*) →* dynamic; -static field dynamic a; +typedef A<T extends core::num* = core::num*> = (T*) →* dynamic; +static field core::List<(core::num*) →* dynamic>* a; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.outline.expect index e1932d8..a1238c5 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.outline.expect
@@ -2,7 +2,7 @@ import self as self; import "dart:core" as core; -typedef A<T extends core::num* = dynamic> = (T*) →* dynamic; -static field dynamic a; +typedef A<T extends core::num* = core::num*> = (T*) →* dynamic; +static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.outline.expect index 434a8b9..345eb14 100644 --- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.outline.expect +++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.outline.expect
@@ -2,8 +2,8 @@ import self as self; import "dart:core" as core; -typedef A<T extends core::num* = dynamic> = (T*) →* dynamic; -class B<T extends (dynamic) →* dynamic = dynamic> extends core::Object { +typedef A<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*>* ; }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.outline.expect new file mode 100644 index 0000000..7fd0a96 --- /dev/null +++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.outline.expect
@@ -0,0 +1,9 @@ +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; +static field ((dynamic) →* dynamic) →* dynamic b; +static method main() → dynamic + ;
diff --git a/pkg/front_end/testcases/nnbd/late.dart.outline.expect b/pkg/front_end/testcases/nnbd/late.dart.outline.expect index 0c33cf6..3ab3586 100644 --- a/pkg/front_end/testcases/nnbd/late.dart.outline.expect +++ b/pkg/front_end/testcases/nnbd/late.dart.outline.expect
@@ -1,140 +1,18 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/nnbd/late.dart:5:6: Error: Expected ';' after this. -// late int lateStaticField; -// ^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:5:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name. -// Try adding the name of the type of the variable or the keyword 'var'. -// late int lateStaticField; -// ^^^^^^^^^^^^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:6:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name. -// Try adding the name of the type of the variable or the keyword 'var'. -// late final int finalLateStaticField; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:6:1: Error: Expected ';' after this. -// late final int finalLateStaticField; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:6:16: Error: The final variable 'finalLateStaticField' must be initialized. -// Try adding an initializer ('= <expression>') to the declaration. -// late final int finalLateStaticField; -// ^^^^^^^^^^^^^^^^^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:9:8: Error: Expected ';' after this. -// late int lateInstanceField; -// ^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:9:12: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name. -// Try adding the name of the type of the variable or the keyword 'var'. -// late int lateInstanceField; -// ^^^^^^^^^^^^^^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:10:3: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name. -// Try adding the name of the type of the variable or the keyword 'var'. -// late final int finalLateInstanceField = 0; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:10:3: Error: Expected ';' after this. -// late final int finalLateInstanceField = 0; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:12:15: Error: Expected ';' after this. -// static late int lateStaticField; -// ^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:12:15: Error: 'int' is already declared in this scope. -// static late int lateStaticField; -// ^^^ -// pkg/front_end/testcases/nnbd/late.dart:9:8: Context: Previous declaration of 'int'. -// late int lateInstanceField; -// ^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:12:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name. -// Try adding the name of the type of the variable or the keyword 'var'. -// static late int lateStaticField; -// ^^^^^^^^^^^^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:13:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name. -// Try adding the name of the type of the variable or the keyword 'var'. -// static late final int finalLateStaticField = 0; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:13:10: Error: Expected ';' after this. -// static late final int finalLateStaticField = 0; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:13:10: Error: 'late' is already declared in this scope. -// static late final int finalLateStaticField = 0; -// ^^^^ -// pkg/front_end/testcases/nnbd/late.dart:10:3: Context: Previous declaration of 'late'. -// late final int finalLateInstanceField = 0; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:9:3: Warning: 'late' isn't a type. -// late int lateInstanceField; -// ^^^^ -// pkg/front_end/testcases/nnbd/late.dart:9:3: Context: This isn't a type. -// late int lateInstanceField; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:10:14: Warning: 'int' isn't a type. -// late final int finalLateInstanceField = 0; -// ^^^ -// pkg/front_end/testcases/nnbd/late.dart:10:14: Context: This isn't a type. -// late final int finalLateInstanceField = 0; -// ^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:12:10: Warning: 'late' isn't a type. -// static late int lateStaticField; -// ^^^^ -// pkg/front_end/testcases/nnbd/late.dart:12:10: Context: This isn't a type. -// static late int lateStaticField; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:13:21: Warning: 'int' isn't a type. -// static late final int finalLateStaticField = 0; -// ^^^ -// pkg/front_end/testcases/nnbd/late.dart:13:21: Context: This isn't a type. -// static late final int finalLateStaticField = 0; -// ^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:5:1: Warning: 'late' isn't a type. -// late int lateStaticField; -// ^^^^ -// pkg/front_end/testcases/nnbd/late.dart:6:1: Context: This isn't a type. -// late final int finalLateStaticField; -// ^^^^ -// -// pkg/front_end/testcases/nnbd/late.dart:6:12: Warning: 'int' isn't a type. -// late final int finalLateStaticField; -// ^^^ -// pkg/front_end/testcases/nnbd/late.dart:5:6: Context: This isn't a type. -// late int lateStaticField; -// ^^^ -// import self as self; import "dart:core" as core; class Class extends core::Object { - field invalid-type int; - field dynamic lateInstanceField; - field dynamic late; - final field invalid-type finalLateInstanceField; - field dynamic lateStaticField; - final field invalid-type finalLateStaticField; + late field core::int* lateInstanceField; + late final field core::int* finalLateInstanceField; + late static field core::int* lateStaticField; + late static final field core::int* finalLateStaticField; synthetic constructor •() → self::Class* ; method method() → dynamic ; } -static field invalid-type int; -static field dynamic lateStaticField; -static field dynamic late; -static final field invalid-type finalLateStaticField; +late static field core::int* lateStaticField; +late static final field core::int* finalLateStaticField; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/nnbd/nullable_param.dart.outline.expect b/pkg/front_end/testcases/nnbd/nullable_param.dart.outline.expect index b50f3c71..0a3ac11 100644 --- a/pkg/front_end/testcases/nnbd/nullable_param.dart.outline.expect +++ b/pkg/front_end/testcases/nnbd/nullable_param.dart.outline.expect
@@ -2,26 +2,6 @@ // // Problems in library: // -// pkg/front_end/testcases/nnbd/nullable_param.dart:5:6: Error: This requires the 'non-nullable' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// int? field; -// ^ -// -// pkg/front_end/testcases/nnbd/nullable_param.dart:6:6: Error: This requires the 'non-nullable' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// int? bar(int? x); -// ^ -// -// pkg/front_end/testcases/nnbd/nullable_param.dart:6:15: Error: This requires the 'non-nullable' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// int? bar(int? x); -// ^ -// -// pkg/front_end/testcases/nnbd/nullable_param.dart:17:54: Error: This requires the 'non-nullable' experiment to be enabled. -// Try enabling this experiment by adding it to the command line when compiling and running. -// int test_nullable_function_type_formal_param({int f()? : null}) { -// ^ -// // pkg/front_end/testcases/nnbd/nullable_param.dart:4:7: Error: The non-abstract class 'Foo' is missing implementations for these members: // - Foo.bar // Try to either
diff --git a/pkg/front_end/testcases/nnbd/required.dart.outline.expect b/pkg/front_end/testcases/nnbd/required.dart.outline.expect index 156e7c1..97154f2 100644 --- a/pkg/front_end/testcases/nnbd/required.dart.outline.expect +++ b/pkg/front_end/testcases/nnbd/required.dart.outline.expect
@@ -1,60 +1,17 @@ library; -// -// Problems in library: -// -// pkg/front_end/testcases/nnbd/required.dart:5:29: Error: Expected '}' before this. -// method({int a, required int b, required final int c}) {} -// ^ -// -// pkg/front_end/testcases/nnbd/required.dart:8:31: Error: Expected '}' before this. -// method({int a, required int b, required final int c, required covariant final int d}) {} -// ^ -// -// pkg/front_end/testcases/nnbd/required.dart:12:50: Error: Expected '}' before this. -// typedef Typedef1 = Function({int a, required int b}); -// ^ -// -// pkg/front_end/testcases/nnbd/required.dart:14:39: Error: Expected '}' before this. -// typedef Typedef2({int a, required int b}); -// ^ -// -// pkg/front_end/testcases/nnbd/required.dart:16:31: Error: Expected '}' before this. -// Function({int a, required int b}) field; -// ^ -// -// pkg/front_end/testcases/nnbd/required.dart:5:16: Warning: Type 'required' not found. -// method({int a, required int b, required final int c}) {} -// ^^^^^^^^ -// -// pkg/front_end/testcases/nnbd/required.dart:8:18: Warning: Type 'required' not found. -// method({int a, required int b, required final int c, required covariant final int d}) {} -// ^^^^^^^^ -// -// pkg/front_end/testcases/nnbd/required.dart:12:37: Warning: Type 'required' not found. -// typedef Typedef1 = Function({int a, required int b}); -// ^^^^^^^^ -// -// pkg/front_end/testcases/nnbd/required.dart:14:26: Warning: Type 'required' not found. -// typedef Typedef2({int a, required int b}); -// ^^^^^^^^ -// -// pkg/front_end/testcases/nnbd/required.dart:16:18: Warning: Type 'required' not found. -// Function({int a, required int b}) field; -// ^^^^^^^^ -// import self as self; import "dart:core" as core; -typedef Typedef1 = ({a: core::int*, int: invalid-type}) →* dynamic; -typedef Typedef2 = ({a: core::int*, int: invalid-type}) →* dynamic; +typedef Typedef1 = ({a: core::int*, required b: core::int*}) →* dynamic; +typedef Typedef2 = ({a: core::int*, required b: core::int*}) →* dynamic; class Class extends core::Object { synthetic constructor •() → self::Class* ; - method method({core::int* a, invalid-type int}) → dynamic + method method({core::int* a, required core::int* b, required final core::int* c, required covariant final core::int* d}) → dynamic ; } -static field ({a: core::int*, int: invalid-type}) →* dynamic field; -static method method({core::int* a, invalid-type int}) → dynamic +static field ({a: core::int*, required b: core::int*}) →* dynamic field; +static method method({core::int* a, required core::int* b, required final core::int* c}) → dynamic ; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/outline.status b/pkg/front_end/testcases/outline.status index 3b44d70..4037f63 100644 --- a/pkg/front_end/testcases/outline.status +++ b/pkg/front_end/testcases/outline.status
@@ -2,247 +2,41 @@ # for details. All rights reserved. Use of this source code is governed by a # BSD-style license that can be found in the LICENSE.md file. -general/incomplete_field_formal_parameter: Fail # Fasta doesn't recover well -general/redirecting_factory_chain_test: Fail # Missing support for RedirectingFactoryConstructor. -general/redirecting_factory_simple_test: Fail # Missing support for RedirectingFactoryConstructor. -general/redirecting_factory_typeargs_test: Fail # Missing support for RedirectingFactoryConstructor. -general/redirecting_factory_typeparam_test: Fail # Missing support for RedirectingFactoryConstructor. -general/redirecting_factory_typeparambounds_test: Fail # Missing support for RedirectingFactoryConstructor. +general/abstract_members: TypeCheckError +general/bug30695: TypeCheckError +general/bug30695: TypeCheckError +general/ignore_function: TypeCheckError +general/mixin_application_override: TypeCheckError +general/override_check_accessor_after_inference: TypeCheckError +general/override_check_accessor_basic: TypeCheckError +general/override_check_accessor_with_covariant_modifier: TypeCheckError +general/override_check_after_inference: TypeCheckError +general/override_check_basic: TypeCheckError +general/override_check_with_covariant_modifier: TypeCheckError -inference/async_closure_return_type_flatten: Fail -inference/async_closure_return_type_future: Fail -inference/async_closure_return_type_future_or: Fail -inference/block_bodied_lambdas_async_all_returns_are_futures: Fail -inference/block_bodied_lambdas_async_all_returns_are_values: Fail -inference/block_bodied_lambdas_async_mix_of_values_and_futures: Fail -inference/block_bodied_lambdas_async_star: Fail -inference/block_bodied_lambdas_basic: Fail -inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference: Fail -inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level: Fail -inference/block_bodied_lambdas_infer_bottom_async: Fail -inference/block_bodied_lambdas_infer_bottom_async_star: Fail -inference/block_bodied_lambdas_infer_bottom_sync: Fail -inference/block_bodied_lambdas_infer_bottom_sync_star: Fail -inference/block_bodied_lambdas_lub: Fail -inference/block_bodied_lambdas_nested_lambdas: Fail -inference/block_bodied_lambdas_no_return: Fail -inference/block_bodied_lambdas_sync_star: Fail -inference/bottom: Fail -inference/bottom_in_closure: Fail -inference/circular_reference_via_closures: Fail -inference/circular_reference_via_closures_initializer_types: Fail -inference/conflicts_can_happen: Fail +inference/conflicting_fields: TypeCheckError inference/conflicts_can_happen2: Fail -inference/constructors_downwards_with_constraint: Fail -inference/constructors_infer_from_arguments: Fail -inference/constructors_infer_from_arguments_const: Fail -inference/constructors_infer_from_arguments_const_with_upper_bound: Fail -inference/constructors_infer_from_arguments_downwards_from_constructor: Fail -inference/constructors_infer_from_arguments_factory: Fail -inference/constructors_infer_from_arguments_factory_calls_constructor: Fail -inference/constructors_infer_from_arguments_named: Fail -inference/constructors_infer_from_arguments_named_factory: Fail -inference/constructors_infer_from_arguments_redirecting: Fail -inference/constructors_infer_from_arguments_redirecting_factory: Fail -inference/constructors_reverse_type_parameters: Fail -inference/constructors_too_many_positional_arguments: Fail +inference/conflicts_can_happen: Fail inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer: Fail -inference/dont_infer_field_type_when_initializer_is_null: Fail -inference/dont_infer_type_on_dynamic: Fail -inference/dont_infer_type_when_initializer_is_null: Fail -inference/downward_inference_miscellaneous: Fail -inference/downwards_inference_assignment_statements: Fail -inference/downwards_inference_async_await: Fail -inference/downwards_inference_for_each: Fail -inference/downwards_inference_initializing_formal_default_formal: Fail -inference/downwards_inference_inside_top_level: Fail -inference/downwards_inference_on_constructor_arguments_infer_downwards: Fail -inference/downwards_inference_on_function_arguments_infer_downwards: Fail -inference/downwards_inference_on_function_expressions: Fail -inference/downwards_inference_on_function_of_t_using_the_t: Fail -inference/downwards_inference_on_generic_constructor_arguments_empty_list: Fail -inference/downwards_inference_on_generic_constructor_arguments_infer_downwards: Fail -inference/downwards_inference_on_generic_function_expressions: Fail -inference/downwards_inference_on_instance_creations_infer_downwards: Fail -inference/downwards_inference_on_list_literals_infer_downwards: Fail -inference/downwards_inference_on_list_literals_infer_if_value_types_match_context: Fail -inference/downwards_inference_on_map_literals: Fail -inference/downwards_inference_yield_yield_star: Fail -inference/field_refers_to_static_getter: Fail -inference/field_refers_to_top_level_getter: Fail -inference/future_or_subtyping: Fail -inference/generic_functions_return_typedef: Fail -inference/generic_methods_basic_downward_inference: Fail -inference/generic_methods_dart_math_min_max: Fail inference/generic_methods_do_not_infer_invalid_override_of_generic_method: Fail -inference/generic_methods_downwards_inference_affects_arguments: Fail -inference/generic_methods_downwards_inference_fold: Fail inference/generic_methods_handle_override_of_non_generic_with_generic: Fail -inference/generic_methods_infer_generic_function_parameter_type: Fail -inference/generic_methods_infer_generic_function_parameter_type2: Fail -inference/generic_methods_infer_generic_function_return_type: Fail -inference/generic_methods_infer_generic_instantiation: Fail -inference/generic_methods_infer_generic_method_type: Fail -inference/generic_methods_inference_error: Fail -inference/generic_methods_iterable_and_future: Fail -inference/generic_methods_nested_generic_instantiation: Fail -inference/generic_methods_uses_greatest_lower_bound: Fail +inference/inconsistent_overrides: TypeCheckError inference/infer_assign_to_index: Fail inference/infer_assign_to_property: Fail inference/infer_assign_to_property_custom: Fail -inference/infer_assign_to_ref: Fail -inference/infer_binary_custom: Fail -inference/infer_binary_double_double: Fail -inference/infer_binary_double_int: Fail -inference/infer_binary_int_double: Fail -inference/infer_binary_int_int: Fail -inference/infer_conditional: Fail -inference/infer_consts_transitively_2: Fail -inference/infer_consts_transitively_2_a: Fail -inference/infer_consts_transitively_2_b: Fail -inference/infer_consts_transitively_b: Fail -inference/infer_correctly_on_multiple_variables_declared_together: Fail -inference/infer_from_complex_expressions_if_outer_most_value_is_precise: Fail -inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields: Fail -inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2: Fail -inference/infer_from_variables_in_cycle_libs_when_flag_is_on: Fail -inference/infer_from_variables_in_cycle_libs_when_flag_is_on2: Fail -inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a: Fail -inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a: Fail -inference/infer_from_variables_in_non_cycle_imports_with_flag: Fail -inference/infer_from_variables_in_non_cycle_imports_with_flag2: Fail -inference/infer_from_variables_in_non_cycle_imports_with_flag2_a: Fail -inference/infer_from_variables_in_non_cycle_imports_with_flag_a: Fail -inference/infer_generic_method_type_named: Fail -inference/infer_generic_method_type_positional: Fail -inference/infer_generic_method_type_positional2: Fail -inference/infer_generic_method_type_required: Fail -inference/infer_list_literal_nested_in_map_literal: Fail -inference/infer_local_function_return_type: Fail -inference/infer_parameter_type_setter_from_field: Fail -inference/infer_parameter_type_setter_from_setter: Fail -inference/infer_prefix_expression: Fail -inference/infer_prefix_expression_custom: Fail -inference/infer_return_of_statement_lambda: Fail -inference/infer_statics_transitively: Fail -inference/infer_statics_transitively2: Fail -inference/infer_statics_transitively3: Fail -inference/infer_statics_transitively3_a: Fail -inference/infer_statics_transitively_2_a: Fail -inference/infer_statics_transitively_a: Fail -inference/infer_statics_transitively_b: Fail -inference/infer_statics_with_method_invocations: Fail -inference/infer_statics_with_method_invocations_a: Fail -inference/infer_throw: Fail +inference/infer_field_override_multiple: TypeCheckError +inference/infer_method_missing_params: TypeCheckError inference/infer_type_cast: Fail -inference/infer_type_on_overridden_fields2: Fail -inference/infer_type_on_overridden_fields4: Fail -inference/infer_type_on_var: Fail -inference/infer_type_on_var2: Fail -inference/infer_type_on_var_from_field: Fail -inference/infer_type_on_var_from_top_level: Fail -inference/infer_type_regardless_of_declaration_order_or_cycles: Fail -inference/infer_type_regardless_of_declaration_order_or_cycles_b: Fail -inference/infer_typed_list_literal: Fail -inference/infer_typed_map_literal: Fail -inference/infer_types_on_generic_instantiations_3: Fail -inference/infer_types_on_generic_instantiations_4: Fail -inference/infer_types_on_generic_instantiations_5: Fail -inference/infer_types_on_generic_instantiations_in_library_cycle: Fail -inference/infer_types_on_generic_instantiations_in_library_cycle_a: Fail -inference/infer_types_on_generic_instantiations_infer: Fail -inference/infer_types_on_loop_indices_for_each_loop: Fail -inference/infer_types_on_loop_indices_for_loop_with_inference: Fail -inference/infer_variable_void: Fail -inference/inferred_initializing_formal_checks_default_value: Fail -inference/inferred_nonstatic_field_depends_on_static_field_complex: Fail -inference/inferred_nonstatic_field_depends_on_top_level_var_simple: Fail -inference/inferred_type_block_closure_no_args_no_return: Fail -inference/inferred_type_cascade: Fail -inference/inferred_type_custom_binary_op: Fail -inference/inferred_type_custom_binary_op_via_interface: Fail -inference/inferred_type_custom_index_op: Fail -inference/inferred_type_custom_index_op_via_interface: Fail -inference/inferred_type_custom_unary_op: Fail -inference/inferred_type_custom_unary_op_via_interface: Fail -inference/inferred_type_extract_method_tear_off: Fail -inference/inferred_type_extract_method_tear_off_via_interface: Fail -inference/inferred_type_from_top_level_executable_tear_off: Fail -inference/inferred_type_invoke_method: Fail -inference/inferred_type_invoke_method_via_interface: Fail -inference/inferred_type_is_enum: Fail -inference/inferred_type_is_enum_values: Fail -inference/inferred_type_is_typedef: Fail -inference/inferred_type_is_typedef_parameterized: Fail -inference/inferred_type_uses_synthetic_function_type: Fail -inference/inferred_type_uses_synthetic_function_type_function_typed_param: Fail -inference/inferred_type_uses_synthetic_function_type_named_param: Fail -inference/inferred_type_uses_synthetic_function_type_positional_param: Fail -inference/inferred_type_uses_synthetic_function_type_required_param: Fail -inference/inferred_type_via_closure_multiple_levels_of_nesting: Fail -inference/inferred_type_via_closure_type_depends_on_args: Fail -inference/inferred_type_via_closure_type_independent_of_args_field: Fail -inference/inferred_type_via_closure_type_independent_of_args_top_level: Fail -inference/instantiate_to_bounds_generic2_has_bound_defined_after: Fail -inference/instantiate_to_bounds_generic2_has_bound_defined_before: Fail -inference/instantiate_to_bounds_generic2_no_bound: Fail -inference/instantiate_to_bounds_generic_has_bound_defined_after: Fail -inference/instantiate_to_bounds_generic_has_bound_defined_before: Fail -inference/instantiate_to_bounds_invoke_constructor_no_bound: Fail -inference/instantiate_to_bounds_invoke_constructor_type_args_exact: Fail -inference/instantiate_to_bounds_not_generic: Fail -inference/lambda_does_not_have_propagated_type_hint: Fail -inference/list_literals: Fail -inference/list_literals_can_infer_null_bottom: Fail -inference/list_literals_top_level: Fail -inference/map_literals: Fail -inference/map_literals_can_infer_null: Fail -inference/map_literals_top_level: Fail -inference/method_call_with_type_arguments_instance_method: Fail -inference/method_call_with_type_arguments_instance_method_identifier_sequence: Fail -inference/method_call_with_type_arguments_static_method: Fail -inference/method_call_with_type_arguments_top_level_function: Fail -inference/no_error_when_declared_type_is_num_and_assigned_null: Fail -inference/null_coalescing_operator: Fail -inference/null_coalescing_operator_2: Fail -inference/null_literal_should_not_infer_as_bottom: Fail -inference/propagate_inference_to_field_in_class: Fail -inference/propagate_inference_to_field_in_class_dynamic_warnings: Fail -inference/propagate_inference_transitively: Fail -inference/propagate_inference_transitively2: Fail -inference/reference_to_typedef: Fail -inference/refine_binary_expression_type_type_parameter_t_double: Fail -inference/refine_binary_expression_type_type_parameter_t_int: Fail -inference/refine_binary_expression_type_type_parameter_t_t: Fail -inference/static_method_tear_off: Fail -inference/unsafe_block_closure_inference_closure_call: Fail -inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param: Fail -inference/unsafe_block_closure_inference_constructor_call_explicit_type_param: Fail -inference/unsafe_block_closure_inference_constructor_call_implicit_type_param: Fail -inference/unsafe_block_closure_inference_constructor_call_no_type_param: Fail -inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param: Fail -inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2: Fail -inference/unsafe_block_closure_inference_function_call_explicit_type_param: Fail -inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2: Fail -inference/unsafe_block_closure_inference_function_call_implicit_type_param: Fail -inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr: Fail -inference/unsafe_block_closure_inference_function_call_no_type_param: Fail -inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr: Fail -inference/unsafe_block_closure_inference_in_list_dynamic: Fail -inference/unsafe_block_closure_inference_in_list_typed: Fail -inference/unsafe_block_closure_inference_in_list_untyped: Fail -inference/unsafe_block_closure_inference_in_map_dynamic: Fail -inference/unsafe_block_closure_inference_in_map_typed: Fail -inference/unsafe_block_closure_inference_in_map_untyped: Fail -inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param: Fail -inference/unsafe_block_closure_inference_method_call_explicit_type_param: Fail -inference/unsafe_block_closure_inference_method_call_implicit_type_param: Fail -inference/unsafe_block_closure_inference_method_call_no_type_param: Fail -inference/void_return_type_subtypes_dynamic: Fail +inference/infer_types_on_generic_instantiations_infer: TypeCheckError +inference/mixin_inference_outwards_3: TypeCheckError +inference/mixin_inference_outwards_4: TypeCheckError +inference/mixin_inference_unification_1: TypeCheckError +inference/mixin_inference_unification_2: TypeCheckError +inference_new/infer_field_getter_setter_mismatch: TypeCheckError +inference_new/infer_field_override_accessors: TypeCheckError +inference_new/infer_field_override_getter_overrides_setter: TypeCheckError -rasta/issue_000047: Fail rasta/native_is_illegal: Pass # Issue 29763 -rasta/type_with_parse_error: Fail -instantiate_to_bound/body_typedef_super_bounded_type: Fail # Issue 33444 -instantiate_to_bound/typedef_super_bounded_type: Fail # Issue 33444 +runtime_checks_new/mixin_forwarding_stub_field: TypeCheckError +runtime_checks_new/mixin_forwarding_stub_setter: TypeCheckError
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.outline.expect b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.outline.expect index e6caacb..dfa4ba4 100644 --- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/rasta/bad_constructor_redirection.dart:6:21: Warning: Too many positional arguments: 0 allowed, but 1 found. +// pkg/front_end/testcases/rasta/bad_constructor_redirection.dart:6:21: Error: Too many positional arguments: 0 allowed, but 1 found. // Try removing the extra positional arguments. // const C() : this.x(1); // ^
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.outline.expect b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.outline.expect index d7e7781..a7b1099 100644 --- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart:10:20: Warning: Too few positional arguments: 1 required, 0 given. +// pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart:10:20: Error: Too few positional arguments: 1 required, 0 given. // const B() : super(); // ^ //
diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart.outline.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.outline.expect index f3e48bc..256fe64 100644 --- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.outline.expect
@@ -2,22 +2,6 @@ // // Problems in library: // -// pkg/front_end/testcases/rasta/class_hierarchy.dart:5:17: Warning: Type 'Missing' not found. -// class A extends Missing {} -// ^^^^^^^ -// -// pkg/front_end/testcases/rasta/class_hierarchy.dart:7:20: Warning: Type 'Missing' not found. -// class B implements Missing {} -// ^^^^^^^ -// -// pkg/front_end/testcases/rasta/class_hierarchy.dart:9:23: Warning: Type 'Missing' not found. -// class C = Object with Missing; -// ^^^^^^^ -// -// pkg/front_end/testcases/rasta/class_hierarchy.dart:9:7: Error: The type 'Missing' can't be mixed in. -// class C = Object with Missing; -// ^ -// // pkg/front_end/testcases/rasta/class_hierarchy.dart:5:17: Error: Type 'Missing' not found. // class A extends Missing {} // ^^^^^^^ @@ -30,11 +14,15 @@ // class C = Object with Missing; // ^^^^^^^ // -// pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Warning: Couldn't find constructor 'Missing'. +// pkg/front_end/testcases/rasta/class_hierarchy.dart:9:7: Error: The type 'Missing' can't be mixed in. +// class C = Object with Missing; +// ^ +// +// pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Couldn't find constructor 'Missing'. // factory D() = Missing; // ^ // -// pkg/front_end/testcases/rasta/class_hierarchy.dart:12:11: Warning: Redirection constructor target not found: 'Missing' +// pkg/front_end/testcases/rasta/class_hierarchy.dart:12:11: Error: Redirection constructor target not found: 'Missing' // factory D() = Missing; // ^ //
diff --git a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.outline.expect b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.outline.expect index c9b0d8b..2188126 100644 --- a/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/constant_get_and_invoke.dart.outline.expect
@@ -1,6 +1,7 @@ library; import self as self; +import "dart:core" as core; -static const field dynamic c = 1; +static const field core::int* c = 1; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.outline.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.outline.expect index 185910f..3938bc8 100644 --- a/pkg/front_end/testcases/rasta/generic_factory.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/generic_factory.dart.outline.expect
@@ -2,14 +2,28 @@ // // Problems in library: // -// pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Warning: Couldn't find constructor 'Missing'. +// pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Couldn't find constructor 'Missing'. // factory A.c() = Missing; // ^ // -// pkg/front_end/testcases/rasta/generic_factory.dart:16:11: Warning: Redirection constructor target not found: 'Missing' +// pkg/front_end/testcases/rasta/generic_factory.dart:16:11: Error: Redirection constructor target not found: 'Missing' // factory A.c() = Missing; // ^ // +// pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B<C1> Function()' isn't a subtype of 'A<T> Function()'. +// - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. +// - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. +// - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. +// factory A.b() = B<C1>.a; +// ^ +// +// pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C<C2> Function()' isn't a subtype of 'B<S> Function()'. +// - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. +// - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. +// - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. +// factory B.b() = C<C2>; +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/rasta/issue_000002.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000002.dart.outline.expect index 1e569d8..742dcd7 100644 --- a/pkg/front_end/testcases/rasta/issue_000002.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000002.dart.outline.expect
@@ -12,6 +12,6 @@ static factory fac(dynamic value) → self::Foo* ; } -static field dynamic list; +static field core::List<core::int*>* list; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/rasta/issue_000006.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000006.dart.outline.expect index 0ff4007..6de5524 100644 --- a/pkg/front_end/testcases/rasta/issue_000006.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000006.dart.outline.expect
@@ -1,6 +1,7 @@ library; import self as self; +import "dart:core" as core; -static field dynamic list; +static field core::List<core::int*>* list; static method main() → dynamic ;
diff --git a/pkg/front_end/testcases/rasta/issue_000026.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000026.dart.outline.expect index 147a7db..cdccc71 100644 --- a/pkg/front_end/testcases/rasta/issue_000026.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000026.dart.outline.expect
@@ -4,15 +4,15 @@ class C extends core::Object { field dynamic a; - field dynamic b; - field dynamic c; + field core::int* b; + field core::int* c; synthetic constructor •() → self::C* ; } class D extends core::Object { field dynamic a; - field dynamic b; - field dynamic c; + field core::int* b; + field core::int* c; constructor •() → self::D* ; }
diff --git a/pkg/front_end/testcases/rasta/issue_000033.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000033.dart.outline.expect index 44fbbbc..feabb09 100644 --- a/pkg/front_end/testcases/rasta/issue_000033.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000033.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/rasta/issue_000033.dart:5:2: Warning: Method not found: 'JS'. +// pkg/front_end/testcases/rasta/issue_000033.dart:5:2: Error: Method not found: 'JS'. // @JS() // ^^ //
diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.outline.expect index 35d0544..cd96d0f 100644 --- a/pkg/front_end/testcases/rasta/issue_000044.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000044.dart.outline.expect
@@ -17,11 +17,11 @@ // C notEvenAConstructor(a) = h; // ^ // -// pkg/front_end/testcases/rasta/issue_000044.dart:7:1: Warning: Type 'a' not found. +// pkg/front_end/testcases/rasta/issue_000044.dart:7:1: Error: Type 'a' not found. // a b(c) = d; // ^ // -// pkg/front_end/testcases/rasta/issue_000044.dart:21:30: Warning: Couldn't find constructor 'h'. +// pkg/front_end/testcases/rasta/issue_000044.dart:21:30: Error: Couldn't find constructor 'h'. // C notEvenAConstructor(a) = h; // ^ //
diff --git a/pkg/front_end/testcases/rasta/issue_000047.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000047.dart.outline.expect index ab80bb0b..de792f5 100644 --- a/pkg/front_end/testcases/rasta/issue_000047.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000047.dart.outline.expect
@@ -1,5 +1,13 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/rasta/issue_000047.dart:5:17: Error: Expected ')' before this. +// typedef void T(C<C>); +// ^ +// import self as self; -static method main() → invalid-type +typedef T = (dynamic) →* void; +static method main() → (dynamic) →* void ;
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.outline.expect index 45c7070..afa2636 100644 --- a/pkg/front_end/testcases/rasta/issue_000070.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000070.dart.outline.expect
@@ -11,7 +11,7 @@ constructor empty() → self::A<self::A::N*, self::A::S*, self::A::U*>* ; const constructor c(self::A::U* u, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>* - : self::A::field = const <dynamic>[null], super core::Object::•() + : self::A::field = const <core::Null*>[null], super core::Object::•() ; static factory f<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic>(self::A::f::S* s) → self::A<self::A::f::N*, self::A::f::S*, self::A::f::U*>* ;
diff --git a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.outline.expect b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.outline.expect index a53eb28..186fdea 100644 --- a/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/malformed_const_constructor.dart.outline.expect
@@ -24,7 +24,7 @@ import "dart:core" as core; class A extends core::Object { - field dynamic x; + field core::String* x; constructor •() → self::A* ; }
diff --git a/pkg/front_end/testcases/rasta/static.dart.outline.expect b/pkg/front_end/testcases/rasta/static.dart.outline.expect index eac130a..c9bb1ac 100644 --- a/pkg/front_end/testcases/rasta/static.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/static.dart.outline.expect
@@ -3,8 +3,8 @@ import "dart:core" as core; class Foo extends core::Object { - static const field dynamic staticConstant = 42; - static field dynamic staticField; + static const field core::int* staticConstant = 42; + static field core::int* staticField; synthetic constructor •() → self::Foo* ; static method staticFunction() → dynamic
diff --git a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.outline.expect b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.outline.expect index 6b89dbc..36905b0 100644 --- a/pkg/front_end/testcases/rasta/type_with_parse_error.dart.outline.expect +++ b/pkg/front_end/testcases/rasta/type_with_parse_error.dart.outline.expect
@@ -1,15 +1,23 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/rasta/type_with_parse_error.dart:21:7: Error: Expected ';' after this. +// int i +// ^ +// import self as self; import "dart:core" as core; class A extends core::Object { - constructor •() → void + synthetic constructor •() → self::A* ; method foo() → dynamic ; } -class B extends core::Object { - constructor •() → void +class B<T extends core::Object* = dynamic> extends core::Object { + field core::int* i; + synthetic constructor •() → self::B<self::B::T*>* ; } static method main() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart.outline.expect b/pkg/front_end/testcases/regress/issue_29981.dart.outline.expect index bdc4a96..254a3b9 100644 --- a/pkg/front_end/testcases/regress/issue_29981.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_29981.dart.outline.expect
@@ -1,9 +1,16 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/regress/issue_29981.dart:6:3: Error: Expected 1 type arguments. +// C<String, String> field; +// ^ +// import self as self; import "dart:core" as core; class C<T extends core::Object* = dynamic> extends core::Object { - field self::C<dynamic>* field; + field invalid-type field; synthetic constructor •() → self::C<self::C::T*>* ; }
diff --git a/pkg/front_end/testcases/regress/issue_31188.dart.outline.expect b/pkg/front_end/testcases/regress/issue_31188.dart.outline.expect index c60e8a0..a5b32ff 100644 --- a/pkg/front_end/testcases/regress/issue_31188.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_31188.dart.outline.expect
@@ -10,7 +10,7 @@ // type T = Map<A, B> // ^ // -// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Warning: Type 'type' not found. +// pkg/front_end/testcases/regress/issue_31188.dart:7:1: Error: Type 'type' not found. // type T = Map<A, B> // ^^^^ //
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart.outline.expect b/pkg/front_end/testcases/regress/issue_31190.dart.outline.expect index 7a2a75f..d75581b 100644 --- a/pkg/front_end/testcases/regress/issue_31190.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_31190.dart.outline.expect
@@ -2,12 +2,12 @@ // // Problems in library: // -// pkg/front_end/testcases/regress/issue_31190.dart:6:3: Warning: Can't use type arguments with type variable 'T'. +// pkg/front_end/testcases/regress/issue_31190.dart:6:3: Error: Can't use type arguments with type variable 'T'. // Try removing the type arguments. // T<U> v; // ^ // -// pkg/front_end/testcases/regress/issue_31190.dart:6:5: Warning: Type 'U' not found. +// pkg/front_end/testcases/regress/issue_31190.dart:6:5: Error: Type 'U' not found. // T<U> v; // ^ //
diff --git a/pkg/front_end/testcases/regress/issue_32200.dart.outline.expect b/pkg/front_end/testcases/regress/issue_32200.dart.outline.expect index 496a079..75340ee 100644 --- a/pkg/front_end/testcases/regress/issue_32200.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_32200.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/regress/issue_32200.dart:8:3: Warning: 'self.Foo' can't be used as a type because 'self' doesn't refer to an import prefix. +// pkg/front_end/testcases/regress/issue_32200.dart:8:3: Error: 'self.Foo' can't be used as a type because 'self' doesn't refer to an import prefix. // self.Foo self; // ^^^^^^^^ //
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.outline.expect b/pkg/front_end/testcases/regress/issue_32660.dart.outline.expect index 6a0f6b8..e4d2c10 100644 --- a/pkg/front_end/testcases/regress/issue_32660.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_32660.dart.outline.expect
@@ -2,7 +2,7 @@ // // Problems in library: // -// pkg/front_end/testcases/regress/issue_32660.dart:21:3: Warning: The method 'D.foo' has fewer named arguments than those of overridden method 'E.foo'. +// pkg/front_end/testcases/regress/issue_32660.dart:21:3: Error: The method 'D.foo' has fewer named arguments than those of overridden method 'E.foo'. // foo(int x) => x; // ^ // pkg/front_end/testcases/regress/issue_32660.dart:25:3: Context: This is the overridden method ('foo'). @@ -12,7 +12,7 @@ // class E extends D { // ^ // -// pkg/front_end/testcases/regress/issue_32660.dart:6:3: Warning: The method 'A.foo' has fewer named arguments than those of overridden method 'B.foo'. +// pkg/front_end/testcases/regress/issue_32660.dart:6:3: Error: The method 'A.foo' has fewer named arguments than those of overridden method 'B.foo'. // foo(int x) => x; // ^ // pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
diff --git a/pkg/front_end/testcases/regress/issue_34291.dart.outline.expect b/pkg/front_end/testcases/regress/issue_34291.dart.outline.expect index 40c4590..98135e9 100644 --- a/pkg/front_end/testcases/regress/issue_34291.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_34291.dart.outline.expect
@@ -1,7 +1,13 @@ library; +// +// Problems in library: +// +// pkg/front_end/testcases/regress/issue_34291.dart:9:1: Error: Expected 0 type arguments. +// lib.A<B> foo() {} +// ^ +// import self as self; import "dart:core" as core; -import "issue_34291_lib.dart" as iss; import "org-dartlang-testcase:///issue_34291_lib.dart" as lib; @@ -9,16 +15,16 @@ synthetic constructor •() → self::B* ; } -static method foo() → iss::A* +static method foo() → invalid-type ; static method main() → dynamic ; library; -import self as iss; +import self as self2; import "dart:core" as core; class A extends core::Object { - synthetic constructor •() → iss::A* + synthetic constructor •() → self2::A* ; }
diff --git a/pkg/front_end/testcases/regress/issue_34498.dart.outline.expect b/pkg/front_end/testcases/regress/issue_34498.dart.outline.expect index da300e9..79df073 100644 --- a/pkg/front_end/testcases/regress/issue_34498.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_34498.dart.outline.expect
@@ -2,23 +2,23 @@ // // Problems in library: // -// pkg/front_end/testcases/regress/issue_34498.dart:8:3: Warning: 'lib.MyClass' can't be used as a type because 'lib' doesn't refer to an import prefix. +// pkg/front_end/testcases/regress/issue_34498.dart:8:3: Error: 'lib.MyClass' can't be used as a type because 'lib' doesn't refer to an import prefix. // lib.MyClass get lib => null; // (1) // ^^^^^^^^^^^ // -// pkg/front_end/testcases/regress/issue_34498.dart:10:3: Warning: 'foo' isn't a type. +// pkg/front_end/testcases/regress/issue_34498.dart:10:3: Error: 'foo' isn't a type. // foo foo() {} // ^^^ // pkg/front_end/testcases/regress/issue_34498.dart:10:7: Context: This isn't a type. // foo foo() {} // ^^^ // -// pkg/front_end/testcases/regress/issue_34498.dart:20:3: Warning: Can't use type arguments with type variable 'T'. +// pkg/front_end/testcases/regress/issue_34498.dart:20:3: Error: Can't use type arguments with type variable 'T'. // Try removing the type arguments. // T<String> foo() {} // ^ // -// pkg/front_end/testcases/regress/issue_34498.dart:12:3: Warning: Type 'Missing' not found. +// pkg/front_end/testcases/regress/issue_34498.dart:12:3: Error: Type 'Missing' not found. // Missing bar() {} // ^^^^^^^ //
diff --git a/pkg/front_end/testcases/regress/issue_34850.dart.outline.expect b/pkg/front_end/testcases/regress/issue_34850.dart.outline.expect index 8f7f0f5..71b4abc 100644 --- a/pkg/front_end/testcases/regress/issue_34850.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_34850.dart.outline.expect
@@ -27,21 +27,29 @@ // Future<List<>> f3() async { // ^^ // -// pkg/front_end/testcases/regress/issue_34850.dart:5:2: Warning: Type 'foo' not found. +// pkg/front_end/testcases/regress/issue_34850.dart:5:2: Error: Type 'foo' not found. // <foo< // ^^^ // -// pkg/front_end/testcases/regress/issue_34850.dart:11:1: Warning: Type 'foo' not found. +// pkg/front_end/testcases/regress/issue_34850.dart:5:2: Error: Expected 0 type arguments. +// <foo< +// ^ +// +// pkg/front_end/testcases/regress/issue_34850.dart:11:1: Error: Type 'foo' not found. // foo // ^^^ // -// pkg/front_end/testcases/regress/issue_34850.dart:14:1: Warning: 'Future' isn't a type. +// pkg/front_end/testcases/regress/issue_34850.dart:14:1: Error: 'Future' isn't a type. // Future<List<>> f3() async { // ^^^^^^ // pkg/front_end/testcases/regress/issue_34850.dart:12:1: Context: This isn't a type. // Future<List<int>> f2() async => null; // ^^^^^^ // +// pkg/front_end/testcases/regress/issue_34850.dart:14:1: Error: Expected 0 type arguments. +// Future<List<>> f3() async { +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/regress/issue_35259.dart.outline.expect b/pkg/front_end/testcases/regress/issue_35259.dart.outline.expect index 67e0fdb..83a6c1d 100644 --- a/pkg/front_end/testcases/regress/issue_35259.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_35259.dart.outline.expect
@@ -9,19 +9,19 @@ // factory Supertype() = Unresolved; // ^^^^^^^^^ // -// pkg/front_end/testcases/regress/issue_35259.dart:6:25: Warning: Couldn't find constructor 'Unresolved'. +// pkg/front_end/testcases/regress/issue_35259.dart:6:25: Error: Couldn't find constructor 'Unresolved'. // factory Supertype() = Unresolved; // ^ // -// pkg/front_end/testcases/regress/issue_35259.dart:7:25: Warning: Couldn't find constructor 'Unresolved'. +// pkg/front_end/testcases/regress/issue_35259.dart:7:25: Error: Couldn't find constructor 'Unresolved'. // factory Supertype() = Unresolved; // ^ // -// pkg/front_end/testcases/regress/issue_35259.dart:7:11: Warning: Redirection constructor target not found: 'Unresolved' +// pkg/front_end/testcases/regress/issue_35259.dart:7:11: Error: Redirection constructor target not found: 'Unresolved' // factory Supertype() = Unresolved; // ^ // -// pkg/front_end/testcases/regress/issue_35259.dart:6:11: Warning: Redirection constructor target not found: 'Unresolved' +// pkg/front_end/testcases/regress/issue_35259.dart:6:11: Error: Redirection constructor target not found: 'Unresolved' // factory Supertype() = Unresolved; // ^ //
diff --git a/pkg/front_end/testcases/regress/issue_36647.dart.outline.expect b/pkg/front_end/testcases/regress/issue_36647.dart.outline.expect index b7df60a..47f8846 100644 --- a/pkg/front_end/testcases/regress/issue_36647.dart.outline.expect +++ b/pkg/front_end/testcases/regress/issue_36647.dart.outline.expect
@@ -53,7 +53,7 @@ // class xxx xx XXX extends XXX { // ^^^ // -// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:11: Warning: Type 'xx' not found. +// pkg/front_end/testcases/regress/issue_36647_lib2.dart:5:11: Error: Type 'xx' not found. // class xxx xx XXX extends XXX { // ^^ //
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.outline.expect index ddce3da..e13202c 100644 --- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.outline.expect +++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.outline.expect
@@ -6,7 +6,7 @@ class C<T extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::C<self::C::T*>* ; - method f<U extends (self::C::T*) →* void = dynamic>(self::C::f::U* x) → void + method f<U extends (self::C::T*) →* void = (self::C::T*) →* void>(self::C::f::U* x) → void ; } static method g(self::C<core::num*>* c) → void
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.outline.expect index 717c2fb..463d57a 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.outline.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.outline.expect
@@ -5,9 +5,9 @@ class C<T extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::C<self::C::T*>* ; - method f<generic-covariant-impl U extends self::C::T* = dynamic>(self::C::f::U* x) → void + method f<generic-covariant-impl U extends self::C::T* = self::C::T*>(self::C::f::U* x) → void ; - method g1<generic-covariant-impl U extends self::C::T* = dynamic>() → void + method g1<generic-covariant-impl U extends self::C::T* = self::C::T*>() → void ; } static method g2(self::C<core::Object*>* c) → void
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.outline.expect index ebf34c1..a30e2aa 100644 --- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.outline.expect +++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.outline.expect
@@ -5,7 +5,7 @@ class C<T extends core::Object* = dynamic> extends core::Object { synthetic constructor •() → self::C<self::C::T*>* ; - method f<generic-covariant-impl U extends self::C::T* = dynamic>(self::C::f::U* x) → void + method f<generic-covariant-impl U extends self::C::T* = self::C::T*>(self::C::f::U* x) → void ; } static method g1(dynamic d) → void
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.outline.expect index 2f68f15..3c7dca2 100644 --- a/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.outline.expect +++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_combiner.dart.outline.expect
@@ -3,7 +3,7 @@ import "dart:core" as core; typedef F<T extends core::Object* = dynamic> = (T*) →* void; -class B<T extends core::Object* = dynamic, U extends (self::B::T*) →* void = dynamic> extends core::Object { +class B<T extends core::Object* = dynamic, U extends (self::B::T*) →* void = (dynamic) →* void> extends core::Object { synthetic constructor •() → self::B<self::B::T*, self::B::U*>* ; operator +(dynamic other) → self::B<self::B::T*, (self::B::T*) →* void>*
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.outline.expect index 63c538e..9a2b5c5 100644 --- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.outline.expect +++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.outline.expect
@@ -9,7 +9,7 @@ ; method g({generic-covariant-impl self::B::T* x}) → void ; - method h<generic-covariant-impl U extends self::B::T* = dynamic>() → void + method h<generic-covariant-impl U extends self::B::T* = self::B::T*>() → void ; } class C extends self::B<core::int*> {
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.outline.expect index c22b5fd..4aaa576 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.outline.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.outline.expect
@@ -1,4 +1,19 @@ library test; +// +// Problems in library: +// +// pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:48:7: Error: The return type of the method 'M.y' is 'int', which does not match the return type, 'Object', of the overridden method, 'I.y'. +// - 'Object' is from 'dart:core'. +// Change to a subtype of 'Object'. +// int y; +// ^ +// pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:43:12: Context: This is the overridden method ('y'). +// void set y(covariant Object value); +// ^ +// pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart:51:7: Context: Override was introduced in the mixin application class 'C'. +// class C = B with M implements I<int>; +// ^ +// import self as self; import "dart:core" as core;
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.outline.expect index 9b609d2..e7cad7c 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.outline.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.outline.expect
@@ -1,4 +1,19 @@ library test; +// +// Problems in library: +// +// pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart:53:18: Error: The parameter 'value' of the method 'M.y' has type 'int', which does not match the corresponding type, 'Object', in the overridden method, 'I.y'. +// - 'Object' is from 'dart:core'. +// Change to a supertype of 'Object', or, for a covariant parameter, a subtype. +// void set y(int value) { +// ^ +// pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart:43:12: Context: This is the overridden method ('y'). +// void set y(covariant Object value); +// ^ +// pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart:58:7: Context: Override was introduced in the mixin application class 'C'. +// class C = B with M implements I<int>; +// ^ +// import self as self; import "dart:core" as core;