blob: 76a019ae1e8135eba5d04dc1e9b8f3cf0c33ac17 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/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/redirecting_factory.dart'.
// - 'FooBase' is from 'pkg/front_end/testcases/redirecting_factory.dart'.
// factory FooBase(int x) = Foo<Tf>;
// ^
//
import self as self;
import "dart:core" as core;
abstract class FooBase<Tf extends core::Object = dynamic> extends core::Object {
static field dynamic _redirecting# = <dynamic>[self::FooBase::•];
abstract get x() core::int;
static factory •<Tf extends core::Object = dynamic>(core::int x) self::FooBase<self::FooBase::•::Tf>
let dynamic #redirecting_factory = self::Foo::• in let self::FooBase::•::Tf #typeArg0 = null in invalid-expression;
}
abstract class Foo<T extends core::Object = dynamic> extends core::Object implements self::FooBase<dynamic> {
static field dynamic _redirecting# = <dynamic>[self::Foo::•];
static factory •<T extends core::Object = dynamic>(core::int x) self::Foo<self::Foo::•::T>
let dynamic #redirecting_factory = self::Bar::• in let core::String #typeArg0 = null in let self::Foo::•::T #typeArg1 = null in invalid-expression;
}
class Bar<Sb extends core::Object = dynamic, Tb extends core::Object = dynamic> extends core::Object implements self::Foo<self::Bar::Tb> {
field core::int x;
constructor •(core::int x) self::Bar<self::Bar::Sb, self::Bar::Tb>
: self::Bar::x = x, super core::Object::•() {
core::print("Bar<${self::Bar::Sb},${self::Bar::Tb}>");
}
}
class Builder<X extends core::Object = dynamic> extends core::Object {
synthetic constructor •() self::Builder<self::Builder::X>
: super core::Object::•()
;
method method() dynamic {
return new self::Bar::•<core::String, self::Builder::X>(4);
}
}
class SimpleCase<A extends core::Object = dynamic, B extends core::Object = dynamic> extends core::Object {
static field dynamic _redirecting# = <dynamic>[self::SimpleCase::•];
static factory •<A extends core::Object = dynamic, B extends core::Object = dynamic>() self::SimpleCase<self::SimpleCase::•::A, self::SimpleCase::•::B>
let dynamic #redirecting_factory = self::SimpleCaseImpl::• in let self::SimpleCase::•::A #typeArg0 = null in let self::SimpleCase::•::B #typeArg1 = null in invalid-expression;
}
class SimpleCaseImpl<Ai extends core::Object = dynamic, Bi extends core::Object = dynamic> extends core::Object implements self::SimpleCase<self::SimpleCaseImpl::Ai, self::SimpleCaseImpl::Bi> {
static field dynamic _redirecting# = <dynamic>[self::SimpleCaseImpl::•];
static factory •<Ai extends core::Object = dynamic, Bi extends core::Object = dynamic>() self::SimpleCaseImpl<self::SimpleCaseImpl::•::Ai, self::SimpleCaseImpl::•::Bi>
let dynamic #redirecting_factory = self::SimpleCaseImpl2::• in let self::SimpleCaseImpl::•::Ai #typeArg0 = null in let self::SimpleCaseImpl::•::Bi #typeArg1 = null in invalid-expression;
}
class SimpleCaseImpl2<Ai2 extends core::Object = dynamic, Bi2 extends core::Object = dynamic> extends core::Object implements self::SimpleCaseImpl<self::SimpleCaseImpl2::Ai2, self::SimpleCaseImpl2::Bi2> {
synthetic constructor •() self::SimpleCaseImpl2<self::SimpleCaseImpl2::Ai2, self::SimpleCaseImpl2::Bi2>
: super core::Object::•()
;
}
class Base<M extends core::Object = dynamic> extends core::Object {
synthetic constructor •() self::Base<self::Base::M>
: super core::Object::•()
;
}
class Mixin<M extends core::Object = dynamic> extends core::Object {
synthetic constructor •() self::Mixin<self::Mixin::M>
: super core::Object::•()
;
}
class Mix<M extends core::Object = dynamic> = self::Base<self::Mix::M> with self::Mixin<self::Mix::M> {
synthetic constructor •() self::Mix<self::Mix::M>
: super self::Base::•()
;
}
static method main() dynamic {
core::print(new self::Bar::•<core::String, core::double>(4).{self::FooBase::x});
new self::SimpleCaseImpl2::•<core::int, core::double>();
new self::Mix::•<core::double>();
}