-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
After integrating Arrow Analysis, the Gradle task compileKotlin
stumbles over this snippet:
inline fun <reified T> List<*>.asListOfType(): Option<List<T>> =
if (all { it is T }) {
@Suppress("UNCHECKED_CAST")
(this as List<T>).some()
} else {
None
}
Expected behavior
Compilation proceeds or outputs a descriptive error about what the problem might be.
Environment (please complete the following information):
- Kotlin version 1.9.0
- Kotlin Intellij IDEA plugin version: 232-1.9.0-IJ9921.47
- Intellij IDEA version: 2023.2.2 (Ultimate Edition)
- Gradle: 8.3
Additional context
Full stacktrace:
exception during analysis: java.lang.ClassCastException
class arrow.meta.plugins.analysis.phases.analysis.solver.ast.kotlin.elements.KotlinAnnotatedExpression cannot be cast to class arrow.meta.plugins.analysis.phases.analysis.solver.ast.context.elements.Expression (arrow.meta.plugins.analysis.phases.analysis.solver.ast.kotlin.elements.KotlinAnnotatedExpression and arrow.meta.plugins.analysis.phases.analysis.solver.ast.context.elements.Expression are in unnamed module of loader java.net.URLClassLoader @23177e71)
java.lang.ClassCastException: class arrow.meta.plugins.analysis.phases.analysis.solver.ast.kotlin.elements.KotlinAnnotatedExpression cannot be cast to class arrow.meta.plugins.analysis.phases.analysis.solver.ast.context.elements.Expression (arrow.meta.plugins.analysis.phases.analysis.solver.ast.kotlin.elements.KotlinAnnotatedExpression and arrow.meta.plugins.analysis.phases.analysis.solver.ast.context.elements.Expression are in unnamed module of loader java.net.URLClassLoader @23177e71)
at arrow.meta.plugins.analysis.phases.analysis.solver.ast.kotlin.elements.KotlinBlockExpression.getStatements(KotlinBlockExpression.kt:14)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt$checkExpressionConstraints$2$2.invoke(Expressions.kt:172)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt$checkExpressionConstraints$2$2.invoke(Expressions.kt:169)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt.inScope(Expressions.kt:1980)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt.access$inScope(Expressions.kt:1)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt$checkExpressionConstraints$2.invoke(Expressions.kt:169)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt$checkExpressionConstraints$2.invoke(Expressions.kt:156)
at arrow.meta.continuations.ContSeq$flatMap$1.invokeSuspend(ContSeq.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeq$map$1.invokeSuspend(ContSeq.kt:292)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:274)
at arrow.meta.continuations.ContSeqSyntax$DefaultImpls.yieldAll(ContSeq.kt:165)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:203)
at arrow.meta.continuations.ContSeq$flatMap$1.invokeSuspend(ContSeq.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:274)
at arrow.meta.continuations.ContSeqSyntax$DefaultImpls.yieldAll(ContSeq.kt:165)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:203)
at arrow.meta.continuations.ContSeq$flatMap$1.invokeSuspend(ContSeq.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:274)
at arrow.meta.continuations.ContSeqSyntax$DefaultImpls.yieldAll(ContSeq.kt:165)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:203)
at arrow.meta.continuations.ContSeq$flatMap$1.invokeSuspend(ContSeq.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:274)
at arrow.meta.continuations.ContSeqSyntax$DefaultImpls.yieldAll(ContSeq.kt:165)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:203)
at arrow.meta.continuations.ContSeq$flatMap$1.invokeSuspend(ContSeq.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeq$map$1.invokeSuspend(ContSeq.kt:292)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeq$map$1.invokeSuspend(ContSeq.kt:292)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:274)
at arrow.meta.continuations.ContSeqSyntax$DefaultImpls.yieldAll(ContSeq.kt:165)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:203)
at arrow.meta.continuations.ContSeq$flatMap$1.invokeSuspend(ContSeq.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:274)
at arrow.meta.continuations.ContSeqSyntax$DefaultImpls.yieldAll(ContSeq.kt:165)
at arrow.meta.continuations.ContSeqBuilder.yieldAll(ContSeq.kt:203)
at arrow.meta.continuations.ContSeq$flatMap$1.invokeSuspend(ContSeq.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at arrow.meta.continuations.ContSeqBuilder.hasNext(ContSeq.kt:233)
at arrow.meta.continuations.ContSeq.drain(ContSeq.kt:297)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.EntryPointKt.checkDeclarationConstraints(EntryPoint.kt:130)
at arrow.meta.plugins.analysis.phases.PhasesKt$analysisPhases$4.invoke(Phases.kt:136)
at arrow.meta.plugins.analysis.phases.PhasesKt$analysisPhases$4.invoke(Phases.kt:129)
at arrow.meta.dsl.config.ConfigSyntax$storageComponent$1.check(ConfigSyntax.kt:72)
at arrow.meta.internal.registry.InternalRegistry$DelegatingContributor$registerModuleComponents$2.check(InternalRegistry.kt:651)
at org.jetbrains.kotlin.resolve.ModifiersChecker$ModifiersCheckingProcedure.runDeclarationCheckers(ModifiersChecker.java:285)
at org.jetbrains.kotlin.resolve.ModifiersChecker$ModifiersCheckingProcedure.checkModifierListCommon(ModifiersChecker.java:224)
at org.jetbrains.kotlin.resolve.ModifiersChecker$ModifiersCheckingProcedure.checkModifiersForDeclaration(ModifiersChecker.java:183)
at org.jetbrains.kotlin.resolve.DeclarationsChecker.process(DeclarationsChecker.kt:101)
at org.jetbrains.kotlin.resolve.BodyResolver.resolveBodies(BodyResolver.java:258)
at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations(LazyTopDownAnalyzer.kt:227)
at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations$default(LazyTopDownAnalyzer.kt:58)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:119)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:88)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:256)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:42)
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:247)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.repeatAnalysisIfNeeded(KotlinToJVMBytecodeCompiler.kt:181)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.repeatAnalysisIfNeeded(KotlinToJVMBytecodeCompiler.kt:181)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:87)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:47)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:168)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:53)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:100)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:46)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:460)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:62)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:476)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:399)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:280)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:124)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:636)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:101)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1598)
at jdk.internal.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working