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

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

Issue 2986093002: Revert two Kernel changes that were causing test failures. (Closed)
Patch Set: Revert "Migrate language/async_backwards... ... language/async_star_take..." Created 3 years, 4 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_procedure_builder; 5 library fasta.kernel_procedure_builder;
6 6
7 import 'package:kernel/ast.dart' 7 import 'package:kernel/ast.dart'
8 show 8 show
9 Arguments, 9 Arguments,
10 AsyncMarker, 10 AsyncMarker,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 74
75 abstract class KernelFunctionBuilder 75 abstract class KernelFunctionBuilder
76 extends ProcedureBuilder<KernelTypeBuilder> { 76 extends ProcedureBuilder<KernelTypeBuilder> {
77 final String nativeMethodName; 77 final String nativeMethodName;
78 78
79 FunctionNode function; 79 FunctionNode function;
80 80
81 Statement actualBody; 81 Statement actualBody;
82 82
83 KernelFunctionBuilder( 83 KernelFunctionBuilder(
84 String documentationComment,
85 List<MetadataBuilder> metadata, 84 List<MetadataBuilder> metadata,
86 int modifiers, 85 int modifiers,
87 KernelTypeBuilder returnType, 86 KernelTypeBuilder returnType,
88 String name, 87 String name,
89 List<TypeVariableBuilder> typeVariables, 88 List<TypeVariableBuilder> typeVariables,
90 List<FormalParameterBuilder> formals, 89 List<FormalParameterBuilder> formals,
91 KernelLibraryBuilder compilationUnit, 90 KernelLibraryBuilder compilationUnit,
92 int charOffset, 91 int charOffset,
93 this.nativeMethodName) 92 this.nativeMethodName)
94 : super(documentationComment, metadata, modifiers, returnType, name, 93 : super(metadata, modifiers, returnType, name, typeVariables, formals,
95 typeVariables, formals, compilationUnit, charOffset); 94 compilationUnit, charOffset);
96 95
97 void set body(Statement newBody) { 96 void set body(Statement newBody) {
98 if (newBody != null) { 97 if (newBody != null) {
99 if (isAbstract) { 98 if (isAbstract) {
100 return internalProblem(messageInternalProblemBodyOnAbstractMethod, 99 return internalProblem(messageInternalProblemBodyOnAbstractMethod,
101 newBody.fileOffset, fileUri); 100 newBody.fileOffset, fileUri);
102 } 101 }
103 if (isExternal) { 102 if (isExternal) {
104 return library.addCompileTimeError( 103 return library.addCompileTimeError(
105 messageExternalMethodWithBody, newBody.fileOffset, fileUri); 104 messageExternalMethodWithBody, newBody.fileOffset, fileUri);
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 200
202 class KernelProcedureBuilder extends KernelFunctionBuilder { 201 class KernelProcedureBuilder extends KernelFunctionBuilder {
203 final KernelProcedure procedure; 202 final KernelProcedure procedure;
204 final int charOpenParenOffset; 203 final int charOpenParenOffset;
205 204
206 AsyncMarker actualAsyncModifier = AsyncMarker.Sync; 205 AsyncMarker actualAsyncModifier = AsyncMarker.Sync;
207 206
208 final ConstructorReferenceBuilder redirectionTarget; 207 final ConstructorReferenceBuilder redirectionTarget;
209 208
210 KernelProcedureBuilder( 209 KernelProcedureBuilder(
211 String documentationComment,
212 List<MetadataBuilder> metadata, 210 List<MetadataBuilder> metadata,
213 int modifiers, 211 int modifiers,
214 KernelTypeBuilder returnType, 212 KernelTypeBuilder returnType,
215 String name, 213 String name,
216 List<TypeVariableBuilder> typeVariables, 214 List<TypeVariableBuilder> typeVariables,
217 List<FormalParameterBuilder> formals, 215 List<FormalParameterBuilder> formals,
218 ProcedureKind kind, 216 ProcedureKind kind,
219 KernelLibraryBuilder compilationUnit, 217 KernelLibraryBuilder compilationUnit,
220 int charOffset, 218 int charOffset,
221 this.charOpenParenOffset, 219 this.charOpenParenOffset,
222 int charEndOffset, 220 int charEndOffset,
223 [String nativeMethodName, 221 [String nativeMethodName,
224 this.redirectionTarget]) 222 this.redirectionTarget])
225 : procedure = new KernelProcedure(null, kind, null, returnType == null, 223 : procedure = new KernelProcedure(null, kind, null, returnType == null,
226 fileUri: compilationUnit?.relativeFileUri) 224 fileUri: compilationUnit?.relativeFileUri)
227 ..fileOffset = charOffset 225 ..fileOffset = charOffset
228 ..fileEndOffset = charEndOffset, 226 ..fileEndOffset = charEndOffset,
229 super( 227 super(metadata, modifiers, returnType, name, typeVariables, formals,
230 documentationComment, 228 compilationUnit, charOffset, nativeMethodName);
231 metadata,
232 modifiers,
233 returnType,
234 name,
235 typeVariables,
236 formals,
237 compilationUnit,
238 charOffset,
239 nativeMethodName);
240 229
241 ProcedureKind get kind => procedure.kind; 230 ProcedureKind get kind => procedure.kind;
242 231
243 AsyncMarker get asyncModifier => actualAsyncModifier; 232 AsyncMarker get asyncModifier => actualAsyncModifier;
244 233
245 Statement get body { 234 Statement get body {
246 if (actualBody == null && 235 if (actualBody == null &&
247 redirectionTarget == null && 236 redirectionTarget == null &&
248 !isAbstract && 237 !isAbstract &&
249 !isExternal) { 238 !isExternal) {
(...skipping 30 matching lines...) Expand all
280 if (procedure.name == null) { 269 if (procedure.name == null) {
281 procedure.function = buildFunction(library); 270 procedure.function = buildFunction(library);
282 procedure.function.parent = procedure; 271 procedure.function.parent = procedure;
283 procedure.function.fileOffset = charOpenParenOffset; 272 procedure.function.fileOffset = charOpenParenOffset;
284 procedure.function.fileEndOffset = procedure.fileEndOffset; 273 procedure.function.fileEndOffset = procedure.fileEndOffset;
285 procedure.isAbstract = isAbstract; 274 procedure.isAbstract = isAbstract;
286 procedure.isStatic = isStatic; 275 procedure.isStatic = isStatic;
287 procedure.isExternal = isExternal; 276 procedure.isExternal = isExternal;
288 procedure.isConst = isConst; 277 procedure.isConst = isConst;
289 procedure.name = new Name(name, library.target); 278 procedure.name = new Name(name, library.target);
290 procedure.documentationComment = documentationComment;
291 } 279 }
292 if (isEligibleForTopLevelInference) { 280 if (isEligibleForTopLevelInference) {
293 library.loader.typeInferenceEngine.recordMember(procedure); 281 library.loader.typeInferenceEngine.recordMember(procedure);
294 } 282 }
295 return procedure; 283 return procedure;
296 } 284 }
297 285
298 Procedure get target => procedure; 286 Procedure get target => procedure;
299 287
300 @override 288 @override
(...skipping 14 matching lines...) Expand all
315 303
316 final int charOpenParenOffset; 304 final int charOpenParenOffset;
317 305
318 bool hasMovedSuperInitializer = false; 306 bool hasMovedSuperInitializer = false;
319 307
320 SuperInitializer superInitializer; 308 SuperInitializer superInitializer;
321 309
322 RedirectingInitializer redirectingInitializer; 310 RedirectingInitializer redirectingInitializer;
323 311
324 KernelConstructorBuilder( 312 KernelConstructorBuilder(
325 String documentationComment,
326 List<MetadataBuilder> metadata, 313 List<MetadataBuilder> metadata,
327 int modifiers, 314 int modifiers,
328 KernelTypeBuilder returnType, 315 KernelTypeBuilder returnType,
329 String name, 316 String name,
330 List<TypeVariableBuilder> typeVariables, 317 List<TypeVariableBuilder> typeVariables,
331 List<FormalParameterBuilder> formals, 318 List<FormalParameterBuilder> formals,
332 KernelLibraryBuilder compilationUnit, 319 KernelLibraryBuilder compilationUnit,
333 int charOffset, 320 int charOffset,
334 this.charOpenParenOffset, 321 this.charOpenParenOffset,
335 int charEndOffset, 322 int charEndOffset,
336 [String nativeMethodName]) 323 [String nativeMethodName])
337 : constructor = new Constructor(null) 324 : constructor = new Constructor(null)
338 ..fileOffset = charOffset 325 ..fileOffset = charOffset
339 ..fileEndOffset = charEndOffset, 326 ..fileEndOffset = charEndOffset,
340 super( 327 super(metadata, modifiers, returnType, name, typeVariables, formals,
341 documentationComment, 328 compilationUnit, charOffset, nativeMethodName);
342 metadata,
343 modifiers,
344 returnType,
345 name,
346 typeVariables,
347 formals,
348 compilationUnit,
349 charOffset,
350 nativeMethodName);
351 329
352 bool get isInstanceMember => false; 330 bool get isInstanceMember => false;
353 331
354 bool get isConstructor => true; 332 bool get isConstructor => true;
355 333
356 AsyncMarker get asyncModifier => AsyncMarker.Sync; 334 AsyncMarker get asyncModifier => AsyncMarker.Sync;
357 335
358 ProcedureKind get kind => null; 336 ProcedureKind get kind => null;
359 337
360 bool get isRedirectingGenerativeConstructor { 338 bool get isRedirectingGenerativeConstructor {
361 return isRedirectingGenerativeConstructorImplementation(constructor); 339 return isRedirectingGenerativeConstructorImplementation(constructor);
362 } 340 }
363 341
364 Constructor build(SourceLibraryBuilder library) { 342 Constructor build(SourceLibraryBuilder library) {
365 if (constructor.name == null) { 343 if (constructor.name == null) {
366 constructor.function = buildFunction(library); 344 constructor.function = buildFunction(library);
367 constructor.function.parent = constructor; 345 constructor.function.parent = constructor;
368 constructor.function.fileOffset = charOpenParenOffset; 346 constructor.function.fileOffset = charOpenParenOffset;
369 constructor.function.fileEndOffset = constructor.fileEndOffset; 347 constructor.function.fileEndOffset = constructor.fileEndOffset;
370 constructor.isConst = isConst; 348 constructor.isConst = isConst;
371 constructor.isExternal = isExternal; 349 constructor.isExternal = isExternal;
372 constructor.name = new Name(name, library.target); 350 constructor.name = new Name(name, library.target);
373 constructor.documentationComment = documentationComment;
374 } 351 }
375 return constructor; 352 return constructor;
376 } 353 }
377 354
378 FunctionNode buildFunction(LibraryBuilder library) { 355 FunctionNode buildFunction(LibraryBuilder library) {
379 // TODO(ahe): Should complain if another type is explicitly set. 356 // TODO(ahe): Should complain if another type is explicitly set.
380 return super.buildFunction(library)..returnType = const VoidType(); 357 return super.buildFunction(library)..returnType = const VoidType();
381 } 358 }
382 359
383 Constructor get target => constructor; 360 Constructor get target => constructor;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 } 412 }
436 } 413 }
437 initializers.add(initializer..parent = constructor); 414 initializers.add(initializer..parent = constructor);
438 initializers.add(superInitializer); 415 initializers.add(superInitializer);
439 return; 416 return;
440 } 417 }
441 initializers.add(initializer); 418 initializers.add(initializer);
442 initializer.parent = constructor; 419 initializer.parent = constructor;
443 } 420 }
444 } 421 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart ('k') | pkg/front_end/lib/src/fasta/kernel/kernel_target.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698