Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1502)

Unified Diff: pkg/front_end/lib/src/fasta/builder/type_declaration_builder.dart

Issue 2708893002: fasta: Cache relativizeUri(fileUri) on LibraryBuilder and ClassBuilder (or rather it's base class) (Closed)
Patch Set: Reorder import Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/lib/src/fasta/builder/type_declaration_builder.dart
diff --git a/pkg/front_end/lib/src/fasta/builder/type_declaration_builder.dart b/pkg/front_end/lib/src/fasta/builder/type_declaration_builder.dart
index bb3ceb2c87cc15ffa1adcdb05481000a043f5159..3ea0d8dec94b79325dd62d6a0691187d4df3775b 100644
--- a/pkg/front_end/lib/src/fasta/builder/type_declaration_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/type_declaration_builder.dart
@@ -10,6 +10,9 @@ import 'builder.dart' show
ModifierBuilder,
TypeBuilder;
+import '../util/relativize.dart' show
+ relativizeUri;
+
abstract class TypeDeclarationBuilder<T extends TypeBuilder, R>
extends ModifierBuilder {
final List<MetadataBuilder> metadata;
@@ -20,8 +23,16 @@ abstract class TypeDeclarationBuilder<T extends TypeBuilder, R>
Builder parent;
- TypeDeclarationBuilder(this.metadata, this.modifiers, this.name,
- Builder parent, int charOffset, [Uri fileUri])
+ final Uri fileUri;
+ final String relativeFileUri;
+
+ TypeDeclarationBuilder(List<MetadataBuilder> metadata, int modifiers,
+ String name, Builder parent, int charOffset, [Uri fileUri])
+ : this._internal(metadata, modifiers, name, parent, charOffset, fileUri,
+ fileUri != null ? relativizeUri(fileUri) : parent?.relativeFileUri);
+
+ TypeDeclarationBuilder._internal(this.metadata, this.modifiers, this.name,
+ Builder parent, int charOffset, this.fileUri, this.relativeFileUri)
ahe 2017/02/21 14:15:22 I think you can get away with one constructor here
kustermann 2017/02/22 14:40:28 Done - though now I have one subexpression evaluat
: parent = parent, super(parent, charOffset, fileUri ?? parent?.fileUri);
bool get isTypeDeclaration => true;

Powered by Google App Engine
This is Rietveld 408576698