Fix for 'The getter 'isDynamic' was called on null' because of dartbug.com/28515
R=brianwilkerson@google.com, paulberry@google.com BUG= https://github.com/dart-lang/sdk/issues/28515 Review-Url: https://codereview.chromium.org/2676713002 .
This commit is contained in:
@@ -11,6 +11,7 @@ import 'package:analyzer/dart/element/element.dart';
|
||||
import 'package:analyzer/exception/exception.dart';
|
||||
import 'package:analyzer/src/dart/element/builder.dart';
|
||||
import 'package:analyzer/src/dart/element/element.dart';
|
||||
import 'package:analyzer/src/dart/element/type.dart';
|
||||
import 'package:analyzer/src/generated/resolver.dart';
|
||||
|
||||
/**
|
||||
@@ -398,7 +399,8 @@ class DeclarationResolver extends RecursiveAstVisitor<Object> {
|
||||
if (node.parent.parent is FunctionTypedFormalParameter) {
|
||||
// Work around dartbug.com/28515.
|
||||
// TODO(paulberry): remove this once dartbug.com/28515 is fixed.
|
||||
Element element = new TypeParameterElementImpl.forNode(node.name);
|
||||
var element = new TypeParameterElementImpl.forNode(node.name);
|
||||
element.type = new TypeParameterTypeImpl(element);
|
||||
node.name?.staticElement = element;
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -862,6 +862,20 @@ main() {
|
||||
expect(unitA.context.getContents(sourceB).data, 'var v = 2;');
|
||||
}
|
||||
|
||||
test_getResult_functionTypeFormalParameter_withTypeParameter() async {
|
||||
// This was code crashing because of incomplete implementation.
|
||||
// Consider (re)moving after fixing dartbug.com/28515
|
||||
addTestFile(r'''
|
||||
class A {
|
||||
int foo( bar<T extends B>() ) {}
|
||||
}
|
||||
class B {}
|
||||
''');
|
||||
|
||||
AnalysisResult result = await driver.getResult(testFile);
|
||||
expect(result.path, testFile);
|
||||
}
|
||||
|
||||
test_getResult_inferTypes_finalField() async {
|
||||
addTestFile(
|
||||
r'''
|
||||
|
||||
Reference in New Issue
Block a user