Chromium Code Reviews| 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; |