| // Copyright (c) 2014, 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. | |
| import 'package:test_reflective_loader/test_reflective_loader.dart'; | |
| import '../src/dart/resolution/context_collection_resolution.dart'; | |
| import '../src/dart/resolution/node_text_expectations.dart'; | |
| main() { | |
| defineReflectiveSuite(() { | |
| defineReflectiveTests(StaticWarningCodeTest); | |
| defineReflectiveTests(UpdateNodeTextExpectations); | |
| }); | |
| } | |
| @reflectiveTest | |
| class StaticWarningCodeTest extends PubPackageResolutionTest { | |
| // TODO(brianwilkerson): Figure out what to do with the rest of these tests. | |
| // The names do not correspond to diagnostic codes, so it isn't clear what | |
| // they're testing. | |
| test_nonAbstractClassInheritsAbstractMemberOne_ensureCorrectFunctionSubtypeIsUsedInImplementation() async { | |
| // 15028 | |
| await resolveTestCodeWithDiagnostics( | |
| ''' | |
| class C { | |
| foo(int x) => x; | |
| } | |
| abstract class D { | |
| foo(x, [y]); | |
| } | |
| class E extends C implements D {} | |
| // ^ | |
| // [diag.invalidImplementationOverride] 'C.foo' ('dynamic Function(int)') isn't a valid concrete implementation of 'D.foo' ('dynamic Function(dynamic, [dynamic])').''', | |
| ); | |
| } | |
| test_typePromotion_functionType_arg_InterToDyn() async { | |
| await resolveTestCodeWithDiagnostics(''' | |
| typedef FuncDyn(x); | |
| typedef FuncA(A a); | |
| class A {} | |
| class B {} | |
| f(FuncA f) { | |
| if (f is FuncDyn) { | |
| f(new B()); | |
| } | |
| }'''); | |
| } | |
| test_voidReturnForGetter() async { | |
| await resolveTestCodeWithDiagnostics(''' | |
| class S { | |
| void get value {} | |
| }'''); | |
| } | |
| } |