19ab1fd800
Closes #43261 Closes #45423 Change-Id: Ia22975f9cd8fd3835b0feda82c6d5310098b605c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193501 Reviewed-by: Dmitry Stefantsov <dmitryas@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
163 lines
9.5 KiB
Plaintext
163 lines
9.5 KiB
Plaintext
library test.qualified.main;
|
|
//
|
|
// Problems in library:
|
|
//
|
|
// pkg/front_end/testcases/general/qualified.dart:13:11: Error: The name of a constructor must match the name of the enclosing class.
|
|
// factory WrongName() {}
|
|
// ^^^^^^^^^
|
|
// pkg/front_end/testcases/general/qualified.dart:11:7: Context: The name of the enclosing class is 'Bad'.
|
|
// class Bad extends lib.Missing {
|
|
// ^^^
|
|
//
|
|
// 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' which is an alias of 'void Function()' can't be used as supertype.
|
|
// class IllegalSupertype extends lib.VoidFunction {}
|
|
// ^
|
|
// pkg/front_end/testcases/general/qualified_lib.dart:27:9: Context: The issue arises via this type alias.
|
|
// typedef VoidFunction = void Function();
|
|
// ^
|
|
//
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
import "qualified_lib.dart" as lib;
|
|
|
|
import "org-dartlang-testcase:///qualified_lib.dart" as lib;
|
|
|
|
part qualified_part.dart;
|
|
class Bad extends core::Object {
|
|
method method() → invalid-type {}
|
|
static factory WrongName() → self::Bad* {}
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
|
|
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
|
|
abstract member-signature method toString() → core::String*; -> core::Object::toString
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|
|
abstract class _WithMixin&Supertype&Mixin = lib::Supertype with lib::Mixin /*isAnonymousMixin*/ {
|
|
synthetic constructor •() → self::_WithMixin&Supertype&Mixin*
|
|
: super lib::Supertype::•()
|
|
;
|
|
mixin-super-stub method foo() → dynamic
|
|
return super.{lib::Mixin::foo}();
|
|
}
|
|
class WithMixin extends self::_WithMixin&Supertype&Mixin {
|
|
synthetic constructor •() → self::WithMixin*
|
|
: super self::_WithMixin&Supertype&Mixin::•()
|
|
;
|
|
}
|
|
class IllegalSupertype extends core::Object {
|
|
synthetic constructor •() → self::IllegalSupertype*
|
|
: super core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
|
|
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
|
|
abstract member-signature method toString() → core::String*; -> core::Object::toString
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|
|
class C<T extends core::Object* = dynamic> extends core::Object { // from org-dartlang-testcase:///qualified_part.dart
|
|
static final field dynamic _redirecting# = <dynamic>[self::C::b];
|
|
constructor •() → self::C<self::C::T*>*
|
|
: super core::Object::•()
|
|
;
|
|
constructor a() → self::C<self::C::T*>*
|
|
: super core::Object::•()
|
|
;
|
|
static factory b<T extends core::Object* = dynamic>() → self::C<self::C::b::T*>*
|
|
let dynamic #redirecting_factory = lib::C::b in let self::C::b::T* #typeArg0 = null in invalid-expression;
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
|
|
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
|
|
abstract member-signature method toString() → core::String*; -> core::Object::toString
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|
|
static method main() → dynamic {
|
|
new self::C::•<core::String*>();
|
|
new self::C::a<core::String*>();
|
|
new lib::C::a<core::String*>();
|
|
new lib::C::•<core::String*>();
|
|
new lib::C::a<core::String*>();
|
|
new lib::C::a<core::String*>();
|
|
new self::WithMixin::•().{lib::Supertype::supertypeMethod}();
|
|
new self::WithMixin::•().{self::_WithMixin&Supertype&Mixin::foo}();
|
|
new self::IllegalSupertype::•();
|
|
}
|
|
|
|
library test.qualified.lib;
|
|
import self as lib;
|
|
import "dart:core" as core;
|
|
import "qualified.dart" as self;
|
|
|
|
import "org-dartlang-testcase:///qualified.dart" as main;
|
|
|
|
typedef VoidFunction = () →* void;
|
|
class C<T extends core::Object* = dynamic> extends self::C<lib::C::T*> {
|
|
static final field dynamic _redirecting# = <dynamic>[lib::C::b];
|
|
constructor •() → lib::C<lib::C::T*>*
|
|
: super self::C::•()
|
|
;
|
|
constructor a() → lib::C<lib::C::T*>*
|
|
: super self::C::•()
|
|
;
|
|
static factory b<T extends core::Object* = dynamic>() → lib::C<lib::C::b::T*>*
|
|
let dynamic #redirecting_factory = lib::C::a in let lib::C::b::T* #typeArg0 = null in invalid-expression;
|
|
}
|
|
class Supertype extends core::Object {
|
|
synthetic constructor •() → lib::Supertype*
|
|
: super core::Object::•()
|
|
;
|
|
method supertypeMethod() → dynamic {
|
|
core::print("I'm supertypeMethod form lib.Supertype");
|
|
}
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
|
|
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
|
|
abstract member-signature method toString() → core::String*; -> core::Object::toString
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|
|
abstract class Mixin extends core::Object {
|
|
synthetic constructor •() → lib::Mixin*
|
|
: super core::Object::•()
|
|
;
|
|
method foo() → dynamic {
|
|
core::print("I'm Mixin.foo");
|
|
}
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
|
|
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
|
|
abstract member-signature method toString() → core::String*; -> core::Object::toString
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|