blob: aab533cc38b4416e84023340b851cd42d559545a [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/pure_index_expressions.dart:26:15: Error: Operator '+' cannot be called on 'Class?' because it is potentially null.
// - 'Class' is from 'pkg/front_end/testcases/general/pure_index_expressions.dart'.
// map[this] += this;
// ^
//
// pkg/front_end/testcases/general/pure_index_expressions.dart:27:15: Error: Operator '+' cannot be called on 'Class?' because it is potentially null.
// - 'Class' is from 'pkg/front_end/testcases/general/pure_index_expressions.dart'.
// map[self] += self;
// ^
//
// pkg/front_end/testcases/general/pure_index_expressions.dart:42:19: Error: Operator '+' cannot be called on 'Class?' because it is potentially null.
// - 'Class' is from 'pkg/front_end/testcases/general/pure_index_expressions.dart'.
// v = map[this] += this;
// ^
//
// pkg/front_end/testcases/general/pure_index_expressions.dart:43:19: Error: Operator '+' cannot be called on 'Class?' because it is potentially null.
// - 'Class' is from 'pkg/front_end/testcases/general/pure_index_expressions.dart'.
// v = map[self] += self;
// ^
//
import self as self;
import "dart:core" as core;
class Class extends core::Object {
synthetic constructor •() → self::Class
: super core::Object::•()
;
operator [](self::Class cls) → self::Class
return new self::Class::•();
operator []=(self::Class cls, self::Class value) → void {}
operator +(self::Class cls) → self::Class
return cls;
method indexGetSetForEffect(core::Map<self::Class, self::Class> map) → void {
final self::Class self = this;
let final core::Map<self::Class, self::Class> #t1 = map in #t1.{core::Map::[]}(this){(core::Object?) → self::Class?} == null ?{self::Class?} #t1.{core::Map::[]=}(this, this){(self::Class, self::Class) → void} : null;
let final core::Map<self::Class, self::Class> #t2 = map in #t2.{core::Map::[]}(self){(core::Object?) → self::Class?} == null ?{self::Class?} #t2.{core::Map::[]=}(self, self){(self::Class, self::Class) → void} : null;
map.{core::Map::[]=}(this, this){(self::Class, self::Class) → void};
map.{core::Map::[]=}(self, self){(self::Class, self::Class) → void};
map.{core::Map::[]}(this){(core::Object?) → self::Class?};
map.{core::Map::[]}(self){(core::Object?) → self::Class?};
let final core::Map<self::Class, self::Class> #t3 = map in #t3.{core::Map::[]=}(this, invalid-expression "pkg/front_end/testcases/general/pure_index_expressions.dart:26:15: Error: Operator '+' cannot be called on 'Class?' because it is potentially null.
- 'Class' is from 'pkg/front_end/testcases/general/pure_index_expressions.dart'.
map[this] += this;
^" in #t3.{core::Map::[]}(this){(core::Object?) → self::Class?}.{self::Class::+}(this){(self::Class) → self::Class}){(self::Class, self::Class) → void};
let final core::Map<self::Class, self::Class> #t4 = map in #t4.{core::Map::[]=}(self, invalid-expression "pkg/front_end/testcases/general/pure_index_expressions.dart:27:15: Error: Operator '+' cannot be called on 'Class?' because it is potentially null.
- 'Class' is from 'pkg/front_end/testcases/general/pure_index_expressions.dart'.
map[self] += self;
^" in #t4.{core::Map::[]}(self){(core::Object?) → self::Class?}.{self::Class::+}(self){(self::Class) → self::Class}){(self::Class, self::Class) → void};
}
method indexGetSetForValue(core::Map<self::Class, self::Class> map) → void {
final self::Class self = this;
dynamic v;
v = let final core::Map<self::Class, self::Class> #t5 = map in let final self::Class? #t6 = #t5.{core::Map::[]}(this){(core::Object?) → self::Class?} in #t6 == null ?{self::Class} let final void #t7 = #t5.{core::Map::[]=}(this, this){(self::Class, self::Class) → void} in this : #t6{self::Class};
v = let final core::Map<self::Class, self::Class> #t8 = map in let final self::Class? #t9 = #t8.{core::Map::[]}(self){(core::Object?) → self::Class?} in #t9 == null ?{self::Class} let final void #t10 = #t8.{core::Map::[]=}(self, self){(self::Class, self::Class) → void} in self : #t9{self::Class};
v = let final core::Map<self::Class, self::Class> #t11 = map in let final void #t12 = #t11.{core::Map::[]=}(this, this){(self::Class, self::Class) → void} in this;
v = let final core::Map<self::Class, self::Class> #t13 = map in let final void #t14 = #t13.{core::Map::[]=}(self, self){(self::Class, self::Class) → void} in self;
v = map.{core::Map::[]}(this){(core::Object?) → self::Class?};
v = map.{core::Map::[]}(self){(core::Object?) → self::Class?};
v = let final core::Map<self::Class, self::Class> #t15 = map in let final self::Class #t16 = invalid-expression "pkg/front_end/testcases/general/pure_index_expressions.dart:42:19: Error: Operator '+' cannot be called on 'Class?' because it is potentially null.
- 'Class' is from 'pkg/front_end/testcases/general/pure_index_expressions.dart'.
v = map[this] += this;
^" in #t15.{core::Map::[]}(this){(core::Object?) → self::Class?}.{self::Class::+}(this){(self::Class) → self::Class} in let final void #t17 = #t15.{core::Map::[]=}(this, #t16){(self::Class, self::Class) → void} in #t16;
v = let final core::Map<self::Class, self::Class> #t18 = map in let final self::Class #t19 = invalid-expression "pkg/front_end/testcases/general/pure_index_expressions.dart:43:19: Error: Operator '+' cannot be called on 'Class?' because it is potentially null.
- 'Class' is from 'pkg/front_end/testcases/general/pure_index_expressions.dart'.
v = map[self] += self;
^" in #t18.{core::Map::[]}(self){(core::Object?) → self::Class?}.{self::Class::+}(self){(self::Class) → self::Class} in let final void #t20 = #t18.{core::Map::[]=}(self, #t19){(self::Class, self::Class) → void} in #t19;
}
method implicitExtensionGetSetForEffect(core::int i) → void {
final self::Class self = this;
let final core::int #t21 = i in self::Extension|[](#t21, this) == null ?{self::Class?} self::Extension|[]=(#t21, this, this) : null;
let final core::int #t22 = i in self::Extension|[](#t22, self) == null ?{self::Class?} self::Extension|[]=(#t22, self, self) : null;
self::Extension|[]=(i, this, this);
self::Extension|[]=(i, self, self);
self::Extension|[](i, this);
self::Extension|[](i, self);
let final core::int #t23 = i in self::Extension|[]=(#t23, this, self::Extension|[](#t23, this).{self::Class::+}(this){(self::Class) → self::Class});
let final core::int #t24 = i in self::Extension|[]=(#t24, self, self::Extension|[](#t24, self).{self::Class::+}(self){(self::Class) → self::Class});
}
method implicitExtensionGetSetForValue(core::int i) → void {
final self::Class self = this;
dynamic v;
v = let final core::int #t25 = i in let final self::Class #t26 = self::Extension|[](#t25, this) in #t26 == null ?{self::Class} let final void #t27 = self::Extension|[]=(#t25, this, this) in this : #t26;
v = let final core::int #t28 = i in let final self::Class #t29 = self::Extension|[](#t28, self) in #t29 == null ?{self::Class} let final void #t30 = self::Extension|[]=(#t28, self, self) in self : #t29;
v = let final core::int #t31 = i in let final void #t32 = self::Extension|[]=(#t31, this, this) in this;
v = let final core::int #t33 = i in let final void #t34 = self::Extension|[]=(#t33, self, self) in self;
v = self::Extension|[](i, this);
v = self::Extension|[](i, self);
v = let final core::int #t35 = i in let final self::Class #t36 = self::Extension|[](#t35, this).{self::Class::+}(this){(self::Class) → self::Class} in let final void #t37 = self::Extension|[]=(#t35, this, #t36) in #t36;
v = let final core::int #t38 = i in let final self::Class #t39 = self::Extension|[](#t38, self).{self::Class::+}(self){(self::Class) → self::Class} in let final void #t40 = self::Extension|[]=(#t38, self, #t39) in #t39;
}
method explicitExtensionGetSetForEffect(core::int i) → void {
final self::Class self = this;
let final core::int #t41 = i in self::Extension|[](#t41, this) == null ?{self::Class?} self::Extension|[]=(#t41, this, this) : null;
let final core::int #t42 = i in self::Extension|[](#t42, self) == null ?{self::Class?} self::Extension|[]=(#t42, self, self) : null;
self::Extension|[]=(i, this, this);
self::Extension|[]=(i, self, self);
self::Extension|[](i, this);
self::Extension|[](i, self);
let final core::int #t43 = i in self::Extension|[]=(#t43, this, self::Extension|[](#t43, this).{self::Class::+}(this){(self::Class) → self::Class});
let final core::int #t44 = i in self::Extension|[]=(#t44, self, self::Extension|[](#t44, self).{self::Class::+}(self){(self::Class) → self::Class});
}
method explicitExtensionGetSetForValue(core::int i) → void {
final self::Class self = this;
dynamic v;
v = let final core::int #t45 = i in let final self::Class #t46 = self::Extension|[](#t45, this) in #t46 == null ?{self::Class} let final void #t47 = self::Extension|[]=(#t45, this, this) in this : #t46;
v = let final core::int #t48 = i in let final self::Class #t49 = self::Extension|[](#t48, self) in #t49 == null ?{self::Class} let final void #t50 = self::Extension|[]=(#t48, self, self) in self : #t49;
v = let final core::int #t51 = i in let final void #t52 = self::Extension|[]=(#t51, this, this) in this;
v = let final core::int #t53 = i in let final void #t54 = self::Extension|[]=(#t53, self, self) in self;
v = self::Extension|[](i, this);
v = self::Extension|[](i, self);
v = let final core::int #t55 = i in let final self::Class #t56 = self::Extension|[](#t55, this).{self::Class::+}(this){(self::Class) → self::Class} in let final void #t57 = self::Extension|[]=(#t55, this, #t56) in #t56;
v = let final core::int #t58 = i in let final self::Class #t59 = self::Extension|[](#t58, self).{self::Class::+}(self){(self::Class) → self::Class} in let final void #t60 = self::Extension|[]=(#t58, self, #t59) in #t59;
}
}
class Subclass extends self::Class {
synthetic constructor •() → self::Subclass
: super self::Class::•()
;
method superIndexGetSetForEffect() → void {
final self::Class self = this;
super.{self::Class::[]}(this) == null ?{self::Class?} super.{self::Class::[]=}(this, this) : null;
super.{self::Class::[]}(self) == null ?{self::Class?} super.{self::Class::[]=}(self, self) : null;
super.{self::Class::[]=}(this, this);
super.{self::Class::[]=}(self, self);
super.{self::Class::[]}(this);
super.{self::Class::[]}(self);
super.{self::Class::[]=}(this, super.{self::Class::[]}(this).{self::Class::+}(this){(self::Class) → self::Class});
super.{self::Class::[]=}(self, super.{self::Class::[]}(self).{self::Class::+}(self){(self::Class) → self::Class});
}
method superIndexGetSetForValue() → void {
final self::Class self = this;
dynamic v;
v = let final self::Class #t61 = super.{self::Class::[]}(this) in #t61 == null ?{self::Class} let final void #t62 = super.{self::Class::[]=}(this, this) in this : #t61;
v = let final self::Class #t63 = super.{self::Class::[]}(self) in #t63 == null ?{self::Class} let final void #t64 = super.{self::Class::[]=}(self, self) in self : #t63;
v = let final void #t65 = super.{self::Class::[]=}(this, this) in this;
v = let final void #t66 = super.{self::Class::[]=}(self, self) in self;
v = super.{self::Class::[]}(this);
v = super.{self::Class::[]}(self);
v = let final self::Class #t67 = super.{self::Class::[]}(this).{self::Class::+}(this){(self::Class) → self::Class} in let final void #t68 = super.{self::Class::[]=}(this, #t67) in #t67;
v = let final self::Class #t69 = super.{self::Class::[]}(self).{self::Class::+}(self){(self::Class) → self::Class} in let final void #t70 = super.{self::Class::[]=}(self, #t69) in #t69;
}
}
class Class2 extends core::Object {
synthetic constructor •() → self::Class2
: super core::Object::•()
;
operator +(self::Class2 cls) → self::Class2
return cls;
method implicitExtensionGetSetForEffect() → void {
final self::Class2 self = this;
self::Extension2|[](this, this) == null ?{self::Class2?} self::Extension2|[]=(this, this, this) : null;
self::Extension2|[](self, self) == null ?{self::Class2?} self::Extension2|[]=(self, self, self) : null;
self::Extension2|[]=(this, this, this);
self::Extension2|[]=(self, self, self);
self::Extension2|[](this, this);
self::Extension2|[](self, self);
self::Extension2|[]=(this, this, self::Extension2|[](this, this).{self::Class2::+}(this){(self::Class2) → self::Class2});
self::Extension2|[]=(self, self, self::Extension2|[](self, self).{self::Class2::+}(self){(self::Class2) → self::Class2});
}
method implicitExtensionGetSetForValue() → void {
final self::Class2 self = this;
dynamic v;
v = let final self::Class2 #t71 = self::Extension2|[](this, this) in #t71 == null ?{self::Class2} let final void #t72 = self::Extension2|[]=(this, this, this) in this : #t71;
v = let final self::Class2 #t73 = self::Extension2|[](self, self) in #t73 == null ?{self::Class2} let final void #t74 = self::Extension2|[]=(self, self, self) in self : #t73;
v = let final void #t75 = self::Extension2|[]=(this, this, this) in this;
v = let final void #t76 = self::Extension2|[]=(self, self, self) in self;
v = self::Extension2|[](this, this);
v = self::Extension2|[](self, self);
v = let final self::Class2 #t77 = self::Extension2|[](this, this).{self::Class2::+}(this){(self::Class2) → self::Class2} in let final void #t78 = self::Extension2|[]=(this, this, #t77) in #t77;
v = let final self::Class2 #t79 = self::Extension2|[](self, self).{self::Class2::+}(self){(self::Class2) → self::Class2} in let final void #t80 = self::Extension2|[]=(self, self, #t79) in #t79;
}
method explicitExtensionGetSetForEffect() → void {
final self::Class2 self = this;
self::Extension2|[](this, this) == null ?{self::Class2?} self::Extension2|[]=(this, this, this) : null;
self::Extension2|[](self, self) == null ?{self::Class2?} self::Extension2|[]=(self, self, self) : null;
self::Extension2|[]=(this, this, this);
self::Extension2|[]=(self, self, self);
self::Extension2|[](this, this);
self::Extension2|[](self, self);
self::Extension2|[]=(this, this, self::Extension2|[](this, this).{self::Class2::+}(this){(self::Class2) → self::Class2});
self::Extension2|[]=(self, self, self::Extension2|[](self, self).{self::Class2::+}(self){(self::Class2) → self::Class2});
}
method explicitExtensionGetSetForValue() → void {
final self::Class2 self = this;
dynamic v;
v = let final self::Class2 #t81 = self::Extension2|[](this, this) in #t81 == null ?{self::Class2} let final void #t82 = self::Extension2|[]=(this, this, this) in this : #t81;
v = let final self::Class2 #t83 = self::Extension2|[](self, self) in #t83 == null ?{self::Class2} let final void #t84 = self::Extension2|[]=(self, self, self) in self : #t83;
v = let final void #t85 = self::Extension2|[]=(this, this, this) in this;
v = let final void #t86 = self::Extension2|[]=(self, self, self) in self;
v = self::Extension2|[](this, this);
v = self::Extension2|[](self, self);
v = let final self::Class2 #t87 = self::Extension2|[](this, this).{self::Class2::+}(this){(self::Class2) → self::Class2} in let final void #t88 = self::Extension2|[]=(this, this, #t87) in #t87;
v = let final self::Class2 #t89 = self::Extension2|[](self, self).{self::Class2::+}(self){(self::Class2) → self::Class2} in let final void #t90 = self::Extension2|[]=(self, self, #t89) in #t89;
}
}
extension Extension on core::int {
operator [] = self::Extension|[];
operator []= = self::Extension|[]=;
}
extension Extension2 on self::Class2 {
operator [] = self::Extension2|[];
operator []= = self::Extension2|[]=;
}
static extension-member method Extension|[](lowered final core::int #this, self::Class cls) → self::Class
return new self::Class::•();
static extension-member method Extension|[]=(lowered final core::int #this, self::Class cls, self::Class value) → void {}
static extension-member method Extension2|[](lowered final self::Class2 #this, self::Class2 cls) → self::Class2
return new self::Class2::•();
static extension-member method Extension2|[]=(lowered final self::Class2 #this, self::Class2 cls, self::Class2 value) → void {}
static method main() → dynamic {}