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

class C<T extends core::num> extends core::Object {
  field self::C::T a = null;
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  method op(self::C::T b) → void {
    self::C::T r1 = this.{self::C::a}.+(b);
    self::C::T r2 = this.{self::C::a}.-(b);
    self::C::T r3 = this.{self::C::a}.*(b);
  }
  method opEq(self::C::T b) → void {
    this.{self::C::a} = this.{self::C::a}.+(b);
    this.{self::C::a} = this.{self::C::a}.-(b);
    this.{self::C::a} = this.{self::C::a}.*(b);
  }
}
static method main() → dynamic {}
