blob: 76075edd397c6fb110c7bab2cd815509640fdd1a [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:26:38: Error: A value of type '(Object?, Object?)' can't be returned from a function with return type '(int, Object?)'.
// - 'Object' is from 'dart:core'.
// (int, Object?) testMethod1(E e) => e.method(); // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:27:38: Error: A value of type '(Object?, Object?)' can't be returned from a function with return type '(Object?, int)'.
// - 'Object' is from 'dart:core'.
// (Object?, int) testMethod2(E e) => e.method(); // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:28:35: Error: The method 'unresolved' isn't defined for the class 'Object?'.
// - 'Object' is from 'dart:core'.
// Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
// testMethod3(E e) => e.method().$1.unresolved(); // Error
// ^^^^^^^^^^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:29:35: Error: The method 'unresolved' isn't defined for the class 'Object?'.
// - 'Object' is from 'dart:core'.
// Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
// testMethod4(E e) => e.method().$2.unresolved(); // Error
// ^^^^^^^^^^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:32:38: Error: A value of type '(Object?, Object?)' can't be returned from a function with return type '(int, Object?)'.
// - 'Object' is from 'dart:core'.
// (int, Object?) testGetter1(E e) => e.getter; // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:33:38: Error: A value of type '(Object?, Object?)' can't be returned from a function with return type '(Object?, int)'.
// - 'Object' is from 'dart:core'.
// (Object?, int) testGetter2(E e) => e.getter; // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:37:24: Error: A value of type '(Object?, int)' can't be returned from a function with return type '(int, int)'.
// - 'Object' is from 'dart:core'.
// e.setter = (a, b) => (a, b as int); // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:38:24: Error: A value of type '(int, Object?)' can't be returned from a function with return type '(int, int)'.
// - 'Object' is from 'dart:core'.
// e.setter = (a, b) => (a as int, b); // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:45:21: Error: A value of type '(Object?, Object?)' can't be assigned to a variable of type '(Object?, int)'.
// - 'Object' is from 'dart:core'.
// (Object?, int) f2 = f; // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:46:21: Error: A value of type '(Object?, Object?)' can't be assigned to a variable of type '(int, Object?)'.
// - 'Object' is from 'dart:core'.
// (int, Object?) f3 = f; // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:47:26: Error: The method 'unresolved' isn't defined for the class 'Object?'.
// - 'Object' is from 'dart:core'.
// Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
// testMethod5(E e) => f.$1.unresolved(); // Error
// ^^^^^^^^^^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:48:26: Error: The method 'unresolved' isn't defined for the class 'Object?'.
// - 'Object' is from 'dart:core'.
// Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
// testMethod6(E e) => f.$2.unresolved(); // Error
// ^^^^^^^^^^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:52:21: Error: A value of type '(Object?, Object?)' can't be assigned to a variable of type '(Object?, int)'.
// - 'Object' is from 'dart:core'.
// (Object?, int) g2 = g; // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:53:21: Error: A value of type '(Object?, Object?)' can't be assigned to a variable of type '(int, Object?)'.
// - 'Object' is from 'dart:core'.
// (int, Object?) g3 = g; // Error
// ^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:54:26: Error: The method 'unresolved' isn't defined for the class 'Object?'.
// - 'Object' is from 'dart:core'.
// Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
// testGetter5(E e) => g.$1.unresolved(); // Error
// ^^^^^^^^^^
//
// pkg/front_end/testcases/extension_types/combined_member_signature.dart:55:26: Error: The method 'unresolved' isn't defined for the class 'Object?'.
// - 'Object' is from 'dart:core'.
// Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
// testGetter6(E e) => g.$2.unresolved(); // Error
// ^^^^^^^^^^
//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
synthetic constructor •() self::A
: super core::Object::•()
;
abstract method method() (core::Object?, dynamic);
abstract get getter() (core::Object?, dynamic);
abstract set setter((core::Object?, dynamic) (core::int, core::int) f) void;
}
abstract class B extends core::Object {
synthetic constructor •() self::B
: super core::Object::•()
;
abstract method method() (dynamic, core::Object?);
abstract get getter() (dynamic, core::Object?);
abstract set setter((dynamic, core::Object?) (core::int, core::int) f) void;
}
class C extends core::Object implements self::A, self::B {
synthetic constructor •() self::C
: super core::Object::•()
;
method method() (core::int, core::int)
return (42, 87);
get getter() (core::int, core::int)
return (42, 87);
set setter((dynamic, dynamic) (core::int, core::int) f) void {}
}
extension type E(self::C c) implements self::A, self::B {
abstract extension-type-member representation-field get c() self::C;
abstract member-signature method method() (core::Object?, core::Object?); -> self::A::method
abstract member-signature get getter() (core::Object?, core::Object?); -> self::A::getter
abstract member-signature set setter((core::Object?, core::Object?) (core::int, core::int) f) void; -> self::A::setter
constructor = self::E|constructor#;
constructor tearoff = self::E|constructor#_#new#tearOff;
}
static field self::E /* erasure=self::C */ e = self::E|constructor#(new self::C::•());
static field (core::Object?, core::Object?) f = self::e.{self::A::method}(){() (core::Object?, core::Object?)};
static field (core::Object?, core::Object?) f1 = self::f;
static field (core::Object?, core::int) f2 = invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:45:21: Error: A value of type '(Object?, Object?)' can't be assigned to a variable of type '(Object?, int)'.
- 'Object' is from 'dart:core'.
(Object?, int) f2 = f; // Error
^" in self::f as{TypeError} (core::Object?, core::int);
static field (core::int, core::Object?) f3 = invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:46:21: Error: A value of type '(Object?, Object?)' can't be assigned to a variable of type '(int, Object?)'.
- 'Object' is from 'dart:core'.
(int, Object?) f3 = f; // Error
^" in self::f as{TypeError} (core::int, core::Object?);
static field (core::Object?, core::Object?) g = self::e.{self::A::getter}{(core::Object?, core::Object?)};
static field (core::Object?, core::Object?) g1 = self::g;
static field (core::Object?, core::int) g2 = invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:52:21: Error: A value of type '(Object?, Object?)' can't be assigned to a variable of type '(Object?, int)'.
- 'Object' is from 'dart:core'.
(Object?, int) g2 = g; // Error
^" in self::g as{TypeError} (core::Object?, core::int);
static field (core::int, core::Object?) g3 = invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:53:21: Error: A value of type '(Object?, Object?)' can't be assigned to a variable of type '(int, Object?)'.
- 'Object' is from 'dart:core'.
(int, Object?) g3 = g; // Error
^" in self::g as{TypeError} (core::int, core::Object?);
static extension-type-member method E|constructor#(self::C c) → self::E /* erasure=self::C */ {
lowered final self::E /* erasure=self::C */ #this = c;
return #this;
}
static extension-type-member method E|constructor#_#new#tearOff(self::C c) → self::E /* erasure=self::C */
return self::E|constructor#(c);
static method testMethod0(self::E /* erasure=self::C */ e) (core::Object?, core::Object?)
return e.{self::A::method}(){() (core::Object?, core::Object?)};
static method testMethod1(self::E /* erasure=self::C */ e) (core::int, core::Object?)
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:26:38: Error: A value of type '(Object?, Object?)' can't be returned from a function with return type '(int, Object?)'.
- 'Object' is from 'dart:core'.
(int, Object?) testMethod1(E e) => e.method(); // Error
^" in e.{self::A::method}(){() (core::Object?, core::Object?)} as{TypeError} (core::int, core::Object?);
static method testMethod2(self::E /* erasure=self::C */ e) (core::Object?, core::int)
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:27:38: Error: A value of type '(Object?, Object?)' can't be returned from a function with return type '(Object?, int)'.
- 'Object' is from 'dart:core'.
(Object?, int) testMethod2(E e) => e.method(); // Error
^" in e.{self::A::method}(){() (core::Object?, core::Object?)} as{TypeError} (core::Object?, core::int);
static method testMethod3(self::E /* erasure=self::C */ e) dynamic
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:28:35: Error: The method 'unresolved' isn't defined for the class 'Object?'.
- 'Object' is from 'dart:core'.
Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
testMethod3(E e) => e.method().\$1.unresolved(); // Error
^^^^^^^^^^" in e.{self::A::method}(){() (core::Object?, core::Object?)}.$1{core::Object?}{<unresolved>}.unresolved();
static method testMethod4(self::E /* erasure=self::C */ e) dynamic
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:29:35: Error: The method 'unresolved' isn't defined for the class 'Object?'.
- 'Object' is from 'dart:core'.
Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
testMethod4(E e) => e.method().\$2.unresolved(); // Error
^^^^^^^^^^" in e.{self::A::method}(){() (core::Object?, core::Object?)}.$2{core::Object?}{<unresolved>}.unresolved();
static method testGetter0(self::E /* erasure=self::C */ e) (core::Object?, core::Object?)
return e.{self::A::getter}{(core::Object?, core::Object?)};
static method testGetter1(self::E /* erasure=self::C */ e) (core::int, core::Object?)
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:32:38: Error: A value of type '(Object?, Object?)' can't be returned from a function with return type '(int, Object?)'.
- 'Object' is from 'dart:core'.
(int, Object?) testGetter1(E e) => e.getter; // Error
^" in e.{self::A::getter}{(core::Object?, core::Object?)} as{TypeError} (core::int, core::Object?);
static method testGetter2(self::E /* erasure=self::C */ e) (core::Object?, core::int)
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:33:38: Error: A value of type '(Object?, Object?)' can't be returned from a function with return type '(Object?, int)'.
- 'Object' is from 'dart:core'.
(Object?, int) testGetter2(E e) => e.getter; // Error
^" in e.{self::A::getter}{(core::Object?, core::Object?)} as{TypeError} (core::Object?, core::int);
static method testSetter(self::E /* erasure=self::C */ e) void {
e.{self::A::setter} = (core::Object? a, core::Object? b) (core::int, core::int) => (a as core::int, b as core::int);
e.{self::A::setter} = (core::Object? a, core::Object? b) (core::int, core::int) => invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:37:24: Error: A value of type '(Object?, int)' can't be returned from a function with return type '(int, int)'.
- 'Object' is from 'dart:core'.
e.setter = (a, b) => (a, b as int); // Error
^" in (a, b as core::int) as{TypeError} (core::int, core::int);
e.{self::A::setter} = (core::Object? a, core::Object? b) (core::int, core::int) => invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:38:24: Error: A value of type '(int, Object?)' can't be returned from a function with return type '(int, int)'.
- 'Object' is from 'dart:core'.
e.setter = (a, b) => (a as int, b); // Error
^" in (a as core::int, b) as{TypeError} (core::int, core::int);
}
static method testMethod5(self::E /* erasure=self::C */ e) dynamic
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:47:26: Error: The method 'unresolved' isn't defined for the class 'Object?'.
- 'Object' is from 'dart:core'.
Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
testMethod5(E e) => f.\$1.unresolved(); // Error
^^^^^^^^^^" in self::f.$1{core::Object?}{<unresolved>}.unresolved();
static method testMethod6(self::E /* erasure=self::C */ e) dynamic
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:48:26: Error: The method 'unresolved' isn't defined for the class 'Object?'.
- 'Object' is from 'dart:core'.
Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
testMethod6(E e) => f.\$2.unresolved(); // Error
^^^^^^^^^^" in self::f.$2{core::Object?}{<unresolved>}.unresolved();
static method testGetter5(self::E /* erasure=self::C */ e) dynamic
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:54:26: Error: The method 'unresolved' isn't defined for the class 'Object?'.
- 'Object' is from 'dart:core'.
Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
testGetter5(E e) => g.\$1.unresolved(); // Error
^^^^^^^^^^" in self::g.$1{core::Object?}{<unresolved>}.unresolved();
static method testGetter6(self::E /* erasure=self::C */ e) dynamic
return invalid-expression "pkg/front_end/testcases/extension_types/combined_member_signature.dart:55:26: Error: The method 'unresolved' isn't defined for the class 'Object?'.
- 'Object' is from 'dart:core'.
Try correcting the name to the name of an existing method, or defining a method named 'unresolved'.
testGetter6(E e) => g.\$2.unresolved(); // Error
^^^^^^^^^^" in self::g.$2{core::Object?}{<unresolved>}.unresolved();
static method method(self::E /* erasure=self::C */ e) void {
hoisted has-declared-initializer core::Object? a;
hoisted has-declared-initializer core::Object? b;
{
final synthesized(core::Object?, core::Object?) #0#0 = e.{self::A::method}(){() → (core::Object?, core::Object?)};
a = #0#0.$1{core::Object?};
b = #0#0.$2{core::Object?};
}
self::expect(42, a);
self::expect(87, b);
hoisted has-declared-initializer core::Object? c;
hoisted has-declared-initializer core::Object? d;
{
final synthesized(core::Object?, core::Object?) #1#0 = e.{self::A::getter}{(core::Object?, core::Object?)};
c = #1#0.$1{core::Object?};
d = #1#0.$2{core::Object?};
}
self::expect(42, c);
self::expect(87, d);
e.{self::A::setter} = (dynamic a, dynamic b) (core::int, core::int) => (42, 87);
}
static method main() dynamic {
self::method(self::E|constructor#(new self::C::•()));
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}