library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/value_class/non_value_implements_value_error.dart:9:13: Error: Final field 'numLegs' is not initialized.
// Try to initialize the field in the declaration or in every constructor.
//   final int numLegs;
//             ^^^^^^^
//
// pkg/front_end/testcases/value_class/non_value_implements_value_error.dart:13:13: Error: Final field 'numLegs' is not initialized.
// Try to initialize the field in the declaration or in every constructor.
//   final int numLegs;
//             ^^^^^^^
//
import self as self;
import "dart:core" as core;

@#C1
class Animal extends core::Object {
  final field core::int numLegs = null;
  synthetic constructor •() → self::Animal
    : super core::Object::•()
    ;
}
class Cat extends core::Object implements self::Animal {
  final field core::int numLegs = null;
  synthetic constructor •() → self::Cat
    : super core::Object::•()
    ;
}
static const field core::String valueClass = #C1;
static method main() → dynamic {}

constants  {
  #C1 = "valueClass"
}
