visitIdentifierExpr method
Implementation
@override
Uint8List visitIdentifierExpr(IdentifierExpr expr) {
final bytesBuilder = BytesBuilder();
bytesBuilder.add(_lineInfo(expr.line, expr.column));
var symbolId = expr.id;
if (_markedSymbolsList.isNotEmpty) {
final map = _markedSymbolsList.last;
for (final symbol in map.keys) {
if (symbolId == symbol) {
symbolId = map[symbol]!;
break;
}
}
}
bytesBuilder.addByte(HTOpCode.local);
bytesBuilder.addByte(HTValueTypeCode.identifier);
bytesBuilder.add(_parseIdentifier(symbolId));
bytesBuilder.addByte(expr.isLocal ? 1 : 0);
// if (expr.typeArgs.isNotEmpty) {
// bytesBuilder.addByte(1);
// bytesBuilder.addByte(expr.typeArgs.length); // bool: has type args
// for (final ast in expr.typeArgs) {
// final bytes = visitTypeExpr(ast);
// bytesBuilder.add(bytes);
// }
// } else {
// bytesBuilder.addByte(0); // bool: has type args
// }
return bytesBuilder.toBytes();
}