library test;

class Base {
  double? doubleProp2;
  double doubleProp = 0;
  int? intProp2;
  int intProp = 0;
  num? numProp2;
  num numProp = 0;
}

class Test1 extends Base {
  void test() {}
}

class Test2 extends Base {
  void test() {}
}

class Test3 extends Base {
  void test3() {}
}

double getDouble() => 0.0;
int getInt() => 0;
main() {}
num getNum() => 0;
