blob: 447bd5c0d6519eb1eddf871f9e40202b126e6539 [file] [log] [blame]
library test;
import self as self;
import "dart:core" as core;
typedef F<T extends core::Object = dynamic> = (T) void;
class B<T extends core::Object = dynamic, U extends (self::B::T) void = (dynamic) void> extends core::Object {
synthetic constructor •() void
: super core::Object::•()
;
operator +(dynamic other) self::B<self::B::T, (self::B::T) void>
return null;
}
class C extends core::Object {
field self::B<core::num, (core::num) void> x = null;
static field self::B<core::num, (core::num) void> y = null;
synthetic constructor •() void
: super core::Object::•()
;
operator [](core::int i) self::B<core::num, (core::num) void>
return null;
operator []=(core::int i, self::B<core::num, (core::num) void> v) void {}
}
static method test1(self::B<core::num, (core::num) void> b) void {
b = b.{self::B::+}(1) as{TypeError} self::B<core::num, (core::num) void>;
self::B<core::num, (core::num) void> x = b = b.{self::B::+}(2) as{TypeError} self::B<core::num, (core::num) void>;
}
static method test2(self::C c) void {
let final self::C #t1 = c in let final core::int #t2 = 0 in #t1.{self::C::[]=}(#t2, #t1.{self::C::[]}(#t2).{self::B::+}(1) as{TypeError} self::B<core::num, (core::num) → void>);
self::B<core::num, (core::num) void> x = let final self::C #t3 = c in let final core::int #t4 = 0 in let final self::B<core::num, (core::num) → void> #t5 = #t3.{self::C::[]}(#t4).{self::B::+}(2) as{TypeError} self::B<core::num, (core::num) → void> in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5) in #t5;
}
static method test3(self::C c) void {
let final self::C #t7 = c in #t7.{self::C::x} = #t7.{self::C::x}.{self::B::+}(1) as{TypeError} self::B<core::num, (core::num) → void>;
self::B<core::num, (core::num) void> x = let final self::C #t8 = c in #t8.{self::C::x} = #t8.{self::C::x}.{self::B::+}(2) as{TypeError} self::B<core::num, (core::num) → void>;
}
static method test4(self::C c) void {
self::C::y = self::C::y.{self::B::+}(1) as{TypeError} self::B<core::num, (core::num) void>;
self::B<core::num, (core::num) void> x = self::C::y = self::C::y.{self::B::+}(2) as{TypeError} self::B<core::num, (core::num) void>;
}
static method main() void {}