@@ -13,7 +13,6 @@ import 'package:analyzer/src/dart/element/element.dart';
1313import 'package:analyzer/src/dart/element/scope.dart' ;
1414import 'package:analyzer/src/dart/element/type.dart' ;
1515import 'package:analyzer/src/dart/element/type_system.dart' ;
16- import 'package:analyzer/src/dart/resolver/scope.dart' ;
1716import 'package:analyzer/src/summary/idl.dart' ;
1817import 'package:analyzer/src/summary2/function_type_builder.dart' ;
1918import 'package:analyzer/src/summary2/lazy_ast.dart' ;
@@ -492,19 +491,33 @@ class ReferenceResolver extends ThrowingAstVisitor<void> {
492491
493492 @override
494493 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+ }
500518
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;
508521 }
509522
510523 node.typeArguments? .accept (this );
0 commit comments