// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. // @dart=2.9 class A {} class B extends A {} class C extends B {} class GenericClass {} extension GenericExtension on GenericClass { T get property => null; T method(T t) => null; S genericMethod1(S s) => null; } main() { A aVariable; C cVariable; GenericClass aClass; GenericClass bClass; GenericClass cClass; cVariable = aClass.property; cVariable = bClass.property; aVariable = cClass.property; cVariable = aClass.method(aVariable); cVariable = bClass.method(aVariable); aVariable = cClass.method(aVariable); cVariable = aClass.genericMethod1(aVariable); cVariable = aClass.genericMethod1(aVariable); cVariable = aClass.genericMethod1(aVariable); cVariable = aClass.genericMethod1(aVariable); cVariable = bClass.genericMethod1(aVariable); cVariable = bClass.genericMethod1(aVariable); cVariable = bClass.genericMethod1(aVariable); cVariable = bClass.genericMethod1(aVariable); cVariable = cClass.genericMethod1(aVariable); cVariable = cClass.genericMethod1(aVariable); cVariable = cClass.genericMethod1(aVariable); cVariable = cClass.genericMethod1(aVariable); }