Skip to content

Commit ad50326

Browse files
stereotype441Commit Queue
authored andcommitted
[analyzer] Remove format method; change callers to use formatList.
This method wasn't exposed through the analyzer public API, and wasn't strictly necessary; all it did was wrap up all its arguments (except the first) in a list and call `formatList`. In the long term I intend to replace `formatList` with a richer and more type-safe API that allows clients to supply message parameters through named parameters. Removing the `format` method now will make it easier to evolve towards that richer API. Note that this change is not strictly a no-op; one of the call sites (in pkg/analysis_server/lib/src/services/refactoring/legacy/inline_local.dart) was incorrectly wrapping its argument in a list and then calling `format`, causing the argument to be wrapped in a second list. That was clearly a mistake, so I went ahead and fixed it as part of this CL. Change-Id: I0796804ab949e66a129bfeec6dfe688dfa113eb2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/440548 Commit-Queue: Paul Berry <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent 9d82a86 commit ad50326

File tree

14 files changed

+63
-99
lines changed

14 files changed

+63
-99
lines changed

pkg/analysis_server/lib/src/cider/rename.dart

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,9 @@ class CanRenameResponse {
8484
}
8585
// check if there are members with "newName" in the same ClassElement
8686
for (var newNameMember in getChildren(parentClass, newName)) {
87-
var message = format(
87+
var message = formatList(
8888
"Class '{0}' already declares {1} with name '{2}'.",
89-
parentClass.displayName,
90-
getElementKindName(newNameMember),
91-
newName,
89+
[parentClass.displayName, getElementKindName(newNameMember), newName],
9290
);
9391
result.addError(message, newLocation_fromElement(newNameMember));
9492
}
@@ -99,8 +97,7 @@ class CanRenameResponse {
9997
var oldStateName = '${element.displayName}State';
10098
var library = element.library;
10199
var state =
102-
library.getClass(oldStateName) ??
103-
library.getClass('_$oldStateName');
100+
library.getClass(oldStateName) ?? library.getClass('_$oldStateName');
104101
if (state != null) {
105102
var flutterWidgetStateNewName = '${newName}State';
106103
// If the State was private, ensure that it stays private.

pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
138138
result.addStatus(validateVariableName(name));
139139
if (_excludedVariableNames.contains(name)) {
140140
result.addError(
141-
format("The name '{0}' is already used in the scope.", name),
141+
formatList("The name '{0}' is already used in the scope.", [name]),
142142
);
143143
}
144144
return result;

pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -609,17 +609,16 @@ final class ExtractMethodRefactoringImpl extends RefactoringImpl
609609
for (var other in _parameters) {
610610
if (!identical(parameter, other) && other.name == parameter.name) {
611611
result.addError(
612-
format("Parameter '{0}' already exists", parameter.name),
612+
formatList("Parameter '{0}' already exists", [parameter.name]),
613613
);
614614
return result;
615615
}
616616
}
617617
if (_isParameterNameConflictWithBody(parameter)) {
618618
result.addError(
619-
format(
620-
"'{0}' is already used as a name in the selected code",
619+
formatList("'{0}' is already used as a name in the selected code", [
621620
parameter.name,
622-
),
621+
]),
623622
);
624623
return result;
625624
}
@@ -998,10 +997,10 @@ final class ExtractMethodRefactoringImpl extends RefactoringImpl
998997
sb.write('\n');
999998
}
1000999
result.addFatalError(
1001-
format(
1000+
formatList(
10021001
'Ambiguous return value: Selected block contains more than one '
10031002
'assignment to local variables. Affected variables are:\n\n{0}',
1004-
sb.toString().trim(),
1003+
[sb.toString().trim()],
10051004
),
10061005
);
10071006
}

pkg/analysis_server/lib/src/services/refactoring/legacy/extract_widget.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,9 @@ class ExtractWidgetRefactoringImpl extends RefactoringImpl
127127
if (!result.hasFatalError) {
128128
for (var element in resolveResult.libraryElement2.children) {
129129
if (element.displayName == name) {
130-
var message = format(
130+
var message = formatList(
131131
"Library already declares {0} with name '{1}'.",
132-
element.kind.displayName,
133-
name,
132+
[element.kind.displayName, name],
134133
);
135134
result.addError(message, newLocation_fromElement(element));
136135
}

pkg/analysis_server/lib/src/services/refactoring/legacy/inline_local.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ class InlineLocalRefactoringImpl extends RefactoringImpl
8080
// should have initializer at declaration
8181
var initializer = node.initializer;
8282
if (initializer == null) {
83-
var message = format(
83+
var message = formatList(
8484
"Local variable '{0}' is not initialized at declaration.",
85-
element.displayName,
85+
[element.displayName],
8686
);
8787
return RefactoringStatus.fatal(message, newLocation_fromNode(node));
8888
}
@@ -91,7 +91,7 @@ class InlineLocalRefactoringImpl extends RefactoringImpl
9191
// should not have assignments
9292
for (var reference in references) {
9393
if (reference.kind != MatchKind.READ) {
94-
var message = format(
94+
var message = formatList(
9595
"Local variable '{0}' is assigned more than once.",
9696
[element.displayName],
9797
);

pkg/analysis_server/lib/src/services/refactoring/legacy/rename.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,18 +116,16 @@ abstract class RenameRefactoringImpl extends RefactoringImpl
116116
Future<RefactoringStatus> checkInitialConditions() {
117117
var result = RefactoringStatus();
118118
if (element.library?.isInSdk == true) {
119-
var message = format(
119+
var message = formatList(
120120
"The {0} '{1}' is defined in the SDK, so cannot be renamed.",
121-
getElementKindName(element),
122-
getElementQualifiedName(element),
121+
[getElementKindName(element), getElementQualifiedName(element)],
123122
);
124123
result.addFatalError(message);
125124
}
126125
if (!workspace.containsElement(element)) {
127-
var message = format(
126+
var message = formatList(
128127
"The {0} '{1}' is defined outside of the project, so cannot be renamed.",
129-
getElementKindName(element),
130-
getElementQualifiedName(element),
128+
[getElementKindName(element), getElementQualifiedName(element)],
131129
);
132130
result.addFatalError(message);
133131
}

pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -236,13 +236,12 @@ class _BaseClassMemberValidator {
236236
// check if there is a member with "newName" in the same ClassElement
237237
for (var newNameMember in getChildren(interfaceElement, name)) {
238238
result.addError(
239-
format(
240-
"{0} '{1}' already declares {2} with name '{3}'.",
239+
formatList("{0} '{1}' already declares {2} with name '{3}'.", [
241240
capitalize(interfaceElement.kind.displayName),
242241
interfaceElement.displayName,
243242
getElementKindName(newNameMember),
244243
name,
245-
),
244+
]),
246245
newLocation_fromElement(newNameMember),
247246
);
248247
}
@@ -262,26 +261,27 @@ class _BaseClassMemberValidator {
262261
// the renamed Element shadows a member of a superclass
263262
if (superClasses.contains(nameClass)) {
264263
result.addError(
265-
format(
264+
formatList(
266265
isRename
267266
? "Renamed {0} will shadow {1} '{2}'."
268267
: "Created {0} will shadow {1} '{2}'.",
269-
elementKind.displayName,
270-
getElementKindName(nameElement),
271-
getElementQualifiedName(nameElement),
268+
[
269+
elementKind.displayName,
270+
getElementKindName(nameElement),
271+
getElementQualifiedName(nameElement),
272+
],
272273
),
273274
newLocation_fromElement(nameElement),
274275
);
275276
}
276277
// the renamed Element is shadowed by a member of a subclass
277278
if (isRename && subClasses.contains(nameClass)) {
278279
result.addError(
279-
format(
280-
"Renamed {0} will be shadowed by {1} '{2}'.",
280+
formatList("Renamed {0} will be shadowed by {1} '{2}'.", [
281281
elementKind.displayName,
282282
getElementKindName(nameElement),
283283
getElementQualifiedName(nameElement),
284-
),
284+
]),
285285
newLocation_fromElement(nameElement),
286286
);
287287
}
@@ -454,12 +454,11 @@ class _RenameClassMemberValidator extends _BaseClassMemberValidator {
454454
if (conflict != null) {
455455
var element = conflict.element;
456456
result.addError(
457-
format(
458-
"Usage of renamed {0} will be shadowed by {1} '{2}'.",
457+
formatList("Usage of renamed {0} will be shadowed by {1} '{2}'.", [
459458
elementKind.displayName,
460459
getElementKindName(element),
461460
element.displayName,
462-
),
461+
]),
463462
newLocation_fromMatch(conflict.match),
464463
);
465464
}
@@ -558,11 +557,10 @@ class _RenameClassMemberValidator extends _BaseClassMemberValidator {
558557
var refElement = reference.element;
559558
var refLibrary = refElement.library!;
560559
if (refLibrary != library) {
561-
var message = format(
562-
"Renamed {0} will be invisible in '{1}'.",
560+
var message = formatList("Renamed {0} will be invisible in '{1}'.", [
563561
getElementKindName(element),
564562
getElementQualifiedName(refLibrary),
565-
);
563+
]);
566564
result.addError(message, newLocation_fromMatch(reference));
567565
}
568566
}

pkg/analysis_server/lib/src/services/refactoring/legacy/rename_constructor.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,13 @@ class RenameConstructorRefactoringImpl extends RenameRefactoringImpl {
143143
}
144144
// check if there are members with "newName" in the same ClassElement
145145
for (var newNameMember in getChildren(parentClass, newName)) {
146-
var message = format(
147-
"{0} '{1}' already declares {2} with name '{3}'.",
148-
capitalize(parentClass.kind.displayName),
149-
parentClass.displayName,
150-
getElementKindName(newNameMember),
151-
newName,
152-
);
146+
var message =
147+
formatList("{0} '{1}' already declares {2} with name '{3}'.", [
148+
capitalize(parentClass.kind.displayName),
149+
parentClass.displayName,
150+
getElementKindName(newNameMember),
151+
newName,
152+
]);
153153
result.addError(message, newLocation_fromElement(newNameMember));
154154
}
155155
}

pkg/analysis_server/lib/src/services/refactoring/legacy/rename_extension_member.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,11 @@ class _ExtensionMemberValidator {
121121
// Check if there is a member with "newName" in the extension.
122122
for (var newNameMember in getChildren(elementExtension, name)) {
123123
result.addError(
124-
format(
125-
"Extension '{0}' already declares {1} with name '{2}'.",
124+
formatList("Extension '{0}' already declares {1} with name '{2}'.", [
126125
elementExtension.displayName,
127126
getElementKindName(newNameMember),
128127
name,
129-
),
128+
]),
130129
newLocation_fromElement(newNameMember),
131130
);
132131
}
@@ -139,12 +138,11 @@ class _ExtensionMemberValidator {
139138
if (conflict != null) {
140139
var localElement = conflict.localElement;
141140
result.addError(
142-
format(
143-
"Usage of renamed {0} will be shadowed by {1} '{2}'.",
141+
formatList("Usage of renamed {0} will be shadowed by {1} '{2}'.", [
144142
elementKind.displayName,
145143
getElementKindName(localElement),
146144
localElement.displayName,
147-
),
145+
]),
148146
newLocation_fromMatch(conflict.match),
149147
);
150148
}

pkg/analysis_server/lib/src/services/refactoring/legacy/rename_local.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,11 @@ class ConflictValidatorVisitor extends RecursiveAstVisitor<void> {
8989
if (_isVisibleWithTarget(declaredElement)) {
9090
conflictingLocals.add(declaredElement);
9191
var nodeKind = declaredElement.kind.displayName;
92-
var message = format(
93-
"Duplicate {0} of name '{1}'{2}.",
92+
var message = formatList("Duplicate {0} of name '{1}'{2}.", [
9493
nodeKind,
9594
newName,
9695
declaredElement.declarationLocation,
97-
);
96+
]);
9897
result.addError(message, newLocation_fromElement(declaredElement));
9998
return;
10099
}

0 commit comments

Comments
 (0)