2
2
// for details. All rights reserved. Use of this source code is governed by a
3
3
// BSD-style license that can be found in the LICENSE file.
4
4
5
- // ignore_for_file: analyzer_use_new_elements
6
-
7
5
import 'package:analyzer/dart/analysis/features.dart' ;
8
6
import 'package:analyzer/dart/ast/token.dart' ;
9
- import 'package:analyzer/dart/element/element.dart' ;
10
7
import 'package:analyzer/dart/element/element2.dart' ;
11
8
import 'package:analyzer/error/error.dart' ;
12
9
import 'package:analyzer/error/listener.dart' ;
@@ -361,13 +358,13 @@ class DuplicateDefinitionVerifier {
361
358
362
359
/// Information to pass from declarations to augmentations.
363
360
class DuplicationDefinitionContext {
364
- final Map <InstanceElement , _InstanceElementContext > _instanceElementContexts =
365
- {};
361
+ final Map <InstanceElementImpl , _InstanceElementContext >
362
+ _instanceElementContexts = {};
366
363
}
367
364
368
365
class MemberDuplicateDefinitionVerifier {
369
366
final InheritanceManager3 _inheritanceManager;
370
- final LibraryElement _currentLibrary;
367
+ final LibraryElementImpl _currentLibrary;
371
368
final CompilationUnitElementImpl _currentUnit;
372
369
final ErrorReporter _errorReporter;
373
370
final DuplicationDefinitionContext context;
@@ -436,7 +433,7 @@ class MemberDuplicateDefinitionVerifier {
436
433
element: field.declaredFragment! ,
437
434
setterScope: member.isStatic ? staticSetters : instanceSetters,
438
435
);
439
- if (fragment is EnumElement ) {
436
+ if (fragment is EnumElementImpl ) {
440
437
_checkValuesDeclarationInEnum (field.name);
441
438
}
442
439
}
@@ -447,7 +444,7 @@ class MemberDuplicateDefinitionVerifier {
447
444
element: member.declaredFragment! ,
448
445
setterScope: member.isStatic ? staticSetters : instanceSetters,
449
446
);
450
- if (fragment is EnumElement ) {
447
+ if (fragment is EnumElementImpl ) {
451
448
if (! (member.isStatic && member.isSetter)) {
452
449
_checkValuesDeclarationInEnum (member.name);
453
450
}
@@ -517,14 +514,14 @@ class MemberDuplicateDefinitionVerifier {
517
514
}
518
515
519
516
void _checkConflictingConstructorAndStatic ({
520
- required InterfaceElement interfaceElement,
521
- required Map <String , Element > staticGetters,
522
- required Map <String , Element > staticSetters,
517
+ required InterfaceElementImpl interfaceElement,
518
+ required Map <String , ElementImpl > staticGetters,
519
+ required Map <String , ElementImpl > staticSetters,
523
520
}) {
524
521
for (var constructor in interfaceElement.constructors) {
525
522
var name = constructor.name;
526
523
var staticMember = staticGetters[name] ?? staticSetters[name];
527
- if (staticMember is PropertyAccessorElement ) {
524
+ if (staticMember is PropertyAccessorElementImpl ) {
528
525
CompileTimeErrorCode errorCode;
529
526
if (staticMember.isSynthetic) {
530
527
errorCode =
@@ -541,7 +538,7 @@ class MemberDuplicateDefinitionVerifier {
541
538
errorCode,
542
539
arguments: [name],
543
540
);
544
- } else if (staticMember is MethodElement ) {
541
+ } else if (staticMember is MethodElementImpl ) {
545
542
_errorReporter.atElement2 (
546
543
constructor.asElement2,
547
544
CompileTimeErrorCode .CONFLICTING_CONSTRUCTOR_AND_STATIC_METHOD ,
@@ -555,27 +552,27 @@ class MemberDuplicateDefinitionVerifier {
555
552
/// in one of the scopes - [getterScope] or [setterScope] , and produce an
556
553
/// error if it is.
557
554
void _checkDuplicateIdentifier (
558
- Map <String , Element > getterScope, Token identifier,
559
- {required Element element, Map <String , Element >? setterScope}) {
555
+ Map <String , ElementImpl > getterScope, Token identifier,
556
+ {required ElementImpl element, Map <String , ElementImpl >? setterScope}) {
560
557
if (identifier.isSynthetic || element.asElement2.isWildcardVariable) {
561
558
return ;
562
559
}
563
560
564
561
switch (element) {
565
- case ExecutableElement _:
562
+ case ExecutableElementImpl _:
566
563
if (element.isAugmentation) return ;
567
- case FieldElement _:
564
+ case FieldElementImpl _:
568
565
if (element.isAugmentation) return ;
569
- case InstanceElement _:
566
+ case InstanceElementImpl _:
570
567
if (element.isAugmentation) return ;
571
- case TypeAliasElement _:
568
+ case TypeAliasElementImpl _:
572
569
if (element.isAugmentation) return ;
573
- case TopLevelVariableElement _:
570
+ case TopLevelVariableElementImpl _:
574
571
if (element.isAugmentation) return ;
575
572
}
576
573
577
574
// Fields define getters and setters, so check them separately.
578
- if (element is PropertyInducingElement ) {
575
+ if (element is PropertyInducingElementImpl ) {
579
576
_checkDuplicateIdentifier (getterScope, identifier,
580
577
element: element.getter! , setterScope: setterScope);
581
578
var setter = element.setter;
@@ -587,7 +584,7 @@ class MemberDuplicateDefinitionVerifier {
587
584
}
588
585
589
586
var name = switch (element) {
590
- MethodElement () => element.name,
587
+ MethodElementImpl () => element.name,
591
588
_ => identifier.lexeme,
592
589
};
593
590
@@ -608,7 +605,7 @@ class MemberDuplicateDefinitionVerifier {
608
605
}
609
606
610
607
if (setterScope != null ) {
611
- if (element is PropertyAccessorElement && element.isSetter) {
608
+ if (element is PropertyAccessorElementImpl && element.isSetter) {
612
609
previous = setterScope[name];
613
610
if (previous != null ) {
614
611
_errorReporter.reportError (
@@ -665,7 +662,7 @@ class MemberDuplicateDefinitionVerifier {
665
662
}
666
663
var baseName = accessor.displayName;
667
664
var inherited = _getInheritedMember (firstFragment, baseName);
668
- if (inherited is MethodElement ) {
665
+ if (inherited is MethodElementImpl ) {
669
666
_errorReporter.atElement2 (
670
667
accessor.asElement2,
671
668
CompileTimeErrorCode .CONFLICTING_FIELD_AND_METHOD ,
@@ -687,7 +684,7 @@ class MemberDuplicateDefinitionVerifier {
687
684
}
688
685
var baseName = method.displayName;
689
686
var inherited = _getInheritedMember (firstFragment, baseName);
690
- if (inherited is PropertyAccessorElement ) {
687
+ if (inherited is PropertyAccessorElementImpl ) {
691
688
_errorReporter.atElement2 (
692
689
method.asElement2,
693
690
CompileTimeErrorCode .CONFLICTING_METHOD_AND_FIELD ,
@@ -862,13 +859,13 @@ class MemberDuplicateDefinitionVerifier {
862
859
}
863
860
}
864
861
865
- _InstanceElementContext _getElementContext (InstanceElement element) {
862
+ _InstanceElementContext _getElementContext (InstanceElementImpl element) {
866
863
return context._instanceElementContexts[element] ?? =
867
864
_InstanceElementContext ();
868
865
}
869
866
870
- ExecutableElement ? _getInheritedMember (
871
- InterfaceElement element, String baseName) {
867
+ ExecutableElementOrMember ? _getInheritedMember (
868
+ InterfaceElementImpl element, String baseName) {
872
869
var libraryUri = _currentLibrary.source.uri;
873
870
874
871
var getterName = Name (libraryUri, baseName);
@@ -881,8 +878,8 @@ class MemberDuplicateDefinitionVerifier {
881
878
return _inheritanceManager.getInherited2 (element, setterName);
882
879
}
883
880
884
- ExecutableElement ? _getInterfaceMember (
885
- InterfaceElement element, String baseName) {
881
+ ExecutableElementOrMember ? _getInterfaceMember (
882
+ InterfaceElementImpl element, String baseName) {
886
883
var libraryUri = _currentLibrary.source.uri;
887
884
888
885
var getterName = Name (libraryUri, baseName);
@@ -898,7 +895,7 @@ class MemberDuplicateDefinitionVerifier {
898
895
static void checkLibrary ({
899
896
required InheritanceManager3 inheritance,
900
897
required LibraryVerificationContext libraryVerificationContext,
901
- required LibraryElement libraryElement,
898
+ required LibraryElementImpl libraryElement,
902
899
required Map <FileState , FileAnalysis > files,
903
900
}) {
904
901
MemberDuplicateDefinitionVerifier forUnit (FileAnalysis fileAnalysis) {
@@ -922,8 +919,8 @@ class MemberDuplicateDefinitionVerifier {
922
919
}
923
920
}
924
921
925
- static bool _isGetterSetterPair (Element a, Element b) {
926
- if (a is PropertyAccessorElement && b is PropertyAccessorElement ) {
922
+ static bool _isGetterSetterPair (ElementImpl a, ElementImpl b) {
923
+ if (a is PropertyAccessorElementImpl && b is PropertyAccessorElementImpl ) {
927
924
return a.isGetter && b.isSetter || a.isSetter && b.isGetter;
928
925
}
929
926
return false ;
@@ -933,8 +930,8 @@ class MemberDuplicateDefinitionVerifier {
933
930
/// Information accumulated for a single declaration and its augmentations.
934
931
class _InstanceElementContext {
935
932
final Set <String > constructorNames = {};
936
- final Map <String , Element > instanceGetters = {};
937
- final Map <String , Element > instanceSetters = {};
938
- final Map <String , Element > staticGetters = {};
939
- final Map <String , Element > staticSetters = {};
933
+ final Map <String , ElementImpl > instanceGetters = {};
934
+ final Map <String , ElementImpl > instanceSetters = {};
935
+ final Map <String , ElementImpl > staticGetters = {};
936
+ final Map <String , ElementImpl > staticSetters = {};
940
937
}
0 commit comments