| 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 <T extends core::Object = dynamic>(core::int) → self::Foo<self::Foo::•::T> #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<BottomType> #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 <Ai extends core::Object = dynamic, Bi extends core::Object = dynamic>() → self::SimpleCaseImpl<self::SimpleCaseImpl::•::Ai, self::SimpleCaseImpl::•::Bi> #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<BottomType> #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> extends self::Base<self::Mix::M> implements 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>(); |
| } |