bd757f9948
One thing to be careful of here is that function type bounds may be left unbounded. However, their parameters and return type cannot refer to a type parameter for resolve-to-bounds to work. There are also a large number of ways that this can loop infinitely, and a number of new guards had to be added (as well as some test cases) to catch them all. Change-Id: I14322f5f71d1f7b73b27a870553e5c588b2c7e2e Reviewed-on: https://dart-review.googlesource.com/52062 Commit-Queue: Mike Fairhurst <mfairhurst@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
88 lines
2.5 KiB
Dart
88 lines
2.5 KiB
Dart
// Copyright (c) 2017, 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 'strong_mode_test.dart';
|
|
|
|
main() {
|
|
defineReflectiveSuite(() {
|
|
defineReflectiveTests(StrongModeLocalInferenceTest_Driver);
|
|
defineReflectiveTests(StrongModeStaticTypeAnalyzer2Test_Driver);
|
|
defineReflectiveTests(StrongModeTypePropagationTest_Driver);
|
|
});
|
|
}
|
|
|
|
@reflectiveTest
|
|
class StrongModeLocalInferenceTest_Driver extends StrongModeLocalInferenceTest {
|
|
@override
|
|
bool get enableNewAnalysisDriver => true;
|
|
}
|
|
|
|
@reflectiveTest
|
|
class StrongModeStaticTypeAnalyzer2Test_Driver
|
|
extends StrongModeStaticTypeAnalyzer2Test {
|
|
@override
|
|
bool get enableNewAnalysisDriver => true;
|
|
|
|
@failingTest
|
|
@override
|
|
test_genericFunction_parameter() {
|
|
return super.test_genericFunction_parameter();
|
|
}
|
|
|
|
@failingTest
|
|
@override
|
|
test_genericMethod_functionExpressionInvocation_functionTypedParameter_explicit() {
|
|
return super
|
|
.test_genericMethod_functionExpressionInvocation_functionTypedParameter_explicit();
|
|
}
|
|
|
|
@failingTest
|
|
@override
|
|
test_genericMethod_functionExpressionInvocation_functionTypedParameter_inferred() {
|
|
return super
|
|
.test_genericMethod_functionExpressionInvocation_functionTypedParameter_inferred();
|
|
}
|
|
|
|
@failingTest
|
|
@override
|
|
test_genericMethod_functionInvocation_functionTypedParameter_explicit() {
|
|
return super
|
|
.test_genericMethod_functionInvocation_functionTypedParameter_explicit();
|
|
}
|
|
|
|
@failingTest
|
|
@override
|
|
test_genericMethod_functionInvocation_functionTypedParameter_inferred() {
|
|
return super
|
|
.test_genericMethod_functionInvocation_functionTypedParameter_inferred();
|
|
}
|
|
|
|
@failingTest
|
|
@override
|
|
test_genericMethod_functionTypedParameter_tearoff() {
|
|
return super.test_genericMethod_functionTypedParameter_tearoff();
|
|
}
|
|
|
|
@override
|
|
test_notInstantiatedBound_class_error_recursion() {
|
|
// overridden because not failing
|
|
return super.test_notInstantiatedBound_class_error_recursion();
|
|
}
|
|
|
|
@override
|
|
test_notInstantiatedBound_class_error_recursion_less_direct() {
|
|
// overridden because not failing
|
|
return super.test_notInstantiatedBound_class_error_recursion_less_direct();
|
|
}
|
|
}
|
|
|
|
@reflectiveTest
|
|
class StrongModeTypePropagationTest_Driver
|
|
extends StrongModeTypePropagationTest {
|
|
@override
|
|
bool get enableNewAnalysisDriver => true;
|
|
}
|