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

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

Issue 2830313002: Split up TypeInferrer class. (Closed)
Patch Set: Created 3 years, 8 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 FastaMessage, codeExpectedButGot, codeExpectedFunctionBody; 8 show FastaMessage, codeExpectedButGot, codeExpectedFunctionBody;
9 9
10 import '../parser/parser.dart' show FormalParameterType, optional; 10 import '../parser/parser.dart' show FormalParameterType, optional;
11 11
12 import '../parser/identifier_context.dart' show IdentifierContext; 12 import '../parser/identifier_context.dart' show IdentifierContext;
13 13
14 import 'package:front_end/src/fasta/builder/ast_factory.dart' show AstFactory; 14 import 'package:front_end/src/fasta/builder/ast_factory.dart' show AstFactory;
15 15
16 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' 16 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart'
17 show KernelField, KernelVariableDeclaration; 17 show KernelField, KernelVariableDeclaration;
18 18
19 import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart'
20 show FieldNode;
21
19 import 'package:front_end/src/fasta/type_inference/type_inferrer.dart' 22 import 'package:front_end/src/fasta/type_inference/type_inferrer.dart'
20 show FieldNode, TypeInferrer; 23 show TypeInferrer;
21 24
22 import 'package:kernel/ast.dart'; 25 import 'package:kernel/ast.dart';
23 26
24 import 'package:kernel/clone.dart' show CloneVisitor; 27 import 'package:kernel/clone.dart' show CloneVisitor;
25 28
26 import 'package:kernel/transformations/flags.dart' show TransformerFlag; 29 import 'package:kernel/transformations/flags.dart' show TransformerFlag;
27 30
28 import 'package:kernel/class_hierarchy.dart' show ClassHierarchy; 31 import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
29 32
30 import 'package:kernel/core_types.dart' show CoreTypes; 33 import 'package:kernel/core_types.dart' show CoreTypes;
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 448
446 @override 449 @override
447 void endInitializers(int count, Token beginToken, Token endToken) { 450 void endInitializers(int count, Token beginToken, Token endToken) {
448 debugEvent("Initializers"); 451 debugEvent("Initializers");
449 } 452 }
450 453
451 @override 454 @override
452 void finishFunction( 455 void finishFunction(
453 FormalParameters formals, AsyncMarker asyncModifier, Statement body) { 456 FormalParameters formals, AsyncMarker asyncModifier, Statement body) {
454 debugEvent("finishFunction"); 457 debugEvent("finishFunction");
455 _typeInferrer.inferBody(body, uri); 458 _typeInferrer.inferStatement(body);
456 KernelFunctionBuilder builder = member; 459 KernelFunctionBuilder builder = member;
457 builder.body = body; 460 builder.body = body;
458 if (formals?.optional != null) { 461 if (formals?.optional != null) {
459 Iterator<FormalParameterBuilder> formalBuilders = 462 Iterator<FormalParameterBuilder> formalBuilders =
460 builder.formals.skip(formals.required.length).iterator; 463 builder.formals.skip(formals.required.length).iterator;
461 for (VariableDeclaration parameter in formals.optional.formals) { 464 for (VariableDeclaration parameter in formals.optional.formals) {
462 bool hasMore = formalBuilders.moveNext(); 465 bool hasMore = formalBuilders.moveNext();
463 assert(hasMore); 466 assert(hasMore);
464 VariableDeclaration realParameter = formalBuilders.current.target; 467 VariableDeclaration realParameter = formalBuilders.current.target;
465 Expression initializer = parameter.initializer ?? new NullLiteral(); 468 Expression initializer = parameter.initializer ?? new NullLiteral();
(...skipping 2625 matching lines...) Expand 10 before | Expand all | Expand 10 after
3091 } else if (node is PrefixBuilder) { 3094 } else if (node is PrefixBuilder) {
3092 return node.name; 3095 return node.name;
3093 } else if (node is ThisAccessor) { 3096 } else if (node is ThisAccessor) {
3094 return node.isSuper ? "super" : "this"; 3097 return node.isSuper ? "super" : "this";
3095 } else if (node is FastaAccessor) { 3098 } else if (node is FastaAccessor) {
3096 return node.plainNameForRead; 3099 return node.plainNameForRead;
3097 } else { 3100 } else {
3098 return internalError("Unhandled: ${node.runtimeType}"); 3101 return internalError("Unhandled: ${node.runtimeType}");
3099 } 3102 }
3100 } 3103 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/builder/builder.dart ('k') | pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698