44
55import 'package:analyzer/dart/ast/ast.dart' ;
66import 'package:analyzer/dart/ast/visitor.dart' ;
7- import 'package:analyzer/dart/element/element .dart' ;
7+ import 'package:analyzer/dart/element/element2 .dart' ;
88import 'package:analyzer/dart/element/type.dart' ;
99// ignore: implementation_imports
1010import 'package:analyzer/src/dart/element/element.dart'
11- show TypeParameterElementImpl ;
11+ show TypeParameterElementImpl2 ;
1212
1313import '../analyzer.dart' ;
1414
@@ -137,15 +137,15 @@ class _Visitor extends SimpleAstVisitor<void> {
137137 case NamedType ():
138138 var arguments = typeAnnotation.typeArguments? .arguments;
139139 if (arguments != null ) {
140- var element = typeAnnotation.element ? .declaration ;
141- List <TypeParameterElement >? typeParameterList;
140+ var element = typeAnnotation.element2 ? .baseElement ;
141+ List <TypeParameterElement2 >? typeParameterList;
142142 if (element != null ) {
143143 switch (element) {
144- case ClassElement (: var typeParameters ):
145- case MixinElement (: var typeParameters ):
146- case EnumElement (: var typeParameters ):
147- case TypeAliasElement (: var typeParameters ):
148- typeParameterList = typeParameters ;
144+ case ClassElement2 (: var typeParameters2 ):
145+ case MixinElement2 (: var typeParameters2 ):
146+ case EnumElement2 (: var typeParameters2 ):
147+ case TypeAliasElement2 (: var typeParameters2 ):
148+ typeParameterList = typeParameters2 ;
149149 default :
150150 typeParameterList = null ;
151151 }
@@ -162,13 +162,15 @@ class _Visitor extends SimpleAstVisitor<void> {
162162 var length = arguments.length;
163163 for (var i = 0 ; i < length; ++ i) {
164164 var parameter = typeParameterList[i];
165- if (parameter is ! TypeParameterElementImpl ) continue ;
165+ if (parameter is ! TypeParameterElementImpl2 ) continue ;
166166 var argument = arguments[i];
167167 Variance parameterVariance;
168- if (parameter.isLegacyCovariant ||
169- parameter.variance.isCovariant) {
168+ var parameterFragment = parameter.firstFragment;
169+ if (parameterFragment == null ) return ;
170+ if (parameterFragment.isLegacyCovariant ||
171+ parameterFragment.variance.isCovariant) {
170172 parameterVariance = variance;
171- } else if (parameter .variance.isContravariant) {
173+ } else if (parameterFragment .variance.isContravariant) {
172174 parameterVariance = variance.inverse;
173175 } else {
174176 parameterVariance = _inout;
0 commit comments