blob: f1cf2f09f3f1e0eb22f7c08806f0fa7adf1e437a [file] [log] [blame]
library test;
import self as self;
import "dart:core" as core;
static method test() void {
{
function f<S extends core::Object = dynamic>(core::int x) core::String
return null;
dynamic v = f;
v = <T extends core::Object = dynamic>(core::int x) dynamic => null;
v = <T extends core::Object = dynamic>(core::int x) dynamic => "hello";
v = <T extends core::Object = dynamic>(core::String x) dynamic => "hello";
v = <T extends core::Object = dynamic>(core::int x) dynamic => 3;
v = <T extends core::Object = dynamic>(core::int x) dynamic {
return 3;
};
}
{
function f<S extends core::Object = dynamic>(core::int x) core::String
return null;
dynamic v = f;
v = <T extends core::Object = dynamic>(dynamic x) dynamic => null;
v = <T extends core::Object = dynamic>(dynamic x) dynamic => "hello";
v = <T extends core::Object = dynamic>(dynamic x) dynamic => 3;
v = <T extends core::Object = dynamic>(dynamic x) dynamic {
return 3;
};
v = <T extends core::Object = dynamic>(dynamic x) dynamic {
return x;
};
}
{
function f<S extends core::Object = dynamic>(core::int x) core::List<core::String>
return null;
dynamic v = f;
v = <T extends core::Object = dynamic>(core::int x) dynamic => null;
v = <T extends core::Object = dynamic>(core::int x) dynamic => <dynamic>["hello"];
v = <T extends core::Object = dynamic>(core::String x) dynamic => <dynamic>["hello"];
v = <T extends core::Object = dynamic>(core::int x) dynamic => <dynamic>[3];
v = <T extends core::Object = dynamic>(core::int x) dynamic {
return <dynamic>[3];
};
}
{
function int2int<S extends core::Object = dynamic>(core::int x) core::int
return null;
function int2String<T extends core::Object = dynamic>(core::int x) core::String
return null;
function string2String<T extends core::Object = dynamic>(core::String x) core::String
return null;
dynamic x = int2int;
x = <T extends core::Object = dynamic>(dynamic x) dynamic => x;
x = <T extends core::Object = dynamic>(dynamic x) dynamic => x.+(1);
dynamic y = int2String;
y = <T extends core::Object = dynamic>(dynamic x) dynamic => x;
y = <T extends core::Object = dynamic>(dynamic x) dynamic => x.substring(3);
dynamic z = string2String;
z = <T extends core::Object = dynamic>(dynamic x) dynamic => x.substring(3);
}
}
static method main() dynamic {}