|
| 1 | +library #lib /*isNonNullableByDefault*/; |
| 2 | +import self as self; |
| 3 | +import "dart:core" as core; |
| 4 | +import "dart:ffi" as ffi; |
| 5 | +import "dart:_internal" as _in; |
| 6 | + |
| 7 | +import "dart:ffi"; |
| 8 | + |
| 9 | +class Foo extends core::Object implements ffi::Finalizable { |
| 10 | + synthetic constructor •() → self::Foo |
| 11 | + : super core::Object::•() |
| 12 | + ; |
| 13 | +} |
| 14 | +extension _extension#0 on ffi::Finalizable { |
| 15 | + method bar = self::_extension#0|bar; |
| 16 | + tearoff bar = self::_extension#0|get#bar; |
| 17 | +} |
| 18 | +extension _extension#1 on core::Object { |
| 19 | + method baz = self::_extension#1|baz; |
| 20 | + tearoff baz = self::_extension#1|get#baz; |
| 21 | +} |
| 22 | +static method main() → void { |
| 23 | + final self::Foo foo = new self::Foo::•(); |
| 24 | + self::_extension#0|bar(foo); |
| 25 | + self::_extension#1|baz(new core::Object::•(), foo); |
| 26 | + _in::reachabilityFence(foo); |
| 27 | +} |
| 28 | +static method _extension#0|bar(lowered final ffi::Finalizable #this) → core::int { |
| 29 | + core::print("123"); |
| 30 | + return block { |
| 31 | + final core::int :expressionValueWrappedFinalizable = 4; |
| 32 | + _in::reachabilityFence(#this); |
| 33 | + } =>:expressionValueWrappedFinalizable; |
| 34 | +} |
| 35 | +static method _extension#0|get#bar(lowered final ffi::Finalizable #this) → () → core::int { |
| 36 | + return block { |
| 37 | + final () → core::int :expressionValueWrappedFinalizable = () → core::int { |
| 38 | + return block { |
| 39 | + final core::int :expressionValueWrappedFinalizable = self::_extension#0|bar(#this); |
| 40 | + _in::reachabilityFence(#this); |
| 41 | + } =>:expressionValueWrappedFinalizable; |
| 42 | + }; |
| 43 | + _in::reachabilityFence(#this); |
| 44 | + } =>:expressionValueWrappedFinalizable; |
| 45 | +} |
| 46 | +static method _extension#1|baz(lowered final core::Object #this, self::Foo foo) → core::int { |
| 47 | + core::print("456"); |
| 48 | + return block { |
| 49 | + final core::int :expressionValueWrappedFinalizable = 5; |
| 50 | + _in::reachabilityFence(foo); |
| 51 | + } =>:expressionValueWrappedFinalizable; |
| 52 | +} |
| 53 | +static method _extension#1|get#baz(lowered final core::Object #this) → (self::Foo) → core::int |
| 54 | + return (self::Foo foo) → core::int { |
| 55 | + return block { |
| 56 | + final core::int :expressionValueWrappedFinalizable = self::_extension#1|baz(#this, foo); |
| 57 | + _in::reachabilityFence(foo); |
| 58 | + } =>:expressionValueWrappedFinalizable; |
| 59 | + }; |
0 commit comments