blob: d74b9fcf146f25cf64229ddd82aec82e4f98d9a8 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/optional.dart:47:21: Error: The argument type 'InvalidListener' can't be assigned to the parameter type 'Listener'.
// - 'InvalidListener' is from 'pkg/front_end/testcases/optional.dart'.
// - 'Listener' is from 'pkg/front_end/testcases/optional.dart'.
// Try changing the type of the parameter, or casting the argument to 'Listener'.
// extern.listen(new InvalidListener());
// ^
//
// pkg/front_end/testcases/optional.dart:49:28: Error: Too few positional arguments: 1 required, 0 given.
// var nothing1 = foo.method();
// ^
//
// pkg/front_end/testcases/optional.dart:50:28: Error: Too many positional arguments: 3 allowed, but 4 found.
// Try removing the extra positional arguments.
// var nothing2 = foo.method(1, 2, 3, 4);
// ^
//
// pkg/front_end/testcases/optional.dart:51:39: Error: Too few positional arguments: 1 required, 0 given.
// var nothing3 = extern.externalMethod();
// ^
//
// pkg/front_end/testcases/optional.dart:52:39: Error: Too many positional arguments: 3 allowed, but 4 found.
// Try removing the extra positional arguments.
// var nothing4 = extern.externalMethod(1, 2, 3, 4);
// ^
//
import self as self;
import "dart:core" as core;
class Foo extends core::Object {
synthetic constructor •() self::Foo
: super core::Object::•()
;
method method(dynamic x, [dynamic y = null, dynamic z = null]) dynamic {
return "string";
}
}
abstract class External extends core::Object {
synthetic constructor •() self::External
: super core::Object::•()
;
abstract method externalMethod(core::int x, [core::int y = null, core::int z = null]) core::String;
abstract method listen(self::Listener listener) void;
}
abstract class Listener extends core::Object {
synthetic constructor •() self::Listener
: super core::Object::•()
;
abstract method event(core::String input, [core::int x = null, core::int y = null]) void;
}
class TestListener extends self::Listener {
synthetic constructor •() self::TestListener
: super self::Listener::•()
;
method event(core::String input, [core::int x = null, core::int y = null]) void {}
}
class ExtendedListener extends self::Listener {
synthetic constructor •() self::ExtendedListener
: super self::Listener::•()
;
method event(core::String input, [core::int x = null, core::int y = null, dynamic z = null]) void {}
}
class InvalidListener extends core::Object {
synthetic constructor •() self::InvalidListener
: super core::Object::•()
;
method event(dynamic input, [dynamic x = null]) void {}
}
external static abstract method createExternal() self::External;
static method main() dynamic {
self::Foo foo = new self::Foo::•();
dynamic string1 = foo.{self::Foo::method}(1);
dynamic string2 = foo.{self::Foo::method}(1, 2);
dynamic string3 = foo.{self::Foo::method}(1, 2, 3);
self::External extern = self::createExternal();
core::String string4 = extern.{self::External::externalMethod}(1);
core::String string5 = extern.{self::External::externalMethod}(1, 2);
core::String string6 = extern.{self::External::externalMethod}(1, 2, 3);
extern.{self::External::listen}(new self::TestListener::•());
extern.{self::External::listen}(new self::ExtendedListener::•());
extern.{self::External::listen}(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/optional.dart:47:21: Error: The argument type 'InvalidListener' can't be assigned to the parameter type 'Listener'.
- 'InvalidListener' is from 'pkg/front_end/testcases/optional.dart'.
- 'Listener' is from 'pkg/front_end/testcases/optional.dart'.
Try changing the type of the parameter, or casting the argument to 'Listener'.
extern.listen(new InvalidListener());
^" in new self::InvalidListener::•() as{TypeError} self::Listener);
dynamic nothing1 = foo.{self::Foo::method}();
dynamic nothing2 = foo.{self::Foo::method}(1, 2, 3, 4);
core::String nothing3 = extern.{self::External::externalMethod}();
core::String nothing4 = extern.{self::External::externalMethod}(1, 2, 3, 4);
}