fac280bd7e
Part of https://github.com/dart-lang/sdk/issues/61572 Change-Id: I8a9cb883181a584ceac9aef6a863e135474026eb Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/495960 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
541 lines
18 KiB
Plaintext
541 lines
18 KiB
Plaintext
library;
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
class A extends core::Object {
|
|
field self::A a/* scope=[
|
|
#ctx1: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ = new self::A::•();
|
|
field self::A? aNull = null;
|
|
field core::int n/* scope=[
|
|
#ctx2: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ = 0;
|
|
field core::Object? field = null;
|
|
synthetic constructor •() → self::A
|
|
: super core::Object::•()
|
|
;
|
|
method method() → dynamic/* scope=[
|
|
#ctx3: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {}
|
|
method call() → core::Object?/* scope=[
|
|
#ctx4: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */
|
|
return null;
|
|
operator [](positional-parameter index) → core::Object?/* scope=[
|
|
#ctx5: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
positional-parameter index;
|
|
]),
|
|
] */
|
|
return null;
|
|
operator []=(positional-parameter index, positional-parameter value) → void/* scope=[
|
|
#ctx6: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
positional-parameter index;
|
|
positional-parameter value;
|
|
]),
|
|
] */ {}
|
|
operator +(positional-parameter other) → self::A/* scope=[
|
|
#ctx7: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
positional-parameter other;
|
|
]),
|
|
] */
|
|
return this-variable;
|
|
operator unary-() → self::A/* scope=[
|
|
#ctx8: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */
|
|
return this-variable;
|
|
method notCapturedMethodCall() → dynamic/* scope=[
|
|
#ctx9: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::method}(){() → dynamic};
|
|
}
|
|
method notCapturedExpression() → dynamic/* scope=[
|
|
#ctx10: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable;
|
|
}
|
|
method notCapturedPropertyGet() → dynamic/* scope=[
|
|
#ctx11: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::field}{core::Object?};
|
|
}
|
|
method notCapturedPropertySet() → dynamic/* scope=[
|
|
#ctx12: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::field} = null;
|
|
}
|
|
method notCapturedCall() → dynamic/* scope=[
|
|
#ctx13: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::call}(){() → core::Object?};
|
|
}
|
|
method notCapturedIndexGet() → dynamic/* scope=[
|
|
#ctx14: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::[]}(0){(core::int) → core::Object?};
|
|
}
|
|
method notCapturedIndexSet() → dynamic/* scope=[
|
|
#ctx15: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::[]=}(0, null){(core::int, core::Object?) → void};
|
|
}
|
|
method notCapturedUnary() → dynamic/* scope=[
|
|
#ctx16: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::unary-}(){() → self::A};
|
|
}
|
|
method notCapturedBinary() → dynamic/* scope=[
|
|
#ctx17: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::+}(this-variable){(self::A) → self::A};
|
|
}
|
|
method notCapturedPropertyCall() → dynamic/* scope=[
|
|
#ctx18: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::a}{self::A}.{self::A::call}(){() → core::Object?};
|
|
}
|
|
method notCapturedPropertyPrefix() → dynamic/* scope=[
|
|
#ctx19: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::n} = this-variable.{self::A::n}{core::int}.{core::num::+}(1){(core::num) → core::int};
|
|
}
|
|
method notCapturedPropertyPostfix() → dynamic/* scope=[
|
|
#ctx20: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::n} = this-variable.{self::A::n}{core::int}.{core::num::+}(1){(core::num) → core::int};
|
|
}
|
|
method notCapturedPropertyIndexGet() → dynamic/* scope=[
|
|
#ctx21: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::a}{self::A}.{self::A::[]}(0){(core::int) → core::Object?};
|
|
}
|
|
method notCapturedPropertyIndexSet() → dynamic/* scope=[
|
|
#ctx22: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::a}{self::A}.{self::A::[]=}(0, null){(core::int, core::Object?) → void};
|
|
}
|
|
method notCapturedPropertyIfNullAssignment() → dynamic/* scope=[
|
|
#ctx23: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::aNull}{self::A?} == null ?{self::A?} this-variable.{self::A::aNull} = new self::A::•() : null;
|
|
}
|
|
method notCapturedPropertyCompoundAssignment() → dynamic/* scope=[
|
|
#ctx24: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
this-variable.{self::A::a} = this-variable.{self::A::a}{self::A}.{self::A::+}(new self::A::•()){(self::A) → self::A};
|
|
}
|
|
method capturedMethodCall() → dynamic/* scope=[
|
|
#ctx25: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx25 */ → dynamic => this-variable.{self::A::method}(){() → dynamic};
|
|
}
|
|
method capturedExpression() → dynamic/* scope=[
|
|
#ctx26: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx26 */ → self::A => this-variable;
|
|
}
|
|
method capturedPropertyGet() → dynamic/* scope=[
|
|
#ctx27: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx27 */ → core::Object? => this-variable.{self::A::field}{core::Object?};
|
|
}
|
|
method capturedPropertySet() → dynamic/* scope=[
|
|
#ctx28: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx28 */ → Null {
|
|
this-variable.{self::A::field} = null;
|
|
};
|
|
}
|
|
method capturedCall() → dynamic/* scope=[
|
|
#ctx29: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx29 */ → core::Object? => this-variable.{self::A::call}(){() → core::Object?};
|
|
}
|
|
method capturedIndexGet() → dynamic/* scope=[
|
|
#ctx30: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx30 */ → core::Object? => this-variable.{self::A::[]}(0){(core::int) → core::Object?};
|
|
}
|
|
method capturedIndexSet() → dynamic/* scope=[
|
|
#ctx31: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx31 */ → Null {
|
|
this-variable.{self::A::[]=}(0, null){(core::int, core::Object?) → void};
|
|
};
|
|
}
|
|
method capturedUnary() → dynamic/* scope=[
|
|
#ctx32: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx32 */ → self::A => this-variable.{self::A::unary-}(){() → self::A};
|
|
}
|
|
method capturedBinary() → dynamic/* scope=[
|
|
#ctx33: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx33 */ → self::A => this-variable.{self::A::+}(this-variable){(self::A) → self::A};
|
|
}
|
|
method capturedPropertyCall() → dynamic/* scope=[
|
|
#ctx34: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx34 */ → core::Object? => this-variable.{self::A::a}{self::A}.{self::A::call}(){() → core::Object?};
|
|
}
|
|
method capturedPropertyPrefix() → dynamic/* scope=[
|
|
#ctx35: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx35 */ → core::int => this-variable.{self::A::n} = this-variable.{self::A::n}{core::int}.{core::num::+}(1){(core::num) → core::int};
|
|
}
|
|
method capturedPropertyPostfix() → dynamic/* scope=[
|
|
#ctx36: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx36 */ → core::int => let final core::int #t1 = this-variable.{self::A::n}{core::int} in let final void #t2 = this-variable.{self::A::n} = #t1.{core::num::+}(1){(core::num) → core::int} in #t1;
|
|
}
|
|
method capturedPropertyIndexGet() → dynamic/* scope=[
|
|
#ctx37: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx37 */ → core::Object? => this-variable.{self::A::a}{self::A}.{self::A::[]}(0){(core::int) → core::Object?};
|
|
}
|
|
method capturedPropertyIndexSet() → dynamic/* scope=[
|
|
#ctx38: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx38 */ → Null => let final self::A #t3 = this-variable.{self::A::a}{self::A} in let final core::int #t4 = 0 in let final has-declared-initializer Null #t5 = null in let final void #t6 = #t3.{self::A::[]=}(#t4, #t5){(core::int, core::Object?) → void} in #t5;
|
|
}
|
|
method capturedPropertyIfNullAssignment() → dynamic/* scope=[
|
|
#ctx39: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx39 */ → self::A => let final self::A? #t7 = this-variable.{self::A::aNull}{self::A?} in #t7 == null ?{self::A} this-variable.{self::A::aNull} = new self::A::•() : #t7{self::A};
|
|
}
|
|
method capturedPropertyCompoundAssignment() → dynamic/* scope=[
|
|
#ctx40: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx40 */ → self::A => this-variable.{self::A::a} = this-variable.{self::A::a}{self::A}.{self::A::+}(new self::A::•()){(self::A) → self::A};
|
|
}
|
|
}
|
|
class B extends self::A {
|
|
synthetic constructor •() → self::B
|
|
: super self::A::•()
|
|
;
|
|
@#C1
|
|
method notCapturedMethodCall() → dynamic/* scope=[
|
|
#ctx41: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::method}();
|
|
}
|
|
@#C1
|
|
method notCapturedPropertyGet() → dynamic/* scope=[
|
|
#ctx42: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::field};
|
|
}
|
|
@#C1
|
|
method notCapturedPropertySet() → dynamic/* scope=[
|
|
#ctx43: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::field} = null;
|
|
}
|
|
@#C1
|
|
method notCapturedCall() → dynamic/* scope=[
|
|
#ctx44: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::call}();
|
|
}
|
|
@#C1
|
|
method notCapturedIndexGet() → dynamic/* scope=[
|
|
#ctx45: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::[]}(0);
|
|
}
|
|
@#C1
|
|
method notCapturedIndexSet() → dynamic/* scope=[
|
|
#ctx46: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::[]=}(0, null);
|
|
}
|
|
@#C1
|
|
method notCapturedUnary() → dynamic/* scope=[
|
|
#ctx47: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::unary-}();
|
|
}
|
|
@#C1
|
|
method notCapturedBinary() → dynamic/* scope=[
|
|
#ctx48: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::+}(this-variable);
|
|
}
|
|
@#C1
|
|
method notCapturedPropertyCall() → dynamic/* scope=[
|
|
#ctx49: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::a}.{self::A::call}(){() → core::Object?};
|
|
}
|
|
@#C1
|
|
method notCapturedPropertyPrefix() → dynamic/* scope=[
|
|
#ctx50: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::n} = super{this-variable}.{self::A::n}.{core::num::+}(1){(core::num) → core::int};
|
|
}
|
|
@#C1
|
|
method notCapturedPropertyPostfix() → dynamic/* scope=[
|
|
#ctx51: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::n} = super{this-variable}.{self::A::n}.{core::num::+}(1){(core::num) → core::int};
|
|
}
|
|
@#C1
|
|
method notCapturedPropertyIndexGet() → dynamic/* scope=[
|
|
#ctx52: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::a}.{self::A::[]}(0){(core::int) → core::Object?};
|
|
}
|
|
@#C1
|
|
method notCapturedPropertyIndexSet() → dynamic/* scope=[
|
|
#ctx53: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::a}.{self::A::[]=}(0, null){(core::int, core::Object?) → void};
|
|
}
|
|
@#C1
|
|
method notCapturedPropertyIfNullAssignment() → dynamic/* scope=[
|
|
#ctx54: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::aNull} == null ?{self::A?} super{this-variable}.{self::A::aNull} = new self::A::•() : null;
|
|
}
|
|
@#C1
|
|
method notCapturedPropertyCompoundAssignment() → dynamic/* scope=[
|
|
#ctx55: not-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
super{this-variable}.{self::A::a} = super{this-variable}.{self::A::a}.{self::A::+}(new self::A::•()){(self::A) → self::A};
|
|
}
|
|
@#C1
|
|
method capturedMethodCall() → dynamic/* scope=[
|
|
#ctx56: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx56 */ → dynamic => super{this-variable}.{self::A::method}();
|
|
}
|
|
@#C1
|
|
method capturedPropertyGet() → dynamic/* scope=[
|
|
#ctx57: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx57 */ → core::Object? => super{this-variable}.{self::A::field};
|
|
}
|
|
@#C1
|
|
method capturedPropertySet() → dynamic/* scope=[
|
|
#ctx58: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx58 */ → Null {
|
|
super{this-variable}.{self::A::field} = null;
|
|
};
|
|
}
|
|
@#C1
|
|
method capturedCall() → dynamic/* scope=[
|
|
#ctx59: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx59 */ → core::Object? => super{this-variable}.{self::A::call}();
|
|
}
|
|
@#C1
|
|
method capturedIndexGet() → dynamic/* scope=[
|
|
#ctx60: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx60 */ → core::Object? => super{this-variable}.{self::A::[]}(0);
|
|
}
|
|
@#C1
|
|
method capturedIndexSet() → dynamic/* scope=[
|
|
#ctx61: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx61 */ → Null {
|
|
super{this-variable}.{self::A::[]=}(0, null);
|
|
};
|
|
}
|
|
@#C1
|
|
method capturedUnary() → dynamic/* scope=[
|
|
#ctx62: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx62 */ → self::A => super{this-variable}.{self::A::unary-}();
|
|
}
|
|
@#C1
|
|
method capturedBinary() → dynamic/* scope=[
|
|
#ctx63: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx63 */ → self::A => super{this-variable}.{self::A::+}(this-variable);
|
|
}
|
|
@#C1
|
|
method capturedPropertyCall() → dynamic/* scope=[
|
|
#ctx64: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx64 */ → core::Object? => super{this-variable}.{self::A::a}.{self::A::call}(){() → core::Object?};
|
|
}
|
|
@#C1
|
|
method capturedPropertyPrefix() → dynamic/* scope=[
|
|
#ctx65: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx65 */ → core::int => super{this-variable}.{self::A::n} = super{this-variable}.{self::A::n}.{core::num::+}(1){(core::num) → core::int};
|
|
}
|
|
@#C1
|
|
method capturedPropertyPostfix() → dynamic/* scope=[
|
|
#ctx66: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx66 */ → core::int => let final core::int #t8 = super{this-variable}.{self::A::n} in let final void #t9 = super{this-variable}.{self::A::n} = #t8.{core::num::+}(1){(core::num) → core::int} in #t8;
|
|
}
|
|
@#C1
|
|
method capturedPropertyIndexGet() → dynamic/* scope=[
|
|
#ctx67: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx67 */ → core::Object? => super{this-variable}.{self::A::a}.{self::A::[]}(0){(core::int) → core::Object?};
|
|
}
|
|
@#C1
|
|
method capturedPropertyIndexSet() → dynamic/* scope=[
|
|
#ctx68: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx68 */ → Null => let final self::A #t10 = super{this-variable}.{self::A::a} in let final core::int #t11 = 0 in let final has-declared-initializer Null #t12 = null in let final void #t13 = #t10.{self::A::[]=}(#t11, #t12){(core::int, core::Object?) → void} in #t12;
|
|
}
|
|
@#C1
|
|
method capturedPropertyIfNullAssignment() → dynamic/* scope=[
|
|
#ctx69: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx69 */ → self::A => let final self::A? #t14 = super{this-variable}.{self::A::aNull} in #t14 == null ?{self::A} super{this-variable}.{self::A::aNull} = new self::A::•() : #t14{self::A};
|
|
}
|
|
@#C1
|
|
method capturedPropertyCompoundAssignment() → dynamic/* scope=[
|
|
#ctx70: direct-captured VariableContext([
|
|
this-variable final this-variable;
|
|
]),
|
|
] */ {
|
|
return () /* #ctx70 */ → self::A => super{this-variable}.{self::A::a} = super{this-variable}.{self::A::a}.{self::A::+}(new self::A::•()){(self::A) → self::A};
|
|
}
|
|
}
|
|
|
|
constants {
|
|
#C1 = core::_Override {}
|
|
}
|