// Formatted problems:
//
// pkg/front_end/testcases/bug30695.dart:11:3: Warning: Can't declare a member that conflicts with an inherited one.
//   foo() => 42;
//   ^
// pkg/front_end/testcases/bug30695.dart:6:7: Warning: This is the inherited member.
//   var foo = 42;
//       ^

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

class A extends core::Object {
  field dynamic foo = 42;
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class B extends self::A {
  synthetic constructor •() → void
    : super self::A::•()
    ;
  method foo() → dynamic
    return 42;
}
static method main() → dynamic {}
