Skip to content

Commit 83acb15

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe][InternalNodes] Separate ArgumentsImpl from Arguments
This separates the internal ArgumentsImpl class from the external Arguments class. The CFE needs to do reasoning in terms of the syntax of the code but Arguments normalizes arguments in to a list of positional arguments, a list of named argument, and a list of type arguments. This makes it very hard to support omitted type arguments and named arguments anywhere. With the separation the CFE can adjust the internal representation to fit is needs. Change-Id: I640dd49d0add06fc3ddfc140f50e7c7aeea55394 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/466040 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jens Johansen <jensj@google.com>
1 parent aaecab2 commit 83acb15

14 files changed

+175
-123
lines changed

pkg/front_end/lib/src/fragment/constructor/encoding.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -802,7 +802,7 @@ class _ExtensionTypeInitializerToStatementConverter
802802
new ExpressionStatement(
803803
new VariableSet(
804804
thisVariable,
805-
new StaticInvocation(node.target, node.arguments)
805+
new StaticInvocation(node.target, node.arguments.toArguments())
806806
..fileOffset = node.fileOffset,
807807
)..fileOffset = node.fileOffset,
808808
)..fileOffset = node.fileOffset,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -914,7 +914,7 @@ class BodyBuilderImpl extends StackListenerImpl
914914
]),
915915
);
916916
debugEvent("Metadata");
917-
Arguments? arguments = pop() as Arguments?;
917+
ArgumentsImpl? arguments = pop() as ArgumentsImpl?;
918918
pushQualifiedReference(
919919
beginToken.next!,
920920
periodBeforeName,

pkg/front_end/lib/src/kernel/expression_generator.dart

Lines changed: 13 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import 'package:kernel/names.dart'
2929
rightShiftName,
3030
tripleShiftName;
3131
import 'package:kernel/src/unaliasing.dart';
32-
import 'package:kernel/text/ast_to_text.dart';
3332
import 'package:kernel/type_algebra.dart';
3433

3534
import '../base/compiler_context.dart';
@@ -565,9 +564,8 @@ class VariableUseGenerator extends Generator {
565564
@override
566565
// Coverage-ignore(suite): Not run.
567566
void printOn(StringSink sink) {
568-
NameSystem syntheticNames = new NameSystem();
569567
sink.write(", variable: ");
570-
printNodeOn(variable, sink, syntheticNames: syntheticNames);
568+
printNodeOn(variable, sink);
571569
}
572570
}
573571

@@ -673,9 +671,8 @@ class PropertyAccessGenerator extends Generator {
673671
@override
674672
// Coverage-ignore(suite): Not run.
675673
void printOn(StringSink sink) {
676-
NameSystem syntheticNames = new NameSystem();
677674
sink.write(", receiver: ");
678-
printNodeOn(receiver, sink, syntheticNames: syntheticNames);
675+
printNodeOn(receiver, sink);
679676
sink.write(", name: ");
680677
sink.write(name.text);
681678
}
@@ -1204,9 +1201,8 @@ class NullAwarePropertyAccessGenerator extends Generator {
12041201
@override
12051202
// Coverage-ignore(suite): Not run.
12061203
void printOn(StringSink sink) {
1207-
NameSystem syntheticNames = new NameSystem();
12081204
sink.write(", receiver: ");
1209-
printNodeOn(receiver, sink, syntheticNames: syntheticNames);
1205+
printNodeOn(receiver, sink);
12101206
sink.write(", name: ");
12111207
sink.write(name.text);
12121208
}
@@ -1575,11 +1571,10 @@ class IndexedAccessGenerator extends Generator {
15751571
@override
15761572
// Coverage-ignore(suite): Not run.
15771573
void printOn(StringSink sink) {
1578-
NameSystem syntheticNames = new NameSystem();
15791574
sink.write(", receiver: ");
1580-
printNodeOn(receiver, sink, syntheticNames: syntheticNames);
1575+
printNodeOn(receiver, sink);
15811576
sink.write(", index: ");
1582-
printNodeOn(index, sink, syntheticNames: syntheticNames);
1577+
printNodeOn(index, sink);
15831578
sink.write(", isNullAware: ${isNullAware}");
15841579
}
15851580

@@ -1753,9 +1748,8 @@ class ThisIndexedAccessGenerator extends Generator {
17531748
@override
17541749
// Coverage-ignore(suite): Not run.
17551750
void printOn(StringSink sink) {
1756-
NameSystem syntheticNames = new NameSystem();
17571751
sink.write(", index: ");
1758-
printNodeOn(index, sink, syntheticNames: syntheticNames);
1752+
printNodeOn(index, sink);
17591753
}
17601754
}
17611755

@@ -1930,9 +1924,8 @@ class SuperIndexedAccessGenerator extends Generator {
19301924
@override
19311925
// Coverage-ignore(suite): Not run.
19321926
void printOn(StringSink sink) {
1933-
NameSystem syntheticNames = new NameSystem();
19341927
sink.write(", index: ");
1935-
printNodeOn(index, sink, syntheticNames: syntheticNames);
1928+
printNodeOn(index, sink);
19361929
sink.write(", getter: ");
19371930
printQualifiedNameOn(getter, sink);
19381931
sink.write(", setter: ");
@@ -3347,9 +3340,8 @@ class ExplicitExtensionIndexedAccessGenerator extends Generator {
33473340
@override
33483341
// Coverage-ignore(suite): Not run.
33493342
void printOn(StringSink sink) {
3350-
NameSystem syntheticNames = new NameSystem();
33513343
sink.write(", index: ");
3352-
printNodeOn(index, sink, syntheticNames: syntheticNames);
3344+
printNodeOn(index, sink);
33533345
sink.write(", readTarget: ");
33543346
printQualifiedNameOn(readTarget, sink);
33553347
sink.write(", writeTarget: ");
@@ -4931,9 +4923,8 @@ abstract class AbstractReadOnlyAccessGenerator extends Generator {
49314923
@override
49324924
// Coverage-ignore(suite): Not run.
49334925
void printOn(StringSink sink) {
4934-
NameSystem syntheticNames = new NameSystem();
49354926
sink.write(", expression: ");
4936-
printNodeOn(expression, sink, syntheticNames: syntheticNames);
4927+
printNodeOn(expression, sink);
49374928
sink.write(", plainNameForRead: ");
49384929
sink.write(targetName);
49394930
sink.write(", kind: ");
@@ -4946,7 +4937,6 @@ abstract class ErroneousExpressionGenerator extends Generator {
49464937
: super(helper, token);
49474938

49484939
InvalidExpression buildError({
4949-
Arguments? arguments,
49504940
required UnresolvedKind kind,
49514941
int? charOffset,
49524942
bool errorHasBeenReported = false,
@@ -4972,11 +4962,7 @@ abstract class ErroneousExpressionGenerator extends Generator {
49724962
ArgumentsImpl arguments, {
49734963
bool isTypeArgumentsInForest = false,
49744964
}) {
4975-
return buildError(
4976-
arguments: arguments,
4977-
charOffset: offset,
4978-
kind: UnresolvedKind.Method,
4979-
);
4965+
return buildError(charOffset: offset, kind: UnresolvedKind.Method);
49804966
}
49814967

49824968
@override
@@ -5016,12 +5002,7 @@ abstract class ErroneousExpressionGenerator extends Generator {
50165002
required int operatorOffset,
50175003
bool voidContext = false,
50185004
}) {
5019-
return buildError(
5020-
arguments: _forest.createArguments(fileOffset, <Expression>[
5021-
_forest.createIntLiteral(operatorOffset, 1),
5022-
]),
5023-
kind: UnresolvedKind.Getter,
5024-
)..fileOffset = operatorOffset;
5005+
return buildError(kind: UnresolvedKind.Getter)..fileOffset = operatorOffset;
50255006
}
50265007

50275008
@override
@@ -5030,12 +5011,7 @@ abstract class ErroneousExpressionGenerator extends Generator {
50305011
required int operatorOffset,
50315012
bool voidContext = false,
50325013
}) {
5033-
return buildError(
5034-
arguments: _forest.createArguments(fileOffset, <Expression>[
5035-
_forest.createIntLiteral(operatorOffset, 1),
5036-
]),
5037-
kind: UnresolvedKind.Getter,
5038-
)..fileOffset = operatorOffset;
5014+
return buildError(kind: UnresolvedKind.Getter)..fileOffset = operatorOffset;
50395015
}
50405016

50415017
@override
@@ -5085,17 +5061,7 @@ abstract class ErroneousExpressionGenerator extends Generator {
50855061
Constness constness, {
50865062
required bool inImplicitCreationContext,
50875063
}) {
5088-
if (typeArguments != null) {
5089-
assert(arguments.types.isEmpty);
5090-
arguments.setExplicitTypeArguments(
5091-
_helper.buildDartTypeArguments(
5092-
typeArguments,
5093-
TypeUse.constructorTypeArgument,
5094-
allowPotentiallyConstantType: false,
5095-
),
5096-
);
5097-
}
5098-
return buildError(arguments: arguments, kind: UnresolvedKind.Constructor);
5064+
return buildError(kind: UnresolvedKind.Constructor);
50995065
}
51005066

51015067
@override
@@ -5156,7 +5122,6 @@ class DuplicateDeclarationGenerator extends ErroneousExpressionGenerator {
51565122

51575123
@override
51585124
InvalidExpression buildError({
5159-
Arguments? arguments,
51605125
required UnresolvedKind kind,
51615126
int? charOffset,
51625127
bool errorHasBeenReported = false,
@@ -5279,7 +5244,6 @@ class UnresolvedNameGenerator extends ErroneousExpressionGenerator {
52795244
bool isTypeArgumentsInForest = false,
52805245
}) {
52815246
return buildError(
5282-
arguments: arguments,
52835247
charOffset: charOffset,
52845248
kind: UnresolvedKind.Method,
52855249
errorHasBeenReported: errorHasBeenReported,
@@ -5288,7 +5252,6 @@ class UnresolvedNameGenerator extends ErroneousExpressionGenerator {
52885252

52895253
@override
52905254
InvalidExpression buildError({
5291-
Arguments? arguments,
52925255
required UnresolvedKind kind,
52935256
int? charOffset,
52945257
bool errorHasBeenReported = false,
@@ -6683,7 +6646,6 @@ class IncompleteErrorGenerator extends ErroneousExpressionGenerator {
66836646

66846647
@override
66856648
InvalidExpression buildError({
6686-
Arguments? arguments,
66876649
required UnresolvedKind kind,
66886650
String? name,
66896651
int? charOffset,

0 commit comments

Comments
 (0)