library test;
import self as self;
import "dart:core" as core;

class A extends core::Object {
  field core::int f = null;
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
static field core::int v_assign = new self::A::•().{self::A::f} = 1;
static field core::int v_plus = let final self::A #t1 = new self::A::•() in #t1.{self::A::f} = #t1.{self::A::f}.{core::num::+}(1);
static field core::int v_minus = let final self::A #t2 = new self::A::•() in #t2.{self::A::f} = #t2.{self::A::f}.{core::num::-}(1);
static field core::int v_multiply = let final self::A #t3 = new self::A::•() in #t3.{self::A::f} = #t3.{self::A::f}.{core::num::*}(1);
static field core::int v_prefix_pp = let final self::A #t4 = new self::A::•() in #t4.{self::A::f} = #t4.{self::A::f}.{core::num::+}(1);
static field core::int v_prefix_mm = let final self::A #t5 = new self::A::•() in #t5.{self::A::f} = #t5.{self::A::f}.{core::num::-}(1);
static field core::int v_postfix_pp = let final self::A #t6 = new self::A::•() in let final core::int #t7 = #t6.{self::A::f} in let final core::int #t8 = #t6.{self::A::f} = #t7.{core::num::+}(1) in #t7;
static field core::int v_postfix_mm = let final self::A #t9 = new self::A::•() in let final core::int #t10 = #t9.{self::A::f} in let final core::int #t11 = #t9.{self::A::f} = #t10.{core::num::-}(1) in #t10;
static method main() → dynamic {}
