Skip to content

Commit 3cf0963

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate lib/src/generated/resolver.dart
Change-Id: Iaac4e0594608d55f5bbc604952f060c1e31cd6fb Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/411762 Reviewed-by: Phil Quitslund <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 690b380 commit 3cf0963

File tree

7 files changed

+142
-193
lines changed

7 files changed

+142
-193
lines changed

pkg/analyzer/lib/src/dart/ast/ast.dart

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8287,24 +8287,16 @@ sealed class FunctionBodyImpl extends AstNodeImpl implements FunctionBody {
82878287

82888288
@override
82898289
bool isPotentiallyMutatedInScope(VariableElement variable) {
8290-
if (localVariableInfo == null) {
8291-
throw StateError('Resolution has not been performed');
8292-
}
8293-
return localVariableInfo!.potentiallyMutatedInScope.contains(variable);
8290+
var v2 = (variable as VariableElementImpl).element;
8291+
return isPotentiallyMutatedInScope2(v2);
82948292
}
82958293

8296-
@experimental
82978294
@override
82988295
bool isPotentiallyMutatedInScope2(VariableElement2 variable) {
8299-
return switch (variable) {
8300-
LocalVariableElementImpl2() =>
8301-
isPotentiallyMutatedInScope(variable.wrappedElement),
8302-
VariableElement() =>
8303-
isPotentiallyMutatedInScope(variable as VariableElement),
8304-
FormalParameterElement(:VariableElement firstFragment) =>
8305-
isPotentiallyMutatedInScope(firstFragment),
8306-
_ => false,
8307-
};
8296+
if (localVariableInfo == null) {
8297+
throw StateError('Resolution has not been performed');
8298+
}
8299+
return localVariableInfo!.potentiallyMutatedInScope.contains(variable);
83088300
}
83098301

83108302
/// Dispatch this function body to the resolver, imposing [imposedType] as the
@@ -9156,6 +9148,10 @@ final class GenericFunctionTypeImpl extends TypeAnnotationImpl
91569148
@override
91579149
Token get beginToken => _returnType?.beginToken ?? functionKeyword;
91589150

9151+
GenericFunctionTypeElementImpl? get declaredFragment {
9152+
return declaredElement;
9153+
}
9154+
91599155
@override
91609156
Token get endToken => question ?? _parameters.endToken;
91619157

@@ -11480,7 +11476,7 @@ sealed class LiteralImpl extends ExpressionImpl implements Literal {
1148011476
class LocalVariableInfo {
1148111477
/// The set of local variables and parameters that are potentially mutated
1148211478
/// within the scope of their declarations.
11483-
final Set<VariableElement> potentiallyMutatedInScope = <VariableElement>{};
11479+
final Set<VariableElement2> potentiallyMutatedInScope = {};
1148411480
}
1148511481

1148611482
/// A logical-and pattern.
@@ -14075,13 +14071,11 @@ final class PatternFieldImpl extends AstNodeImpl implements PatternField {
1407514071
@experimental
1407614072
@override
1407714073
Element2? get element2 {
14078-
var element = this.element;
14079-
if (element case Fragment fragment) {
14080-
return fragment.element;
14081-
} else if (element case Element2 element) {
14082-
return element;
14083-
}
14084-
return null;
14074+
return element?.asElement2;
14075+
}
14076+
14077+
set element2(Element2? value) {
14078+
element = value?.asElement;
1408514079
}
1408614080

1408714081
@override
@@ -15355,6 +15349,10 @@ final class RelationalPatternImpl extends DartPatternImpl
1535515349
return null;
1535615350
}
1535715351

15352+
set element2(MethodElement2? value) {
15353+
element = value?.asElement;
15354+
}
15355+
1535815356
@override
1535915357
Token get endToken => operand.endToken;
1536015358

pkg/analyzer/lib/src/dart/element/element.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5446,7 +5446,7 @@ class GenericFunctionTypeElementImpl extends _ExistingElementImpl
54465446
}
54475447

54485448
@override
5449-
GenericFunctionTypeElement2 get element => _element2;
5449+
GenericFunctionTypeElementImpl2 get element => _element2;
54505450

54515451
@override
54525452
Fragment? get enclosingFragment => enclosingElement3 as Fragment;
@@ -9869,6 +9869,10 @@ class PatternVariableElementImpl2 extends LocalVariableElementImpl2
98699869
];
98709870
}
98719871

9872+
/// This flag is set to `true` while we are visiting the [WhenClause] of
9873+
/// the [GuardedPattern] that declares this variable.
9874+
bool get isVisitingWhenClause => _wrappedElement.isVisitingWhenClause;
9875+
98729876
/// This flag is set to `true` while we are visiting the [WhenClause] of
98739877
/// the [GuardedPattern] that declares this variable.
98749878
set isVisitingWhenClause(bool value) =>

pkg/analyzer/lib/src/dart/element/extensions.dart

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import 'package:analyzer/dart/element/type.dart';
1212
import 'package:analyzer/src/dart/element/element.dart';
1313
import 'package:analyzer/src/dart/element/type.dart';
1414
import 'package:analyzer/src/generated/utilities_dart.dart';
15+
import 'package:analyzer/src/utilities/extensions/element.dart';
1516
import 'package:analyzer/src/utilities/extensions/string.dart';
1617
import 'package:meta/meta_meta.dart';
1718

@@ -79,7 +80,7 @@ extension Element2Extension on Element2 {
7980
(this is FormalParameterElement &&
8081
this is! FieldFormalParameterElement2 &&
8182
this is! SuperFormalParameterElement2)) &&
82-
library2.hasWildcardVariablesFeatureEnabled2;
83+
library2.hasWildcardVariablesFeatureEnabled;
8384
}
8485
}
8586

@@ -193,7 +194,7 @@ extension ElementExtension on Element {
193194
(this is ParameterElement &&
194195
this is! FieldFormalParameterElement &&
195196
this is! SuperFormalParameterElement)) &&
196-
library.hasWildcardVariablesFeatureEnabled;
197+
library.asElement2.hasWildcardVariablesFeatureEnabled;
197198
}
198199
}
199200

@@ -252,15 +253,8 @@ extension InterfaceTypeExtension on InterfaceType {
252253
}
253254
}
254255

255-
extension LibraryExtension on LibraryElement? {
256-
bool get hasWildcardVariablesFeatureEnabled {
257-
var self = this;
258-
return self?.featureSet.isEnabled(Feature.wildcard_variables) ?? false;
259-
}
260-
}
261-
262256
extension LibraryExtension2 on LibraryElement2? {
263-
bool get hasWildcardVariablesFeatureEnabled2 =>
257+
bool get hasWildcardVariablesFeatureEnabled =>
264258
this?.featureSet.isEnabled(Feature.wildcard_variables) ?? false;
265259
}
266260

0 commit comments

Comments
 (0)