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

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

Issue 2954063002: Small fixes to top level type inference. (Closed)
Patch Set: Created 3 years, 6 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.body_builder; 5 library fasta.body_builder;
6 6
7 import '../fasta_codes.dart' 7 import '../fasta_codes.dart'
8 show 8 show
9 FastaMessage, 9 FastaMessage,
10 codeConstFieldWithoutInitializer, 10 codeConstFieldWithoutInitializer,
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 } 431 }
432 fields.add(field); 432 fields.add(field);
433 if (initializer != null) { 433 if (initializer != null) {
434 if (field.next != null) { 434 if (field.next != null) {
435 // TODO(ahe): This can happen, for example, if a final field is 435 // TODO(ahe): This can happen, for example, if a final field is
436 // combined with a setter. 436 // combined with a setter.
437 internalError( 437 internalError(
438 "Unhandled: '${field.name}' has more than one declaration."); 438 "Unhandled: '${field.name}' has more than one declaration.");
439 } 439 }
440 field.initializer = initializer; 440 field.initializer = initializer;
441 _typeInferrer.inferFieldInitializer(field.builtType, initializer); 441 _typeInferrer.inferFieldInitializer(
442 field.hasImplicitType ? null : field.builtType, initializer);
442 } 443 }
443 } 444 }
444 pop(); // Type. 445 pop(); // Type.
445 pop(); // Modifiers. 446 pop(); // Modifiers.
446 List annotations = pop(); 447 List annotations = pop();
447 if (annotations != null) { 448 if (annotations != null) {
448 Field field = fields.first.target; 449 Field field = fields.first.target;
449 // The first (and often only field) will not get a clone. 450 // The first (and often only field) will not get a clone.
450 annotations.forEach(field.addAnnotation); 451 annotations.forEach(field.addAnnotation);
451 for (int i = 1; i < fields.length; i++) { 452 for (int i = 1; i < fields.length; i++) {
(...skipping 3234 matching lines...) Expand 10 before | Expand all | Expand 10 after
3686 if (starToken == null) { 3687 if (starToken == null) {
3687 return AsyncMarker.Async; 3688 return AsyncMarker.Async;
3688 } else { 3689 } else {
3689 assert(identical(starToken.stringValue, "*")); 3690 assert(identical(starToken.stringValue, "*"));
3690 return AsyncMarker.AsyncStar; 3691 return AsyncMarker.AsyncStar;
3691 } 3692 }
3692 } else { 3693 } else {
3693 return internalError("Unknown async modifier: $asyncToken"); 3694 return internalError("Unknown async modifier: $asyncToken");
3694 } 3695 }
3695 } 3696 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/builder/field_builder.dart ('k') | pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698