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 1097 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1108 writeNodeList(node.typeArguments); | 1108 writeNodeList(node.typeArguments); |
1109 } | 1109 } |
1110 } | 1110 } |
1111 | 1111 |
1112 visitFunctionType(FunctionType node) { | 1112 visitFunctionType(FunctionType node) { |
1113 if (node.requiredParameterCount == node.positionalParameters.length && | 1113 if (node.requiredParameterCount == node.positionalParameters.length && |
1114 node.typeParameters.isEmpty && | 1114 node.typeParameters.isEmpty && |
1115 node.namedParameters.isEmpty) { | 1115 node.namedParameters.isEmpty) { |
1116 writeByte(Tag.SimpleFunctionType); | 1116 writeByte(Tag.SimpleFunctionType); |
1117 writeNodeList(node.positionalParameters); | 1117 writeNodeList(node.positionalParameters); |
| 1118 writeStringReferenceList(node.positionalParameterNames); |
1118 writeNode(node.returnType); | 1119 writeNode(node.returnType); |
1119 } else { | 1120 } else { |
1120 writeByte(Tag.FunctionType); | 1121 writeByte(Tag.FunctionType); |
1121 _typeParameterIndexer.enter(node.typeParameters); | 1122 _typeParameterIndexer.enter(node.typeParameters); |
1122 writeNodeList(node.typeParameters); | 1123 writeNodeList(node.typeParameters); |
1123 writeUInt30(node.requiredParameterCount); | 1124 writeUInt30(node.requiredParameterCount); |
1124 writeUInt30( | 1125 writeUInt30( |
1125 node.positionalParameters.length + node.namedParameters.length); | 1126 node.positionalParameters.length + node.namedParameters.length); |
1126 writeNodeList(node.positionalParameters); | 1127 writeNodeList(node.positionalParameters); |
1127 writeNodeList(node.namedParameters); | 1128 writeNodeList(node.namedParameters); |
| 1129 writeStringReferenceList(node.positionalParameterNames); |
1128 writeNode(node.returnType); | 1130 writeNode(node.returnType); |
1129 _typeParameterIndexer.exit(node.typeParameters); | 1131 _typeParameterIndexer.exit(node.typeParameters); |
1130 } | 1132 } |
1131 } | 1133 } |
1132 | 1134 |
1133 visitNamedType(NamedType node) { | 1135 visitNamedType(NamedType node) { |
1134 writeStringReference(node.name); | 1136 writeStringReference(node.name); |
1135 writeNode(node.type); | 1137 writeNode(node.type); |
1136 } | 1138 } |
1137 | 1139 |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1378 putOptional(node.documentationComment); | 1380 putOptional(node.documentationComment); |
1379 super.visitConstructor(node); | 1381 super.visitConstructor(node); |
1380 } | 1382 } |
1381 | 1383 |
1382 @override | 1384 @override |
1383 visitField(Field node) { | 1385 visitField(Field node) { |
1384 putOptional(node.documentationComment); | 1386 putOptional(node.documentationComment); |
1385 super.visitField(node); | 1387 super.visitField(node); |
1386 } | 1388 } |
1387 | 1389 |
| 1390 @override |
| 1391 visitFunctionType(FunctionType node) { |
| 1392 node.positionalParameterNames.forEach(put); |
| 1393 super.visitFunctionType(node); |
| 1394 } |
| 1395 |
1388 visitNamedExpression(NamedExpression node) { | 1396 visitNamedExpression(NamedExpression node) { |
1389 put(node.name); | 1397 put(node.name); |
1390 node.visitChildren(this); | 1398 node.visitChildren(this); |
1391 } | 1399 } |
1392 | 1400 |
1393 @override | 1401 @override |
1394 visitProcedure(Procedure node) { | 1402 visitProcedure(Procedure node) { |
1395 putOptional(node.documentationComment); | 1403 putOptional(node.documentationComment); |
1396 super.visitProcedure(node); | 1404 super.visitProcedure(node); |
1397 } | 1405 } |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1536 _sink.add(_buffer.sublist(0, length)); | 1544 _sink.add(_buffer.sublist(0, length)); |
1537 _buffer = new Uint8List(SIZE); | 1545 _buffer = new Uint8List(SIZE); |
1538 flushedLength += length; | 1546 flushedLength += length; |
1539 length = 0; | 1547 length = 0; |
1540 } | 1548 } |
1541 | 1549 |
1542 void flushAndDestroy() { | 1550 void flushAndDestroy() { |
1543 _sink.add(_buffer.sublist(0, length)); | 1551 _sink.add(_buffer.sublist(0, length)); |
1544 } | 1552 } |
1545 } | 1553 } |
OLD | NEW |