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

Side by Side Diff: pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart

Issue 2691613002: Improve compile-time error handling. (Closed)
Patch Set: Update status and expectations for rasta tests. 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 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.dill_library_builder; 5 library fasta.dill_library_builder;
6 6
7 import 'package:kernel/ast.dart' show 7 import 'package:kernel/ast.dart' show
8 Class, 8 Class,
9 ExpressionStatement, 9 ExpressionStatement,
10 Field, 10 Field,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 51
52 DillLibraryBuilder(Uri uri, this.loader) 52 DillLibraryBuilder(Uri uri, this.loader)
53 : uri = uri, super(uri); 53 : uri = uri, super(uri);
54 54
55 get scope => internalError("Scope not supported"); 55 get scope => internalError("Scope not supported");
56 56
57 Uri get fileUri => uri; 57 Uri get fileUri => uri;
58 58
59 void addClass(Class cls) { 59 void addClass(Class cls) {
60 DillClassBuilder classBulder = new DillClassBuilder(cls, this); 60 DillClassBuilder classBulder = new DillClassBuilder(cls, this);
61 addBuilder(cls.name, classBulder); 61 addBuilder(cls.name, classBulder, cls.fileOffset);
62 cls.procedures.forEach(classBulder.addMember); 62 cls.procedures.forEach(classBulder.addMember);
63 cls.constructors.forEach(classBulder.addMember); 63 cls.constructors.forEach(classBulder.addMember);
64 for (Field field in cls.fields) { 64 for (Field field in cls.fields) {
65 if (field.name.name == "_redirecting#") { 65 if (field.name.name == "_redirecting#") {
66 // This is a hack / work around for storing redirecting constructors in 66 // This is a hack / work around for storing redirecting constructors in
67 // dill files. See `buildFactoryConstructor` in 67 // dill files. See `buildFactoryConstructor` in
68 // [package:kernel/analyzer/ast_from_analyzer.dart] 68 // [package:kernel/analyzer/ast_from_analyzer.dart]
69 // (../../../../kernel/lib/analyzer/ast_from_analyzer.dart). 69 // (../../../../kernel/lib/analyzer/ast_from_analyzer.dart).
70 ListLiteral initializer = field.initializer; 70 ListLiteral initializer = field.initializer;
71 for (StaticGet get in initializer.expressions) { 71 for (StaticGet get in initializer.expressions) {
(...skipping 12 matching lines...) Expand all
84 } 84 }
85 } 85 }
86 86
87 void addMember(Member member) { 87 void addMember(Member member) {
88 String name = member.name.name; 88 String name = member.name.name;
89 if (name == "_exports#") { 89 if (name == "_exports#") {
90 // This is a hack / work around for storing exports in dill files. See 90 // This is a hack / work around for storing exports in dill files. See
91 // [compile_platform.dart](../compile_platform.dart). 91 // [compile_platform.dart](../compile_platform.dart).
92 print("$uri: _exports# not implemented yet."); 92 print("$uri: _exports# not implemented yet.");
93 } else { 93 } else {
94 addBuilder(name, new DillMemberBuilder(member, this)); 94 addBuilder(name, new DillMemberBuilder(member, this), member.fileOffset);
95 } 95 }
96 } 96 }
97 97
98 Builder addBuilder(String name, Builder builder) { 98 Builder addBuilder(String name, Builder builder, int charOffset) {
99 if (name == null || name.isEmpty) return null; 99 if (name == null || name.isEmpty) return null;
100 members[name] = builder; 100 members[name] = builder;
101 if (!name.startsWith("_")) { 101 if (!name.startsWith("_")) {
102 exports[name] = builder; 102 exports[name] = builder;
103 } 103 }
104 return builder; 104 return builder;
105 } 105 }
106 106
107 bool addToExportScope(String name, Builder member) { 107 bool addToExportScope(String name, Builder member) {
108 return internalError("Not implemented yet."); 108 return internalError("Not implemented yet.");
109 } 109 }
110 110
111 void addToScope(String name, Builder member) { 111 void addToScope(String name, Builder member) {
112 internalError("Not implemented yet."); 112 internalError("Not implemented yet.");
113 } 113 }
114 114
115 KernelInvalidTypeBuilder buildAmbiguousBuilder( 115 KernelInvalidTypeBuilder buildAmbiguousBuilder(
116 String name, Builder builder, Builder other, int charOffset) { 116 String name, Builder builder, Builder other, int charOffset) {
117 return new KernelInvalidTypeBuilder(name, charOffset, fileUri); 117 return new KernelInvalidTypeBuilder(name, charOffset, fileUri);
118 } 118 }
119 } 119 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698