ballerina-lang
ballerina-lang copied to clipboard
[Bug]: Compiler crashes with a dependently-typed function call
Description
import ballerina/io;
import ballerina/jballerina.java;
type A record {};
type B A[];
public function func(typedesc<record{}> t = <>)
returns t[] = @java:Method {'class: "io.ballerina.stdlib.data.csvdata.csv.Native"} external;
public function main() returns error? {
B|error a = check func();
io:println(a);
}
When we run the above code with U9, this will gives following compiler crash
[2024-07-01 10:56:02,918] SEVERE {b7a.log.crash} - class org.wso2.ballerinalang.compiler.semantics.model.types.BTypeReferenceType cannot be cast to class org.wso2.ballerinalang.compiler.semantics.model.types.BArrayType (org.wso2.ballerinalang.compiler.semantics.model.types.BTypeReferenceType and org.wso2.ballerinalang.compiler.semantics.model.types.BArrayType are in unnamed module of loader 'app')
java.lang.ClassCastException: class org.wso2.ballerinalang.compiler.semantics.model.types.BTypeReferenceType cannot be cast to class org.wso2.ballerinalang.compiler.semantics.model.types.BArrayType (org.wso2.ballerinalang.compiler.semantics.model.types.BTypeReferenceType and org.wso2.ballerinalang.compiler.semantics.model.types.BArrayType are in unnamed module of loader 'app')
at org.wso2.ballerinalang.compiler.util.Unifier.visit(Unifier.java:189)
at org.wso2.ballerinalang.compiler.util.Unifier.visit(Unifier.java:81)
at org.wso2.ballerinalang.compiler.semantics.model.types.BArrayType.accept(BArrayType.java:87)
at org.wso2.ballerinalang.compiler.util.Unifier.build(Unifier.java:103)
at org.wso2.ballerinalang.compiler.semantics.analyzer.TypeChecker.checkInvocationArgs(TypeChecker.java:7536)
at org.wso2.ballerinalang.compiler.semantics.analyzer.TypeChecker.checkInvocationParam(TypeChecker.java:7263)
at org.wso2.ballerinalang.compiler.semantics.analyzer.TypeChecker.checkInvocationParamAndReturnType(TypeChecker.java:7125)
at org.wso2.ballerinalang.compiler.semantics.analyzer.TypeChecker.checkFunctionInvocationExpr(TypeChecker.java:6768)
at org.wso2.ballerinalang.compiler.semantics.analyzer.TypeChecker.visit(TypeChecker.java:3732)
at org.wso2.ballerinalang.compiler.semantics.analyzer.TypeChecker.visit(TypeChecker.java:220)
at org.wso2.ballerinalang.compiler.tree.expressions.BLangInvocation.accept(BLangInvocation.java:133)
at org.wso2.ballerinalang.compiler.semantics.analyzer.TypeChecker.checkExpr(TypeChecker.java:411)
Steps to Reproduce
No response
Affected Version(s)
2201.9.0
OS, DB, other environment details and versions
No response
Related area
-> Compilation
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response