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

import "dart:async";

abstract class Mixin extends core::Object /*isMixinDeclaration*/  {
  field FutureOr<Null>m = null;
}
class Class extends self::_Class&Object&Mixin {
  synthetic constructor •() → self::Class
    : super self::_Class&Object&Mixin::•()
    ;
  method test(dynamic t1) → dynamic {
    this.{self::_Class&Object&Mixin::m} = t1 as{TypeError,ForDynamic} FutureOr<Null>;
  }
}
abstract class _Class&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_Class&Object&Mixin
    : super core::Object::•()
    ;
  synthetic mixin-super-stub get m() → FutureOr<Null>
    return super.{self::Mixin::m};
  synthetic mixin-super-stub set m(FutureOr<Null>value) → void
    return super.{self::Mixin::m} = value;
}
static method main() → dynamic {}
