Chromium Code Reviews| OLD | NEW |
|---|---|
| 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:front_end/src/fasta/kernel/body_builder.dart' show BodyBuilder; | 7 import 'package:front_end/src/fasta/kernel/body_builder.dart' show BodyBuilder; |
| 8 | 8 |
| 9 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' | 9 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' |
| 10 show KernelField; | 10 show KernelField; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 66 @override | 66 @override |
| 67 void prepareInitializerInference( | 67 void prepareInitializerInference( |
| 68 SourceLibraryBuilder library, ClassBuilder currentClass) { | 68 SourceLibraryBuilder library, ClassBuilder currentClass) { |
| 69 if (initializerToken != null) { | 69 if (initializerToken != null) { |
| 70 var memberScope = | 70 var memberScope = |
| 71 currentClass == null ? library.scope : currentClass.scope; | 71 currentClass == null ? library.scope : currentClass.scope; |
| 72 // TODO(paulberry): Is it correct to pass library.uri into BodyBuilder, or | 72 // TODO(paulberry): Is it correct to pass library.uri into BodyBuilder, or |
| 73 // should it be the part URI? | 73 // should it be the part URI? |
| 74 var typeInferenceEngine = library.loader.typeInferenceEngine; | 74 var typeInferenceEngine = library.loader.typeInferenceEngine; |
| 75 var listener = new TypeInferenceListener(); | 75 var listener = new TypeInferenceListener(); |
| 76 var typeInferrer = | 76 var typeInferrer = typeInferenceEngine.createTopLevelTypeInferrer( |
| 77 typeInferenceEngine.createTopLevelTypeInferrer(field, listener); | 77 field, listener, field.enclosingClass?.thisType); |
|
scheglov
2017/06/05 17:40:02
Nit: The order is not logical - it would be better
Paul Berry
2017/06/05 18:37:16
Thanks. Fixed.
| |
| 78 var bodyBuilder = new BodyBuilder( | 78 var bodyBuilder = new BodyBuilder( |
| 79 library, | 79 library, |
| 80 this, | 80 this, |
| 81 memberScope, | 81 memberScope, |
| 82 null, | 82 null, |
| 83 typeInferenceEngine.classHierarchy, | 83 typeInferenceEngine.classHierarchy, |
| 84 typeInferenceEngine.coreTypes, | 84 typeInferenceEngine.coreTypes, |
| 85 currentClass, | 85 currentClass, |
| 86 isInstanceMember, | 86 isInstanceMember, |
| 87 library.uri, | 87 library.uri, |
| 88 typeInferrer); | 88 typeInferrer); |
| 89 Parser parser = new Parser(bodyBuilder); | 89 Parser parser = new Parser(bodyBuilder); |
| 90 Token token = parser.parseExpression(initializerToken); | 90 Token token = parser.parseExpression(initializerToken); |
| 91 Expression expression = bodyBuilder.popForValue(); | 91 Expression expression = bodyBuilder.popForValue(); |
| 92 bodyBuilder.checkEmpty(token.charOffset); | 92 bodyBuilder.checkEmpty(token.charOffset); |
| 93 initializer = expression; | 93 initializer = expression; |
| 94 } | 94 } |
| 95 } | 95 } |
| 96 | 96 |
| 97 @override | 97 @override |
| 98 DartType get builtType => field.type; | 98 DartType get builtType => field.type; |
| 99 } | 99 } |
| OLD | NEW |