ballerina-lang
ballerina-lang copied to clipboard
[Task]: Port nBallerina readonly and error types
Description
$subject.
Porting is completed. However, the following test (error1.bal
) fails with a CCE. Investigating into it.
// EL<:E
// ER1<:E
// ER1<:ER2
// ER2<:E
// ER2<:ER1
type EL error<record {| int[] codes; |}>;
type ER1 error<record {| ER1? e; |}>;
type ER2 error<record {| ER2|() e; |}>;
type E error;
stacktrace (click to expand)
java.lang.ClassCastException: class io.ballerina.types.MappingAtomicType cannot be cast to class io.ballerina.types.ListAtomicType (io.ballerina.types.MappingAtomicType and io.ballerina.types.ListAtomicType are in unnamed module of loader 'app')
at io.ballerina.types.Context.listAtomType(Context.java:69)
at io.ballerina.types.typeops.ListOps.listSamples(ListOps.java:155)
at io.ballerina.types.typeops.ListOps.listFormulaIsEmpty(ListOps.java:112)
at io.ballerina.types.Common.bddEvery(Common.java:55)
at io.ballerina.types.Common.bddEvery(Common.java:60)
at io.ballerina.types.Common.bddEvery(Common.java:58)
at io.ballerina.types.typeops.ListOps.lambda$listSubtypeIsEmpty$0(ListOps.java:69)
at io.ballerina.types.Common.memoSubtypeIsEmpty(Common.java:205)
at io.ballerina.types.typeops.ListOps.listSubtypeIsEmpty(ListOps.java:68)
at io.ballerina.types.typeops.ErrorOps.errorSubtypeIsEmpty(ErrorOps.java:48)
at io.ballerina.types.typeops.ErrorOps.isEmpty(ErrorOps.java:58)
at io.ballerina.types.Core.isEmpty(Core.java:337)
at io.ballerina.types.Core.isSubtype(Core.java:346)
at io.ballerina.types.SemTypes.isSubtype(SemTypes.java:98)
at io.ballerina.semtype.port.test.SemTypeTest.getSubtypeRels(SemTypeTest.java:299)
at io.ballerina.semtype.port.test.SemTypeTest.verifyAllSubtypeRelationships(SemTypeTest.java:184)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)
at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:962)
at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.testng.TestRunner.privateRun(TestRunner.java:806)
at org.testng.TestRunner.run(TestRunner.java:601)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:433)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:427)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:387)
at org.testng.SuiteRunner.run(SuiteRunner.java:330)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
at org.testng.TestNG.runSuites(TestNG.java:1099)
at org.testng.TestNG.run(TestNG.java:1067)
at org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.runTests(TestNGTestClassProcessor.java:145)
at org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.stop(TestNGTestClassProcessor.java:92)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at jdk.proxy2/jdk.proxy2.$Proxy5.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
The above CCE was due to a porting mistake. It is resolved now. Encountered another issue when enabling data/error1.bal
test case. It is not related to the error port. Created a separate issue #42662.
Closing with #42663