blob: 9a4d196686b55cb50984171a206ceb0b836aff29 [file] [log] [blame]
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() => throw '';
// ^^^^^^^^^
// 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:32: 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
return throw "";
}
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::•()
;
}
class C<T extends core::Object? = dynamic> extends core::Object { // from org-dartlang-testcase:///qualified_part.dart
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%> /* redirection-target: lib::C::b<self::C::b::T%>*/
return lib::C::b<self::C::b::T%>();
}
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}(){() dynamic};
new self::WithMixin::•().{self::_WithMixin&Supertype&Mixin::foo}(){() dynamic};
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%> {
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%> /* redirection-target: lib::C::a<lib::C::b::T%>*/
return new lib::C::a<lib::C::b::T%>();
}
class Supertype extends core::Object {
synthetic constructor •() lib::Supertype
: super core::Object::•()
;
method supertypeMethod() dynamic {
core::print("I'm supertypeMethod form lib.Supertype");
}
}
abstract class Mixin extends core::Object /*isMixinDeclaration*/ {
method foo() dynamic {
core::print("I'm Mixin.foo");
}
}