Use named parameters for LinkInputLibrary and LinkInputUnit.
R=brianwilkerson@google.com
Change-Id: I1bee321bcf6775dd2a433024d35758dd7ab05b9e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201231
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/dart/sdk/build_sdk_summary.dart b/pkg/analyzer/lib/dart/sdk/build_sdk_summary.dart
index 486a073..c54627b 100644
--- a/pkg/analyzer/lib/dart/sdk/build_sdk_summary.dart
+++ b/pkg/analyzer/lib/dart/sdk/build_sdk_summary.dart
@@ -136,9 +136,15 @@
CompilationUnit definingUnit = _parse(source);
inputUnits.add(
- LinkInputUnit(null, source, false, definingUnit),
+ LinkInputUnit.tmp1(
+ partDirectiveIndex: null,
+ source: source,
+ isSynthetic: false,
+ unit: definingUnit,
+ ),
);
+ var partDirectiveIndex = 0;
for (Directive directive in definingUnit.directives) {
if (directive is NamespaceDirective) {
String libUri = directive.uri.stringValue!;
@@ -149,13 +155,22 @@
Source partSource = context.sourceFactory.resolveUri(source, partUri)!;
CompilationUnit partUnit = _parse(partSource);
inputUnits.add(
- LinkInputUnit(partUri, partSource, false, partUnit),
+ LinkInputUnit.tmp1(
+ partUriStr: partUri,
+ partDirectiveIndex: partDirectiveIndex++,
+ source: partSource,
+ isSynthetic: false,
+ unit: partUnit,
+ ),
);
}
}
inputLibraries.add(
- LinkInputLibrary(source, inputUnits),
+ LinkInputLibrary.tmp1(
+ source: source,
+ units: inputUnits,
+ ),
);
}
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_context.dart b/pkg/analyzer/lib/src/dart/analysis/library_context.dart
index f6fa993..8fc9a4a 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_context.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_context.dart
@@ -145,17 +145,22 @@
partIndex++;
inputUnits.add(
- link2.LinkInputUnit(
- partUriStr,
- file.source,
- isSynthetic,
- unit,
+ link2.LinkInputUnit.tmp1(
+ // TODO(scheglov) bad, group part data
+ partDirectiveIndex: partIndex - 1,
+ partUriStr: partUriStr,
+ source: file.source,
+ isSynthetic: isSynthetic,
+ unit: unit,
),
);
}
inputLibraries.add(
- link2.LinkInputLibrary(librarySource, inputUnits),
+ link2.LinkInputLibrary.tmp1(
+ source: librarySource,
+ units: inputUnits,
+ ),
);
}
inputsTimer.stop();
diff --git a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
index a175010..6ce2ccd 100644
--- a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
+++ b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
@@ -862,17 +862,22 @@
partIndex++;
inputUnits.add(
- link2.LinkInputUnit(
- partUriStr,
- file.source,
- isSynthetic,
- unit,
+ link2.LinkInputUnit.tmp1(
+ // TODO(scheglov) bad, group part data
+ partDirectiveIndex: partIndex - 1,
+ partUriStr: partUriStr,
+ source: file.source,
+ isSynthetic: isSynthetic,
+ unit: unit,
),
);
}
inputLibraries.add(
- link2.LinkInputLibrary(librarySource, inputUnits),
+ link2.LinkInputLibrary.tmp1(
+ source: librarySource,
+ units: inputUnits,
+ ),
);
}
inputsTimer.stop();
diff --git a/pkg/analyzer/lib/src/summary2/link.dart b/pkg/analyzer/lib/src/summary2/link.dart
index 225b860..cc67f58 100644
--- a/pkg/analyzer/lib/src/summary2/link.dart
+++ b/pkg/analyzer/lib/src/summary2/link.dart
@@ -238,29 +238,45 @@
final Source source;
final List<LinkInputUnit> units;
+ @Deprecated('Use LinkInputLibrary.tmp1() with instead')
LinkInputLibrary(this.source, this.units);
+ LinkInputLibrary.tmp1({
+ required this.source,
+ required this.units,
+ });
+
Uri get uri => source.uri;
String get uriStr => '$uri';
}
class LinkInputUnit {
+ final int? partDirectiveIndex;
final String? partUriStr;
final Source source;
final bool isSynthetic;
final ast.CompilationUnit unit;
+ @Deprecated('Use LinkInputUnit.tmp1() with instead')
LinkInputUnit(
this.partUriStr,
this.source,
this.isSynthetic,
this.unit,
- );
+ ) : partDirectiveIndex = null;
- String get uriStr {
- return '${source.uri}';
- }
+ LinkInputUnit.tmp1({
+ required this.partDirectiveIndex,
+ this.partUriStr,
+ required this.source,
+ required this.isSynthetic,
+ required this.unit,
+ });
+
+ Uri get uri => source.uri;
+
+ String get uriStr => '$uri';
}
class LinkResult {
diff --git a/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart b/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
index b07b6f8..57f9f33 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
@@ -59,7 +59,10 @@
var inputUnits = <LinkInputUnit>[];
_addLibraryUnits(source, unit, inputUnits, featureSet);
inputLibraries.add(
- LinkInputLibrary(source, inputUnits),
+ LinkInputLibrary.tmp1(
+ source: source,
+ units: inputUnits,
+ ),
);
}
@@ -95,9 +98,7 @@
for (var inputLibrary in inputLibraries) {
for (var inputUnit in inputLibrary.units) {
var informativeBytes = writeUnitInformative(inputUnit.unit);
- // TODO(scheglov) store Uri, don't parse
- var uri = Uri.parse(inputUnit.uriStr);
- unitsInformativeBytes[uri] = informativeBytes;
+ unitsInformativeBytes[inputUnit.uri] = informativeBytes;
}
}
@@ -146,10 +147,18 @@
FeatureSet featureSet,
) {
units.add(
- LinkInputUnit(null, definingSource, false, definingUnit),
+ LinkInputUnit.tmp1(
+ partDirectiveIndex: null,
+ source: definingSource,
+ isSynthetic: false,
+ unit: definingUnit,
+ ),
);
+
+ var partDirectiveIndex = -1;
for (var directive in definingUnit.directives) {
if (directive is PartDirective) {
+ ++partDirectiveIndex;
var relativeUriStr = directive.uri.stringValue;
var partSource = sourceFactory.resolveUri(
@@ -161,7 +170,13 @@
var text = _readSafely(partSource.fullName);
var unit = parseText(text, featureSet);
units.add(
- LinkInputUnit(relativeUriStr, partSource, false, unit),
+ LinkInputUnit.tmp1(
+ partDirectiveIndex: partDirectiveIndex,
+ partUriStr: relativeUriStr,
+ source: partSource,
+ isSynthetic: false,
+ unit: unit,
+ ),
);
}
}
@@ -185,7 +200,10 @@
var units = <LinkInputUnit>[];
_addLibraryUnits(source, unit, units, featureSet);
libraries.add(
- LinkInputLibrary(source, units),
+ LinkInputLibrary.tmp1(
+ source: source,
+ units: units,
+ ),
);
void addRelativeUriStr(StringLiteral uriNode) {