Skip to content

Commit bfb507a

Browse files
keertipCommit Queue
authored andcommitted
Migrate utilities.dart
Change-Id: I0823b6bacdd0098123b912a7f3a1c1cf72f68e45 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/397560 Commit-Queue: Keerti Parthasarathy <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent 06caa3f commit bfb507a

File tree

8 files changed

+26
-112
lines changed

8 files changed

+26
-112
lines changed

pkg/analysis_server/analyzer_use_new_elements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ lib/src/services/completion/dart/declaration_helper.dart
3232
lib/src/services/completion/dart/identifier_helper.dart
3333
lib/src/services/completion/dart/in_scope_completion_pass.dart
3434
lib/src/services/completion/dart/not_imported_completion_pass.dart
35-
lib/src/services/completion/dart/utilities.dart
3635
lib/src/services/completion/dart/visibility_tracker.dart
3736
lib/src/services/completion/postfix/postfix_completion.dart
3837
lib/src/services/completion/statement/statement_completion.dart

pkg/analysis_server/lib/src/lsp/completion_utils.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ Future<lsp.CompletionItem?> toLspCompletionItem(
240240
(FormalParameterElement param) => param.isNamed,
241241
);
242242

243-
defaultArgumentList = computeCompletionDefaultArgumentList2(
243+
defaultArgumentList = computeCompletionDefaultArgumentList(
244244
element,
245245
requiredParameters,
246246
namedParameters,

pkg/analysis_server/lib/src/services/completion/dart/candidate_suggestion.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,7 @@ final class NamedArgumentSuggestion extends CandidateSuggestion
783783
// Optionally add Flutter child widget details.
784784
// TODO(pq): revisit this special casing; likely it can be generalized away.
785785
if (isWidget && appendColon) {
786-
var defaultValue = getDefaultStringParameterValue2(
786+
var defaultValue = getDefaultStringParameterValue(
787787
parameter,
788788
preferredQuoteForStrings,
789789
);

pkg/analysis_server/lib/src/services/completion/dart/in_scope_completion_pass.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
376376
for (var parameter in availableNamedParameters) {
377377
var matcherScore = state.matcher.score(parameter.displayName);
378378
if (matcherScore != -1) {
379-
var isWidget = isFlutterWidgetParameter(parameter);
379+
var isWidget = isFlutterWidgetParameter(parameter.asElement2);
380380
collector.addSuggestion(
381381
NamedArgumentSuggestion(
382382
parameter: parameter.asElement2,
@@ -2017,7 +2017,7 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
20172017
if (!usedNames.contains(parameter.name)) {
20182018
var matcherScore = state.matcher.score(parameter.displayName);
20192019
if (matcherScore != -1) {
2020-
var isWidget = isFlutterWidgetParameter(parameter);
2020+
var isWidget = isFlutterWidgetParameter(parameter.asElement2);
20212021
collector.addSuggestion(
20222022
NamedArgumentSuggestion(
20232023
parameter:

pkg/analysis_server/lib/src/services/completion/dart/relevance_computer.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ class RelevanceComputer {
106106
case ClassSuggestion():
107107
return computeTopLevelRelevance2(
108108
suggestion.element,
109-
elementType: instantiateInstanceElement2(
109+
elementType: instantiateInstanceElement(
110110
suggestion.element,
111111
neverType,
112112
),
@@ -129,7 +129,7 @@ class RelevanceComputer {
129129
case EnumSuggestion():
130130
return computeTopLevelRelevance(
131131
suggestion.element,
132-
elementType: instantiateInstanceElement2(
132+
elementType: instantiateInstanceElement(
133133
suggestion.element,
134134
neverType,
135135
),
@@ -144,7 +144,7 @@ class RelevanceComputer {
144144
case ExtensionTypeSuggestion():
145145
return computeTopLevelRelevance(
146146
suggestion.element,
147-
elementType: instantiateInstanceElement2(
147+
elementType: instantiateInstanceElement(
148148
suggestion.element,
149149
neverType,
150150
),
@@ -201,7 +201,7 @@ class RelevanceComputer {
201201
case MixinSuggestion():
202202
return computeTopLevelRelevance(
203203
suggestion.element,
204-
elementType: instantiateInstanceElement2(
204+
elementType: instantiateInstanceElement(
205205
suggestion.element,
206206
neverType,
207207
),
@@ -427,7 +427,7 @@ class RelevanceComputer {
427427
bool isNotImportedLibrary,
428428
) {
429429
var enclosingClass = element.enclosingElement2;
430-
var returnType = instantiateInstanceElement2(enclosingClass, neverType);
430+
var returnType = instantiateInstanceElement(enclosingClass, neverType);
431431
return computeTopLevelRelevance(
432432
element,
433433
elementType: returnType,

pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1511,7 +1511,7 @@ class SuggestionBuilder {
15111511
);
15121512
hasNamedParameters = namedParameters.isNotEmpty;
15131513

1514-
defaultArgumentList = computeCompletionDefaultArgumentList2(
1514+
defaultArgumentList = computeCompletionDefaultArgumentList(
15151515
element,
15161516
requiredParameters,
15171517
namedParameters,

pkg/analysis_server/lib/src/services/completion/dart/utilities.dart

Lines changed: 15 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import 'package:analysis_server/src/services/completion/dart/completion_manager.
1010
import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart';
1111
import 'package:analysis_server/src/utilities/extensions/ast.dart';
1212
import 'package:analyzer/dart/ast/ast.dart';
13-
import 'package:analyzer/dart/element/element.dart';
1413
import 'package:analyzer/dart/element/element2.dart';
1514
import 'package:analyzer/dart/element/nullability_suffix.dart';
1615
import 'package:analyzer/dart/element/type.dart';
@@ -42,8 +41,8 @@ String buildClosureParameters(
4241

4342
var hasNamed = false;
4443
var hasOptionalPositional = false;
45-
var parameters = type.parameters;
46-
var existingNames = parameters.map((p) => p.name).toSet();
44+
var parameters = type.formalParameters;
45+
var existingNames = parameters.map((p) => p.displayName).toSet();
4746
for (var i = 0; i < parameters.length; ++i) {
4847
var parameter = parameters[i];
4948
if (i != 0) {
@@ -60,7 +59,7 @@ String buildClosureParameters(
6059
buffer.write(parameter.type);
6160
buffer.write(' ');
6261
}
63-
var name = parameter.name;
62+
var name = parameter.displayName;
6463
if (name.isEmpty) {
6564
name = 'p$i';
6665
var index = 1;
@@ -89,49 +88,6 @@ String buildClosureParameters(
8988
/// Compute default argument list text and ranges based on the given
9089
/// [requiredParams] and [namedParams].
9190
CompletionDefaultArgumentList computeCompletionDefaultArgumentList(
92-
Element element,
93-
Iterable<ParameterElement> requiredParams,
94-
Iterable<ParameterElement> namedParams,
95-
) {
96-
var sb = StringBuffer();
97-
var ranges = <int>[];
98-
99-
int offset;
100-
101-
for (var param in requiredParams) {
102-
if (sb.isNotEmpty) {
103-
sb.write(', ');
104-
}
105-
offset = sb.length;
106-
107-
var name = param.name;
108-
sb.write(name);
109-
ranges.addAll([offset, name.length]);
110-
}
111-
112-
for (var param in namedParams) {
113-
if (param.hasRequired || param.isRequiredNamed) {
114-
if (sb.isNotEmpty) {
115-
sb.write(', ');
116-
}
117-
var name = param.name;
118-
sb.write('$name: ');
119-
offset = sb.length;
120-
// TODO(pq): fix to use getDefaultStringParameterValue()
121-
sb.write(name);
122-
ranges.addAll([offset, name.length]);
123-
}
124-
}
125-
126-
return CompletionDefaultArgumentList(
127-
text: sb.isNotEmpty ? sb.toString() : null,
128-
ranges: ranges.isNotEmpty ? ranges : null,
129-
);
130-
}
131-
132-
/// Compute default argument list text and ranges based on the given
133-
/// [requiredParams] and [namedParams].
134-
CompletionDefaultArgumentList computeCompletionDefaultArgumentList2(
13591
Element2 element,
13692
Iterable<FormalParameterElement> requiredParams,
13793
Iterable<FormalParameterElement> namedParams,
@@ -210,31 +166,6 @@ protocol.Element createLocalElement(
210166

211167
/// Return a default argument value for the given [parameter].
212168
DefaultArgument? getDefaultStringParameterValue(
213-
ParameterElement parameter,
214-
String quote,
215-
) {
216-
var type = parameter.type;
217-
if (type is InterfaceType) {
218-
if (type.isDartCoreList) {
219-
return DefaultArgument('[]', cursorPosition: 1);
220-
} else if (type.isDartCoreMap) {
221-
return DefaultArgument('{}', cursorPosition: 1);
222-
} else if (type.isDartCoreString) {
223-
return DefaultArgument('$quote$quote', cursorPosition: 1);
224-
}
225-
} else if (type is FunctionType) {
226-
var params = type.parameters
227-
.map((p) => '${getTypeString(p.type)}${p.name}')
228-
.join(', ');
229-
// TODO(devoncarew): Support having this method return text with newlines.
230-
var text = '($params) { }';
231-
return DefaultArgument(text, cursorPosition: text.length - 2);
232-
}
233-
return null;
234-
}
235-
236-
/// Return a default argument value for the given [parameter].
237-
DefaultArgument? getDefaultStringParameterValue2(
238169
FormalParameterElement parameter,
239170
String quote,
240171
) {
@@ -248,8 +179,8 @@ DefaultArgument? getDefaultStringParameterValue2(
248179
return DefaultArgument('$quote$quote', cursorPosition: 1);
249180
}
250181
} else if (type is FunctionType) {
251-
var params = type.parameters
252-
.map((p) => '${getTypeString(p.type)}${p.name}')
182+
var params = type.formalParameters
183+
.map((p) => '${getTypeString(p.type)}${p.displayName}')
253184
.join(', ');
254185
// TODO(devoncarew): Support having this method return text with newlines.
255186
var text = '($params) { }';
@@ -282,24 +213,8 @@ String getTypeString(DartType type) {
282213
}
283214
}
284215

285-
/// Instantiates the given [InterfaceElement]
216+
/// Instantiates the given [InterfaceElement2]
286217
InterfaceType instantiateInstanceElement(
287-
InterfaceElement element,
288-
NeverType neverType,
289-
) {
290-
var typeParameters = element.typeParameters;
291-
var typeArguments = const <DartType>[];
292-
if (typeParameters.isNotEmpty) {
293-
typeArguments = List.filled(typeParameters.length, neverType);
294-
}
295-
return element.instantiate(
296-
typeArguments: typeArguments,
297-
nullabilitySuffix: NullabilitySuffix.none,
298-
);
299-
}
300-
301-
/// Instantiates the given [InterfaceElement]
302-
InterfaceType instantiateInstanceElement2(
303218
InterfaceElement2 element,
304219
NeverType neverType,
305220
) {
@@ -316,10 +231,10 @@ InterfaceType instantiateInstanceElement2(
316231

317232
/// Returns true if the [parameter] is part of a constructor for a Flutter
318233
/// [Widget].
319-
bool isFlutterWidgetParameter(ParameterElement parameter) {
320-
var element = parameter.enclosingElement3;
321-
if (element is ConstructorElement &&
322-
element.enclosingElement3.augmented.firstFragment.isWidget) {
234+
bool isFlutterWidgetParameter(FormalParameterElement parameter) {
235+
var element = parameter.enclosingElement2;
236+
if (element is ConstructorElement2 &&
237+
element.enclosingElement2.isWidget) {
323238
return true;
324239
}
325240
return false;
@@ -330,22 +245,22 @@ bool isFlutterWidgetParameter(ParameterElement parameter) {
330245
String? nameForType(SimpleIdentifier identifier, TypeAnnotation? declaredType) {
331246
// Get the type from the identifier element.
332247
DartType type;
333-
var element = identifier.staticElement;
248+
var element = identifier.element;
334249
if (element == null) {
335250
return DYNAMIC;
336-
} else if (element is FunctionTypedElement) {
337-
if (element is PropertyAccessorElement && element.isSetter) {
251+
} else if (element is FunctionTypedElement2) {
252+
if (element is PropertyAccessorElement2 && element is SetterElement) {
338253
return null;
339254
}
340255
type = element.returnType;
341-
} else if (element is TypeAliasElement) {
256+
} else if (element is TypeAliasElement2) {
342257
var aliasedType = element.aliasedType;
343258
if (aliasedType is FunctionType) {
344259
type = aliasedType.returnType;
345260
} else {
346261
return null;
347262
}
348-
} else if (element is VariableElement) {
263+
} else if (element is VariableElement2) {
349264
type = element.type;
350265
} else {
351266
return null;

pkg/analysis_server/lib/src/services/correction/dart/add_missing_required_argument.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class AddMissingRequiredArgument extends ResolvedCorrectionProducer {
9696
}
9797

9898
var codeStyleOptions = getCodeStyleOptions(unitResult.file);
99-
var defaultValue = getDefaultStringParameterValue2(
99+
var defaultValue = getDefaultStringParameterValue(
100100
missingParameter,
101101
codeStyleOptions.preferredQuoteForStrings,
102102
);

0 commit comments

Comments
 (0)