visitNominalTypeExpr method
Implementation
@override
Uint8List visitNominalTypeExpr(NominalTypeExpr expr) {
final bytesBuilder = BytesBuilder();
if (expr.isLocal) {
bytesBuilder.addByte(OpCode.local);
}
bytesBuilder.addByte(HTValueTypeCode.nominalType);
bytesBuilder.add(_identifier(expr.id.id));
bytesBuilder.addByte(expr.namespacesWithin.length); // max 255
for (final id in expr.namespacesWithin) {
bytesBuilder.add(_identifier(id.id));
}
bytesBuilder.addByte(expr.arguments.length); // max 255
for (final expr in expr.arguments) {
final typeArg = compileAST(expr); // dont' need end of exec mark here
bytesBuilder.add(typeArg);
}
bytesBuilder.addByte(expr.isNullable ? 1 : 0); // bool isNullable
return bytesBuilder.toBytes();
}