import ballerina/io;
type AccountDetail record {
Assest[] assets;
};
type Assest record {
string marketValue;
string name;
};
public function main() {
AccountDetail[] accountDetails = [];
AccountDetail[] updated = from AccountDetail detail in accountDetails
select {
assets: from Test asset in detail.assets
select {
marketValue: asset.marketValue,
name: asset.name
}
};
io:println(updated);
}
The Test record used in the query is not defined and this is not caught at the TypeChecker level. A compiler crash is observed.
java.lang.AssertionError
at org.wso2.ballerinalang.compiler.tree.BLangNodeVisitor.visit(BLangNodeVisitor.java:631)
at org.wso2.ballerinalang.compiler.tree.expressions.BLangFieldBasedAccess.accept(BLangFieldBasedAccess.java:71)
at org.wso2.ballerinalang.compiler.bir.BIRGen.generateMappingConstructorEntries(BIRGen.java:3032)
at org.wso2.ballerinalang.compiler.bir.BIRGen.visit(BIRGen.java:1636)
at org.wso2.ballerinalang.compiler.tree.expressions.BLangRecordLiteral$BLangMapLiteral.accept(BLangRecordLiteral.java:328)
at org.wso2.ballerinalang.compiler.bir.BIRGen.visit(BIRGen.java:1648)
at org.wso2.ballerinalang.compiler.tree.expressions.BLangTypeConversionExpr.accept(BLangTypeConversionExpr.java:83)
at org.wso2.ballerinalang.compiler.bir.BIRGen.visit(BIRGen.java:1126)
at org.wso2.ballerinalang.compiler.tree.statements.BLangAssignment.accept(BLangAssignment.java:81)
at org.wso2.ballerinalang.compiler.bir.BIRGen.visit(BIRGen.java:743)
at org.wso2.ballerinalang.compiler.tree.BLangBlockFunctionBody.accept(BLangBlockFunctionBody.java:60)
at org.wso2.ballerinalang.compiler.bir.BIRGen.visit(BIRGen.java:703)
at org.wso2.ballerinalang.compiler.tree.BLangFunction.accept(BLangFunction.java:79)
at org.wso2.ballerinalang.compiler.bir.BIRGen.lambda$visit$5(BIRGen.java:351)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.wso2.ballerinalang.compiler.bir.BIRGen.visit(BIRGen.java:351)
at org.wso2.ballerinalang.compiler.tree.BLangPackage.accept(BLangPackage.java:167)
at org.wso2.ballerinalang.compiler.bir.BIRGen.genBIR(BIRGen.java:291)
at io.ballerina.projects.internal.CompilerPhaseRunner.birGen(CompilerPhaseRunner.java:210)
at io.ballerina.projects.internal.CompilerPhaseRunner.performBirGenPhases(CompilerPhaseRunner.java:147)
at io.ballerina.projects.ModuleContext.generateCodeInternal(ModuleContext.java:418)
at io.ballerina.projects.ModuleCompilationState$4.generatePlatformSpecificCode(ModuleCompilationState.java:132)
at io.ballerina.projects.ModuleContext.generatePlatformSpecificCode(ModuleContext.java:351)
at io.ballerina.projects.JBallerinaBackend.performCodeGen(JBallerinaBackend.java:176)
at io.ballerina.projects.JBallerinaBackend.<init>(JBallerinaBackend.java:145)
at io.ballerina.projects.JBallerinaBackend.lambda$from$0(JBallerinaBackend.java:129)
at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
at io.ballerina.projects.PackageCompilation.getCompilerBackend(PackageCompilation.java:179)
at io.ballerina.projects.JBallerinaBackend.from(JBallerinaBackend.java:128)
at io.ballerina.projects.JBallerinaBackend.from(JBallerinaBackend.java:116)
at io.ballerina.cli.task.CompileTask.execute(CompileTask.java:232)
at io.ballerina.cli.TaskExecutor.executeTasks(TaskExecutor.java:40)
at io.ballerina.cli.cmd.RunCommand.execute(RunCommand.java:304)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at io.ballerina.cli.launcher.Main.main(Main.java:59)
ERROR [xmlns_def:(1:1,1:1)] Compilation failed due to an unhandled exception
error: compilation contains errors
Description
Consider the following code,
The
Test
record used in the query is not defined and this is not caught at the TypeChecker level. A compiler crash is observed.Steps to Reproduce
No response
Affected Version(s)
No response
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