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 library kernel.ast_to_binary; | 4 library kernel.ast_to_binary; |
5 | 5 |
6 import '../ast.dart'; | 6 import '../ast.dart'; |
7 import '../import_table.dart'; | 7 import '../import_table.dart'; |
8 import 'tag.dart'; | 8 import 'tag.dart'; |
9 import 'dart:convert'; | 9 import 'dart:convert'; |
10 import 'dart:typed_data'; | 10 import 'dart:typed_data'; |
(...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
886 node.namedParameters.isEmpty) { | 886 node.namedParameters.isEmpty) { |
887 writeByte(Tag.SimpleFunctionType); | 887 writeByte(Tag.SimpleFunctionType); |
888 writeNodeList(node.positionalParameters); | 888 writeNodeList(node.positionalParameters); |
889 writeNode(node.returnType); | 889 writeNode(node.returnType); |
890 } else { | 890 } else { |
891 writeByte(Tag.FunctionType); | 891 writeByte(Tag.FunctionType); |
892 _typeParameterIndexer.push(node.typeParameters); | 892 _typeParameterIndexer.push(node.typeParameters); |
893 writeNodeList(node.typeParameters); | 893 writeNodeList(node.typeParameters); |
894 writeUInt30(node.requiredParameterCount); | 894 writeUInt30(node.requiredParameterCount); |
895 writeNodeList(node.positionalParameters); | 895 writeNodeList(node.positionalParameters); |
896 writeList(node.namedParameters.keys.toList(), (String name) { | 896 writeNodeList(node.namedParameters); |
897 writeStringReference(name); | |
898 writeNode(node.namedParameters[name]); | |
899 }); | |
900 writeNode(node.returnType); | 897 writeNode(node.returnType); |
901 _typeParameterIndexer.pop(node.typeParameters); | 898 _typeParameterIndexer.pop(node.typeParameters); |
902 } | 899 } |
903 } | 900 } |
904 | 901 |
| 902 visitNamedType(NamedType node) { |
| 903 writeStringReference(node.name); |
| 904 writeNode(node.type); |
| 905 } |
| 906 |
905 visitTypeParameterType(TypeParameterType node) { | 907 visitTypeParameterType(TypeParameterType node) { |
906 writeByte(Tag.TypeParameterType); | 908 writeByte(Tag.TypeParameterType); |
907 writeUInt30(_typeParameterIndexer[node.parameter]); | 909 writeUInt30(_typeParameterIndexer[node.parameter]); |
908 } | 910 } |
909 | 911 |
910 visitTypeParameter(TypeParameter node) { | 912 visitTypeParameter(TypeParameter node) { |
911 writeStringReference(node.name ?? ''); | 913 writeStringReference(node.name ?? ''); |
912 writeNode(node.bound); | 914 writeNode(node.bound); |
913 } | 915 } |
914 | 916 |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1132 | 1134 |
1133 visitSymbolLiteral(SymbolLiteral node) { | 1135 visitSymbolLiteral(SymbolLiteral node) { |
1134 put(node.value); | 1136 put(node.value); |
1135 } | 1137 } |
1136 | 1138 |
1137 visitVariableDeclaration(VariableDeclaration node) { | 1139 visitVariableDeclaration(VariableDeclaration node) { |
1138 putOptional(node.name); | 1140 putOptional(node.name); |
1139 node.visitChildren(this); | 1141 node.visitChildren(this); |
1140 } | 1142 } |
1141 | 1143 |
1142 visitFunctionType(FunctionType node) { | 1144 visitNamedType(NamedType node) { |
1143 node.namedParameters.keys.forEach(put); | 1145 put(node.name); |
1144 node.visitChildren(this); | 1146 node.visitChildren(this); |
1145 } | 1147 } |
1146 | 1148 |
1147 visitTypeParameter(TypeParameter node) { | 1149 visitTypeParameter(TypeParameter node) { |
1148 putOptional(node.name); | 1150 putOptional(node.name); |
1149 node.visitChildren(this); | 1151 node.visitChildren(this); |
1150 } | 1152 } |
1151 } | 1153 } |
1152 | 1154 |
1153 /// Computes and stores the index of a library, class, or member within its | 1155 /// Computes and stores the index of a library, class, or member within its |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1249 void flush() { | 1251 void flush() { |
1250 _sink.add(_buffer.sublist(0, length)); | 1252 _sink.add(_buffer.sublist(0, length)); |
1251 _buffer = new Uint8List(SIZE); | 1253 _buffer = new Uint8List(SIZE); |
1252 length = 0; | 1254 length = 0; |
1253 } | 1255 } |
1254 | 1256 |
1255 void flushAndDestroy() { | 1257 void flushAndDestroy() { |
1256 _sink.add(_buffer.sublist(0, length)); | 1258 _sink.add(_buffer.sublist(0, length)); |
1257 } | 1259 } |
1258 } | 1260 } |
OLD | NEW |