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

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

Issue 2970273004: Deprecate all diagnostics methods that use strings. (Closed)
Patch Set: Merged with 4df146dd9a465d63344330bf3e45524b927c92ec Created 3 years, 5 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_enum_builder; 5 library fasta.kernel_enum_builder;
6 6
7 import 'package:kernel/ast.dart' 7 import 'package:kernel/ast.dart'
8 show 8 show
9 Arguments, 9 Arguments,
10 Class, 10 Class,
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 parent, 150 parent,
151 charOffset, 151 charOffset,
152 charOffset, 152 charOffset,
153 charEndOffset); 153 charEndOffset);
154 members["toString"] = toStringBuilder; 154 members["toString"] = toStringBuilder;
155 String className = name; 155 String className = name;
156 for (int i = 0; i < constantNamesAndOffsets.length; i += 2) { 156 for (int i = 0; i < constantNamesAndOffsets.length; i += 2) {
157 String name = constantNamesAndOffsets[i]; 157 String name = constantNamesAndOffsets[i];
158 int charOffset = constantNamesAndOffsets[i + 1]; 158 int charOffset = constantNamesAndOffsets[i + 1];
159 if (members.containsKey(name)) { 159 if (members.containsKey(name)) {
160 parent.addCompileTimeError(charOffset, "Duplicated name: '$name'."); 160 parent.deprecated_addCompileTimeError(
161 charOffset, "Duplicated name: '$name'.");
161 constantNamesAndOffsets[i] = null; 162 constantNamesAndOffsets[i] = null;
162 continue; 163 continue;
163 } 164 }
164 if (name == className) { 165 if (name == className) {
165 parent.addCompileTimeError( 166 parent.deprecated_addCompileTimeError(
166 charOffset, 167 charOffset,
167 "Name of enum constant '$name' can't be the same as the enum's " 168 "Name of enum constant '$name' can't be the same as the enum's "
168 "own name."); 169 "own name.");
169 constantNamesAndOffsets[i] = null; 170 constantNamesAndOffsets[i] = null;
170 continue; 171 continue;
171 } 172 }
172 KernelFieldBuilder fieldBuilder = new KernelFieldBuilder(null, selfType, 173 KernelFieldBuilder fieldBuilder = new KernelFieldBuilder(null, selfType,
173 name, constMask | staticMask, parent, charOffset, null, true); 174 name, constMask | staticMask, parent, charOffset, null, true);
174 members[name] = fieldBuilder; 175 members[name] = fieldBuilder;
175 toStringEntries.add(new MapEntry( 176 toStringEntries.add(new MapEntry(
(...skipping 30 matching lines...) Expand all
206 KernelTypeBuilder get mixedInType => null; 207 KernelTypeBuilder get mixedInType => null;
207 208
208 InterfaceType buildType( 209 InterfaceType buildType(
209 LibraryBuilder library, List<KernelTypeBuilder> arguments) { 210 LibraryBuilder library, List<KernelTypeBuilder> arguments) {
210 return cls.rawType; 211 return cls.rawType;
211 } 212 }
212 213
213 @override 214 @override
214 Class build(KernelLibraryBuilder libraryBuilder, LibraryBuilder coreLibrary) { 215 Class build(KernelLibraryBuilder libraryBuilder, LibraryBuilder coreLibrary) {
215 if (constantNamesAndOffsets.isEmpty) { 216 if (constantNamesAndOffsets.isEmpty) {
216 libraryBuilder.addCompileTimeError( 217 libraryBuilder.deprecated_addCompileTimeError(
217 -1, "An enum declaration can't be empty."); 218 -1, "An enum declaration can't be empty.");
218 } 219 }
219 intType.resolveIn(coreLibrary.scope); 220 intType.resolveIn(coreLibrary.scope);
220 stringType.resolveIn(coreLibrary.scope); 221 stringType.resolveIn(coreLibrary.scope);
221 objectType.resolveIn(coreLibrary.scope); 222 objectType.resolveIn(coreLibrary.scope);
222 listType.resolveIn(coreLibrary.scope); 223 listType.resolveIn(coreLibrary.scope);
223 toStringMap.keyType = intType.build(libraryBuilder); 224 toStringMap.keyType = intType.build(libraryBuilder);
224 toStringMap.valueType = stringType.build(libraryBuilder); 225 toStringMap.valueType = stringType.build(libraryBuilder);
225 KernelFieldBuilder indexFieldBuilder = this["index"]; 226 KernelFieldBuilder indexFieldBuilder = this["index"];
226 Field indexField = indexFieldBuilder.build(libraryBuilder); 227 Field indexField = indexFieldBuilder.build(libraryBuilder);
(...skipping 24 matching lines...) Expand all
251 new VariableGet(constructor.function.positionalParameters.single)) 252 new VariableGet(constructor.function.positionalParameters.single))
252 ..parent = constructor); 253 ..parent = constructor);
253 KernelClassBuilder objectClass = objectType.builder; 254 KernelClassBuilder objectClass = objectType.builder;
254 MemberBuilder superConstructor = objectClass.findConstructorOrFactory( 255 MemberBuilder superConstructor = objectClass.findConstructorOrFactory(
255 "", charOffset, fileUri, libraryBuilder); 256 "", charOffset, fileUri, libraryBuilder);
256 if (superConstructor == null || !superConstructor.isConstructor) { 257 if (superConstructor == null || !superConstructor.isConstructor) {
257 // TODO(ahe): Ideally, we would also want to check that [Object]'s 258 // TODO(ahe): Ideally, we would also want to check that [Object]'s
258 // unnamed constructor requires no arguments. But that information isn't 259 // unnamed constructor requires no arguments. But that information isn't
259 // always available at this point, and it's not really a situation that 260 // always available at this point, and it's not really a situation that
260 // can happen unless you start modifying the SDK sources. 261 // can happen unless you start modifying the SDK sources.
261 addCompileTimeError(-1, "'Object' has no unnamed constructor."); 262 deprecated_addCompileTimeError(
263 -1, "'Object' has no unnamed constructor.");
262 } else { 264 } else {
263 constructor.initializers.add( 265 constructor.initializers.add(
264 new SuperInitializer(superConstructor.target, new Arguments.empty()) 266 new SuperInitializer(superConstructor.target, new Arguments.empty())
265 ..parent = constructor); 267 ..parent = constructor);
266 } 268 }
267 int index = 0; 269 int index = 0;
268 for (int i = 0; i < constantNamesAndOffsets.length; i += 2) { 270 for (int i = 0; i < constantNamesAndOffsets.length; i += 2) {
269 String constant = constantNamesAndOffsets[i]; 271 String constant = constantNamesAndOffsets[i];
270 if (constant != null) { 272 if (constant != null) {
271 KernelFieldBuilder field = this[constant]; 273 KernelFieldBuilder field = this[constant];
272 field.build(libraryBuilder); 274 field.build(libraryBuilder);
273 Arguments arguments = 275 Arguments arguments =
274 new Arguments(<Expression>[new IntLiteral(index++)]); 276 new Arguments(<Expression>[new IntLiteral(index++)]);
275 field.initializer = 277 field.initializer =
276 new ConstructorInvocation(constructor, arguments, isConst: true); 278 new ConstructorInvocation(constructor, arguments, isConst: true);
277 } 279 }
278 } 280 }
279 return super.build(libraryBuilder, coreLibrary); 281 return super.build(libraryBuilder, coreLibrary);
280 } 282 }
281 283
282 @override 284 @override
283 Builder findConstructorOrFactory( 285 Builder findConstructorOrFactory(
284 String name, int charOffset, Uri uri, LibraryBuilder library) { 286 String name, int charOffset, Uri uri, LibraryBuilder library) {
285 return null; 287 return null;
286 } 288 }
287 } 289 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698