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

Side by Side Diff: pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart

Issue 2729943003: Recover from bad supertypes. (Closed)
Patch Set: Update status files. Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library fasta.kernel_field_builder; 5 library fasta.kernel_field_builder;
6 6
7 import 'package:kernel/ast.dart' show Expression, Field, Library, Name; 7 import 'package:kernel/ast.dart' show Expression, Field, Name;
8 8
9 import 'kernel_builder.dart' 9 import 'kernel_builder.dart'
10 show Builder, FieldBuilder, KernelTypeBuilder, MetadataBuilder; 10 show
11 Builder,
12 FieldBuilder,
13 KernelTypeBuilder,
14 LibraryBuilder,
15 MetadataBuilder;
11 16
12 class KernelFieldBuilder extends FieldBuilder<Expression> { 17 class KernelFieldBuilder extends FieldBuilder<Expression> {
13 final Field field; 18 final Field field;
14 final List<MetadataBuilder> metadata; 19 final List<MetadataBuilder> metadata;
15 final KernelTypeBuilder type; 20 final KernelTypeBuilder type;
16 21
17 KernelFieldBuilder(this.metadata, this.type, String name, int modifiers, 22 KernelFieldBuilder(this.metadata, this.type, String name, int modifiers,
18 Builder compilationUnit, int charOffset) 23 Builder compilationUnit, int charOffset)
19 : field = new Field(null, fileUri: compilationUnit?.relativeFileUri) 24 : field = new Field(null, fileUri: compilationUnit?.relativeFileUri)
20 ..fileOffset = charOffset, 25 ..fileOffset = charOffset,
21 super(name, modifiers, compilationUnit, charOffset); 26 super(name, modifiers, compilationUnit, charOffset);
22 27
23 void set initializer(Expression value) { 28 void set initializer(Expression value) {
24 field.initializer = value..parent = field; 29 field.initializer = value..parent = field;
25 } 30 }
26 31
27 Field build(Library library) { 32 Field build(LibraryBuilder library) {
28 field.name ??= new Name(name, library); 33 field.name ??= new Name(name, library.target);
29 if (type != null) { 34 if (type != null) {
30 field.type = type.build(); 35 field.type = type.build(library);
31 } 36 }
32 bool isInstanceMember = !isStatic && !isTopLevel; 37 bool isInstanceMember = !isStatic && !isTopLevel;
33 return field 38 return field
34 ..isFinal = isFinal 39 ..isFinal = isFinal
35 ..isConst = isConst 40 ..isConst = isConst
36 ..hasImplicitGetter = isInstanceMember 41 ..hasImplicitGetter = isInstanceMember
37 ..hasImplicitSetter = isInstanceMember && !isConst && !isFinal 42 ..hasImplicitSetter = isInstanceMember && !isConst && !isFinal
38 ..isStatic = !isInstanceMember; 43 ..isStatic = !isInstanceMember;
39 } 44 }
40 45
41 Field get target => field; 46 Field get target => field;
42 } 47 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698