| 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 '../parser/parser.dart' show FormalParameterType, optional; | 7 import '../parser/parser.dart' show FormalParameterType, optional; |
| 8 | 8 |
| 9 import '../parser/error_kind.dart' show ErrorKind; | 9 import '../parser/error_kind.dart' show ErrorKind; |
| 10 | 10 |
| (...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 push(builderToFirstExpression(builder, name, token.charOffset)); | 739 push(builderToFirstExpression(builder, name, token.charOffset)); |
| 740 } else { | 740 } else { |
| 741 push(new Identifier(name)..fileOffset = token.charOffset); | 741 push(new Identifier(name)..fileOffset = token.charOffset); |
| 742 } | 742 } |
| 743 } | 743 } |
| 744 | 744 |
| 745 @override | 745 @override |
| 746 builderToFirstExpression(Builder builder, String name, int charOffset, | 746 builderToFirstExpression(Builder builder, String name, int charOffset, |
| 747 {bool isPrefix: false}) { | 747 {bool isPrefix: false}) { |
| 748 if (builder == null || (!isInstanceContext && builder.isInstanceMember)) { | 748 if (builder == null || (!isInstanceContext && builder.isInstanceMember)) { |
| 749 if (!isPrefix && identical(name, "dynamic") && builder == null) { | |
| 750 return new KernelNamedTypeBuilder(name, null, charOffset, uri); | |
| 751 } | |
| 752 Name n = new Name(name, library.library); | 749 Name n = new Name(name, library.library); |
| 753 if (!isPrefix && isInstanceContext) { | 750 if (!isPrefix && isInstanceContext) { |
| 754 assert(builder == null); | 751 assert(builder == null); |
| 755 return new ThisPropertyAccessor(this, charOffset, n, null, null); | 752 return new ThisPropertyAccessor(this, charOffset, n, null, null); |
| 756 } else { | 753 } else { |
| 757 return new UnresolvedIdentifier(n)..fileOffset = charOffset; | 754 return new UnresolvedIdentifier(n)..fileOffset = charOffset; |
| 758 } | 755 } |
| 759 } else if (builder.isTypeDeclaration) { | 756 } else if (builder.isTypeDeclaration) { |
| 760 return builder; | 757 return builder; |
| 761 } else if (builder.isLocal) { | 758 } else if (builder.isLocal) { |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1184 List parts = popList(identifierCount); | 1181 List parts = popList(identifierCount); |
| 1185 value = symbolPartToString(parts.first); | 1182 value = symbolPartToString(parts.first); |
| 1186 for (int i = 1; i < parts.length; i++) { | 1183 for (int i = 1; i < parts.length; i++) { |
| 1187 value += ".${symbolPartToString(parts[i])}"; | 1184 value += ".${symbolPartToString(parts[i])}"; |
| 1188 } | 1185 } |
| 1189 } | 1186 } |
| 1190 push(new SymbolLiteral(value)); | 1187 push(new SymbolLiteral(value)); |
| 1191 } | 1188 } |
| 1192 | 1189 |
| 1193 DartType toKernelType(String name, List<DartType> arguments, int charOffset) { | 1190 DartType toKernelType(String name, List<DartType> arguments, int charOffset) { |
| 1194 if (identical(name, "void")) return const VoidType(); | |
| 1195 if (identical(name, "dynamic")) return const DynamicType(); | |
| 1196 Builder builder = scope.lookup(name, charOffset, uri); | 1191 Builder builder = scope.lookup(name, charOffset, uri); |
| 1197 if (builder is TypeDeclarationBuilder) { | 1192 if (builder is TypeDeclarationBuilder) { |
| 1198 return builder.buildTypesWithBuiltArguments(library, arguments); | 1193 return builder.buildTypesWithBuiltArguments(library, arguments); |
| 1199 } | 1194 } |
| 1200 if (builder == null) { | 1195 if (builder == null) { |
| 1201 warning("Type not found: '$name'.", charOffset); | 1196 warning("Type not found: '$name'.", charOffset); |
| 1202 } else { | 1197 } else { |
| 1203 warning("Not a type: '$name'.", charOffset); | 1198 warning("Not a type: '$name'.", charOffset); |
| 1204 } | 1199 } |
| 1205 // TODO(ahe): Create an error somehow. | 1200 // TODO(ahe): Create an error somehow. |
| (...skipping 1541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2747 } else if (node is PrefixBuilder) { | 2742 } else if (node is PrefixBuilder) { |
| 2748 return node.name; | 2743 return node.name; |
| 2749 } else if (node is ThisAccessor) { | 2744 } else if (node is ThisAccessor) { |
| 2750 return node.isSuper ? "super" : "this"; | 2745 return node.isSuper ? "super" : "this"; |
| 2751 } else if (node is BuilderAccessor) { | 2746 } else if (node is BuilderAccessor) { |
| 2752 return node.plainNameForRead; | 2747 return node.plainNameForRead; |
| 2753 } else { | 2748 } else { |
| 2754 return internalError("Unhandled: ${node.runtimeType}"); | 2749 return internalError("Unhandled: ${node.runtimeType}"); |
| 2755 } | 2750 } |
| 2756 } | 2751 } |
| OLD | NEW |