| 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.body_builder; | 5 library fasta.body_builder; |
| 6 | 6 |
| 7 import 'package:dart_parser/src/parser.dart' show | 7 import 'package:dart_parser/src/parser.dart' show |
| 8 FormalParameterType, | 8 FormalParameterType, |
| 9 optional; | 9 optional; |
| 10 | 10 |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 ..parent = initializer; | 373 ..parent = initializer; |
| 374 member.addInitializer(initializer); | 374 member.addInitializer(initializer); |
| 375 } | 375 } |
| 376 } | 376 } |
| 377 } | 377 } |
| 378 } | 378 } |
| 379 } | 379 } |
| 380 } | 380 } |
| 381 | 381 |
| 382 @override | 382 @override |
| 383 void beginConstructorInitializer(Token token) { | 383 void beginInitializer(Token token) { |
| 384 debugEvent("beginConstructorInitializer"); | 384 debugEvent("beginInitializer"); |
| 385 inInitializer = true; | 385 inInitializer = true; |
| 386 } | 386 } |
| 387 | 387 |
| 388 @override | 388 @override |
| 389 void endConstructorInitializer(Token token) { | 389 void endInitializer(Token token) { |
| 390 debugEvent("endConstructorInitializer"); | 390 debugEvent("endInitializer"); |
| 391 assert(!inInitializer); | 391 assert(!inInitializer); |
| 392 final member = this.member; | 392 final member = this.member; |
| 393 var node = pop(); | 393 var node = pop(); |
| 394 Initializer initializer; | 394 Initializer initializer; |
| 395 if (node is Initializer) { | 395 if (node is Initializer) { |
| 396 initializer = node; | 396 initializer = node; |
| 397 } else if (node is BuilderAccessor) { | 397 } else if (node is BuilderAccessor) { |
| 398 initializer = node.buildFieldInitializer(fieldInitializers); | 398 initializer = node.buildFieldInitializer(fieldInitializers); |
| 399 } else if (node is ConstructorInvocation) { | 399 } else if (node is ConstructorInvocation) { |
| 400 initializer = new SuperInitializer(node.target, node.arguments); | 400 initializer = new SuperInitializer(node.target, node.arguments); |
| (...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 856 | 856 |
| 857 @override | 857 @override |
| 858 void endIfStatement(Token ifToken, Token elseToken) { | 858 void endIfStatement(Token ifToken, Token elseToken) { |
| 859 Statement elsePart = popStatementIfNotNull(elseToken); | 859 Statement elsePart = popStatementIfNotNull(elseToken); |
| 860 Statement thenPart = popStatement(); | 860 Statement thenPart = popStatement(); |
| 861 Expression condition = popForValue(); | 861 Expression condition = popForValue(); |
| 862 push(new IfStatement(condition, thenPart, elsePart)); | 862 push(new IfStatement(condition, thenPart, elsePart)); |
| 863 } | 863 } |
| 864 | 864 |
| 865 @override | 865 @override |
| 866 void endInitializer(Token assignmentOperator) { | 866 void endVariableInitializer(Token assignmentOperator) { |
| 867 debugEvent("Initializer"); | 867 debugEvent("VariableInitializer"); |
| 868 assert(assignmentOperator.stringValue == "="); | 868 assert(assignmentOperator.stringValue == "="); |
| 869 Expression initializer = popForValue(); | 869 Expression initializer = popForValue(); |
| 870 Identifier identifier = pop(); | 870 Identifier identifier = pop(); |
| 871 push(new VariableDeclaration(identifier.name, initializer: initializer)); | 871 push(new VariableDeclaration(identifier.name, initializer: initializer)); |
| 872 } | 872 } |
| 873 | 873 |
| 874 @override | 874 @override |
| 875 void endInitializedIdentifier() { | 875 void endInitializedIdentifier() { |
| 876 // TODO(ahe): Use [InitializedIdentifier] here? | 876 // TODO(ahe): Use [InitializedIdentifier] here? |
| 877 debugEvent("InitializedIdentifier"); | 877 debugEvent("InitializedIdentifier"); |
| (...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1290 push(new OptionalFormals(kind, popList(count))); | 1290 push(new OptionalFormals(kind, popList(count))); |
| 1291 } | 1291 } |
| 1292 | 1292 |
| 1293 @override | 1293 @override |
| 1294 void beginFunctionTypedFormalParameter(Token token) { | 1294 void beginFunctionTypedFormalParameter(Token token) { |
| 1295 debugEvent("beginFunctionTypedFormalParameter"); | 1295 debugEvent("beginFunctionTypedFormalParameter"); |
| 1296 functionNestingLevel++; | 1296 functionNestingLevel++; |
| 1297 } | 1297 } |
| 1298 | 1298 |
| 1299 @override | 1299 @override |
| 1300 void handleFunctionTypedFormalParameter(Token token) { | 1300 void endFunctionTypedFormalParameter(Token token) { |
| 1301 debugEvent("FunctionTypedFormalParameter"); | 1301 debugEvent("FunctionTypedFormalParameter"); |
| 1302 if (inCatchClause || functionNestingLevel != 0) { | 1302 if (inCatchClause || functionNestingLevel != 0) { |
| 1303 exitLocalScope(); | 1303 exitLocalScope(); |
| 1304 } | 1304 } |
| 1305 FormalParameters formals = pop(); | 1305 FormalParameters formals = pop(); |
| 1306 ignore(Unhandled.TypeVariables); | 1306 ignore(Unhandled.TypeVariables); |
| 1307 Identifier name = pop(); | 1307 Identifier name = pop(); |
| 1308 DartType returnType = pop(); | 1308 DartType returnType = pop(); |
| 1309 push(formals.toFunctionType(returnType)); | 1309 push(formals.toFunctionType(returnType)); |
| 1310 push(name); | 1310 push(name); |
| (...skipping 1333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2644 } else if (node is TypeDeclarationBuilder) { | 2644 } else if (node is TypeDeclarationBuilder) { |
| 2645 return node.name; | 2645 return node.name; |
| 2646 } else if (node is PrefixBuilder) { | 2646 } else if (node is PrefixBuilder) { |
| 2647 return node.name; | 2647 return node.name; |
| 2648 } else if (node is ThisPropertyAccessor) { | 2648 } else if (node is ThisPropertyAccessor) { |
| 2649 return node.name.name; | 2649 return node.name.name; |
| 2650 } else { | 2650 } else { |
| 2651 return internalError("Unhandled: ${node.runtimeType}"); | 2651 return internalError("Unhandled: ${node.runtimeType}"); |
| 2652 } | 2652 } |
| 2653 } | 2653 } |
| OLD | NEW |