// Copyright (c) 2018, 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 import "package:expect/expect.dart"; class I {} class C0 extends I {} class C1 implements I {} mixin M0 on I { } mixin M1 on I { T Function(T) get value => null; } mixin M2 implements I {} mixin M3 on I {} class J {} class C2 extends C1 implements J {} class C3 extends J {} mixin M4 on I, J { S Function(S) get value0 => null; T Function(T) get value1 => null; } // M1 is inferred as M1 class C01 with C1, M1 { void check() { // Verify that M1.T is exactly int int Function(int) f = this.value; } } void main() { Expect.type>(new C01()..check()); }