@@ -13,7 +13,6 @@ import 'package:analyzer/src/dart/element/element.dart';
13
13
import 'package:analyzer/src/dart/element/scope.dart' ;
14
14
import 'package:analyzer/src/dart/element/type.dart' ;
15
15
import 'package:analyzer/src/dart/element/type_system.dart' ;
16
- import 'package:analyzer/src/dart/resolver/scope.dart' ;
17
16
import 'package:analyzer/src/summary/idl.dart' ;
18
17
import 'package:analyzer/src/summary2/function_type_builder.dart' ;
19
18
import 'package:analyzer/src/summary2/lazy_ast.dart' ;
@@ -492,19 +491,33 @@ class ReferenceResolver extends ThrowingAstVisitor<void> {
492
491
493
492
@override
494
493
void visitTypeName (TypeName node) {
495
- var typeName = node.name;
496
- if (typeName is SimpleIdentifier && typeName.name == 'void' ) {
497
- node.type = VoidTypeImpl .instance;
498
- return ;
499
- }
494
+ var typeIdentifier = node.name;
495
+
496
+ Element element;
497
+ if (typeIdentifier is PrefixedIdentifier ) {
498
+ var prefix = typeIdentifier.prefix;
499
+ var prefixName = prefix.name;
500
+ var prefixElement = scope.lookup2 (prefixName).getter;
501
+ prefix.staticElement = prefixElement;
502
+
503
+ if (prefixElement is PrefixElement ) {
504
+ var nameNode = typeIdentifier.identifier;
505
+ var name = nameNode.name;
506
+
507
+ element = prefixElement.scope.lookup2 (name).getter;
508
+ nameNode.staticElement = element;
509
+ }
510
+ } else {
511
+ var nameNode = typeIdentifier as SimpleIdentifier ;
512
+ var name = nameNode.name;
513
+
514
+ if (name == 'void' ) {
515
+ node.type = VoidTypeImpl .instance;
516
+ return ;
517
+ }
500
518
501
- var element = scope.lookupIdentifier (typeName);
502
- if (typeName is SimpleIdentifier ) {
503
- typeName.staticElement = element;
504
- } else if (typeName is PrefixedIdentifier ) {
505
- typeName.identifier.staticElement = element;
506
- SimpleIdentifier prefix = typeName.prefix;
507
- prefix.staticElement = scope.lookupIdentifier (prefix);
519
+ element = scope.lookup2 (name).getter;
520
+ nameNode.staticElement = element;
508
521
}
509
522
510
523
node.typeArguments? .accept (this );
0 commit comments