| // Copyright (c) 2022, 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. |
| |
| abstract class Class1 { |
| String get field1; |
| } |
| |
| abstract class Class2<V> {} |
| |
| typedef Function1<O, I> = Class2<O>? Function(I i); |
| |
| class Class3<V, D> {} |
| |
| extension Extension1<V> on Class2<V> { |
| Class3<M, V> method1<M>(Function1<M, V> f) { |
| throw ''; |
| } |
| } |
| |
| class Class4<K, V> { |
| Class2<V> operator [](K key) => throw ''; |
| } |
| |
| class Class5 { |
| late final field2 = Class4<String?, bool>(); |
| late final field3 = |
| getter1.method1((o) => o != null ? field2[o.field1] : null); |
| |
| method2() { |
| late final local1 = |
| getter1.method1((o) => o != null ? field2[o.field1] : null); |
| } |
| |
| Class2<Class1?> get getter1 => throw ''; |
| } |