Skip to content

Commit c6426e1

Browse files
jensjohacommit-bot@chromium.org
authored andcommitted
[cfe] Pass fileUri to more things when issuing problems
The library builders uri might not be correct as the problems can originate in parts. Fixes #36990 Change-Id: I1c39a31052b88013df38033a49b662ce5bb86aad Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106083 Commit-Queue: Jens Johansen <[email protected]> Reviewed-by: Dmitry Stefantsov <[email protected]>
1 parent 1aa8959 commit c6426e1

File tree

6 files changed

+75
-65
lines changed

6 files changed

+75
-65
lines changed

pkg/front_end/lib/src/fasta/kernel/body_builder.dart

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2092,7 +2092,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
20922092
isConst: isConst)
20932093
..fileOffset = identifier.charOffset
20942094
..fileEqualsOffset = offsetForToken(equalsToken);
2095-
library.checkBoundsInVariableDeclaration(variable, typeEnvironment);
2095+
library.checkBoundsInVariableDeclaration(variable, typeEnvironment, uri);
20962096
push(variable);
20972097
}
20982098

@@ -2464,7 +2464,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
24642464
leftBracket,
24652465
expressions,
24662466
rightBracket);
2467-
library.checkBoundsInListLiteral(node, typeEnvironment);
2467+
library.checkBoundsInListLiteral(node, typeEnvironment, uri);
24682468
push(node);
24692469
}
24702470

@@ -2503,7 +2503,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
25032503
leftBrace,
25042504
expressions,
25052505
leftBrace.endGroup);
2506-
library.checkBoundsInSetLiteral(node, typeEnvironment);
2506+
library.checkBoundsInSetLiteral(node, typeEnvironment, uri);
25072507
if (!library.loader.target.enableSetLiterals) {
25082508
internalProblem(
25092509
fasta.messageSetLiteralsNotSupported, node.fileOffset, uri);
@@ -2627,7 +2627,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
26272627
leftBrace,
26282628
entries,
26292629
leftBrace.endGroup);
2630-
library.checkBoundsInMapLiteral(node, typeEnvironment);
2630+
library.checkBoundsInMapLiteral(node, typeEnvironment, uri);
26312631
push(node);
26322632
}
26332633

@@ -2793,7 +2793,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
27932793
void handleAsOperator(Token operator) {
27942794
debugEvent("AsOperator");
27952795
DartType type = buildDartType(pop());
2796-
library.checkBoundsInType(type, typeEnvironment, operator.charOffset);
2796+
library.checkBoundsInType(type, typeEnvironment, uri, operator.charOffset);
27972797
Expression expression = popForValue();
27982798
if (!library.loader.target.enableConstantUpdate2018 &&
27992799
constantContext != ConstantContext.none) {
@@ -2815,7 +2815,8 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
28152815
bool isInverted = not != null;
28162816
Expression isExpression =
28172817
forest.isExpression(operand, isOperator, not, type);
2818-
library.checkBoundsInType(type, typeEnvironment, isOperator.charOffset);
2818+
library.checkBoundsInType(
2819+
type, typeEnvironment, uri, isOperator.charOffset);
28192820
if (operand is VariableGet) {
28202821
typePromoter?.handleIsCheck(isExpression, isInverted, operand.variable,
28212822
type, functionNestingLevel);
@@ -3372,7 +3373,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
33723373
target, forest.castArguments(arguments),
33733374
isConst: isConst)
33743375
..fileOffset = charOffset;
3375-
library.checkBoundsInConstructorInvocation(node, typeEnvironment);
3376+
library.checkBoundsInConstructorInvocation(node, typeEnvironment, uri);
33763377
return node;
33773378
} else {
33783379
Procedure procedure = target;
@@ -3392,14 +3393,14 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
33923393
target, forest.castArguments(arguments),
33933394
isConst: isConst)
33943395
..fileOffset = charOffset;
3395-
library.checkBoundsInFactoryInvocation(node, typeEnvironment);
3396+
library.checkBoundsInFactoryInvocation(node, typeEnvironment, uri);
33963397
return node;
33973398
} else {
33983399
StaticInvocation node = new StaticInvocation(
33993400
target, forest.castArguments(arguments),
34003401
isConst: isConst)
34013402
..fileOffset = charOffset;
3402-
library.checkBoundsInStaticInvocation(node, typeEnvironment);
3403+
library.checkBoundsInStaticInvocation(node, typeEnvironment, uri);
34033404
return node;
34043405
}
34053406
}

pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ class InferenceVisitor extends BodyVisitor1<void, DartType> {
183183
KernelLibraryBuilder library = inferrer.library;
184184
if (!hasExplicitTypeArguments) {
185185
library.checkBoundsInConstructorInvocation(
186-
node, inferrer.typeSchemaEnvironment,
186+
node, inferrer.typeSchemaEnvironment, inferrer.helper.uri,
187187
inferred: true);
188188
}
189189
}
@@ -244,7 +244,7 @@ class InferenceVisitor extends BodyVisitor1<void, DartType> {
244244
KernelLibraryBuilder library = inferrer.library;
245245
if (!hadExplicitTypeArguments) {
246246
library.checkBoundsInFactoryInvocation(
247-
node, inferrer.typeSchemaEnvironment,
247+
node, inferrer.typeSchemaEnvironment, inferrer.helper.uri,
248248
inferred: true);
249249
}
250250
}
@@ -919,7 +919,8 @@ class InferenceVisitor extends BodyVisitor1<void, DartType> {
919919
if (!inferrer.isTopLevel) {
920920
KernelLibraryBuilder library = inferrer.library;
921921
if (inferenceNeeded) {
922-
library.checkBoundsInListLiteral(node, inferrer.typeSchemaEnvironment,
922+
library.checkBoundsInListLiteral(
923+
node, inferrer.typeSchemaEnvironment, inferrer.helper.uri,
923924
inferred: true);
924925
}
925926
}
@@ -1475,7 +1476,8 @@ class InferenceVisitor extends BodyVisitor1<void, DartType> {
14751476
// Either both [_declaredKeyType] and [_declaredValueType] are omitted or
14761477
// none of them, so we may just check one.
14771478
if (inferenceNeeded) {
1478-
library.checkBoundsInMapLiteral(node, inferrer.typeSchemaEnvironment,
1479+
library.checkBoundsInMapLiteral(
1480+
node, inferrer.typeSchemaEnvironment, inferrer.helper.uri,
14791481
inferred: true);
14801482
}
14811483
}
@@ -1760,7 +1762,8 @@ class InferenceVisitor extends BodyVisitor1<void, DartType> {
17601762
if (!inferrer.isTopLevel) {
17611763
KernelLibraryBuilder library = inferrer.library;
17621764
if (inferenceNeeded) {
1763-
library.checkBoundsInSetLiteral(node, inferrer.typeSchemaEnvironment,
1765+
library.checkBoundsInSetLiteral(
1766+
node, inferrer.typeSchemaEnvironment, inferrer.helper.uri,
17641767
inferred: true);
17651768
}
17661769

@@ -1814,7 +1817,7 @@ class InferenceVisitor extends BodyVisitor1<void, DartType> {
18141817
inferrer.storeInferredType(node, inferenceResult.type);
18151818
if (!hadExplicitTypeArguments && node.target != null) {
18161819
inferrer.library?.checkBoundsInStaticInvocation(
1817-
node, inferrer.typeSchemaEnvironment,
1820+
node, inferrer.typeSchemaEnvironment, inferrer.helper.uri,
18181821
inferred: true);
18191822
}
18201823
}
@@ -2025,7 +2028,7 @@ class InferenceVisitor extends BodyVisitor1<void, DartType> {
20252028
KernelLibraryBuilder library = inferrer.library;
20262029
if (node._implicitlyTyped) {
20272030
library.checkBoundsInVariableDeclaration(
2028-
node, inferrer.typeSchemaEnvironment,
2031+
node, inferrer.typeSchemaEnvironment, inferrer.helper.uri,
20292032
inferred: true);
20302033
}
20312034
}

pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,8 @@ abstract class KernelClassBuilder
340340
}
341341
}
342342

343-
library.reportTypeArgumentIssue(message, charOffset, typeParameter);
343+
library.reportTypeArgumentIssue(
344+
message, fileUri, charOffset, typeParameter);
344345
}
345346
}
346347
}
@@ -379,7 +380,7 @@ abstract class KernelClassBuilder
379380
}
380381

381382
library.reportTypeArgumentIssue(
382-
message, parameter.fileOffset, typeParameter);
383+
message, fileUri, parameter.fileOffset, typeParameter);
383384
}
384385
}
385386
}
@@ -402,15 +403,17 @@ abstract class KernelClassBuilder
402403
library.checkBoundsInField(field, typeEnvironment);
403404
}
404405
for (Procedure procedure in cls.procedures) {
405-
library.checkBoundsInFunctionNode(procedure.function, typeEnvironment);
406+
library.checkBoundsInFunctionNode(
407+
procedure.function, typeEnvironment, fileUri);
406408
}
407409
for (Constructor constructor in cls.constructors) {
408-
library.checkBoundsInFunctionNode(constructor.function, typeEnvironment);
410+
library.checkBoundsInFunctionNode(
411+
constructor.function, typeEnvironment, fileUri);
409412
}
410413
for (RedirectingFactoryConstructor redirecting
411414
in cls.redirectingFactoryConstructors) {
412415
library.checkBoundsInFunctionNodeParts(
413-
typeEnvironment, redirecting.fileOffset,
416+
typeEnvironment, fileUri, redirecting.fileOffset,
414417
typeParameters: redirecting.typeParameters,
415418
positionalParameters: redirecting.positionalParameters,
416419
namedParameters: redirecting.namedParameters);

0 commit comments

Comments
 (0)