visitImportExportDecl method
Implementation
@override
Uint8List visitImportExportDecl(ImportExportDecl stmt) {
final bytesBuilder = BytesBuilder();
bytesBuilder.add(_lineInfo(stmt.line, stmt.column));
bytesBuilder.addByte(HTOpCode.importExportDecl);
bytesBuilder.addByte(stmt.isExport ? 1 : 0); // bool: isExport
bytesBuilder
.addByte(stmt.isPreloadedModule ? 1 : 0); // bool: isPreloadedModule
bytesBuilder.addByte(stmt.showList.length);
for (final id in stmt.showList) {
bytesBuilder.add(_parseIdentifier(id.id));
}
if (stmt.fromPath != null) {
bytesBuilder.addByte(1); // bool: hasFromPath
// use the normalized absolute name here instead of relative path
bytesBuilder.add(_parseIdentifier(stmt.fullFromPath!));
} else {
bytesBuilder.addByte(0); // bool: hasFromPath
}
if (stmt.alias != null) {
bytesBuilder.addByte(1); // bool: has alias id
bytesBuilder.add(_parseIdentifier(stmt.alias!.id));
} else {
bytesBuilder.addByte(0); // bool: has alias id
}
bytesBuilder.addByte(HTOpCode.endOfStmt);
return bytesBuilder.toBytes();
}