oracle<T>([T? t]) => true;
testIfElement(dynamic dynVar, List<int> listInt, List<double> listDouble,
    Map<String, int> mapToInt, Map<String, double> mapToDouble) {}
testIfElementErrors(Map<int, int> map) {}
testForElement(
    dynamic dynVar,
    List<int> listInt,
    List<double> listDouble,
    int index,
    Map<String, int> mapStringInt,
    Map<String, double> mapStringDouble) {}
testForElementErrors(Map<int, int> map, List<int> list) async {}
testForElementErrorsNotAsync(Stream<int> stream) {}

class A {}

class B extends A {
  int get foo => 42;
}

testPromotion(A a) {}
main() {}
