library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/issue40945.dart:7:15: Error: The type 'dynamic' of the getter 'C.test' is not a subtype of the type 'int' of the setter 'C.test'.
//   dynamic get test => 3.14;
//               ^^^^
// pkg/front_end/testcases/nnbd/issue40945.dart:6:12: Context: This is the declaration of the setter 'C.test'.
//   void set test(int v) {}
//            ^^^^
//
import self as self;
import "dart:core" as core;

class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  set test(core::int v) → void {}
  get test() → dynamic
    return 3.14;
}
static method test() → dynamic {
  self::C c = new self::C::•();
  c.{self::C::test} = 1;
  c.{self::C::test};
}
static method main() → dynamic {}
