arrow-kt / arrow-analysis Goto Github PK
View Code? Open in Web Editor NEWArrow Analysis Plugin
Home Page: https://arrow-kt.io/docs/meta/analysis/
License: Apache License 2.0
Arrow Analysis Plugin
Home Page: https://arrow-kt.io/docs/meta/analysis/
License: Apache License 2.0
Is your feature request related to a problem? Please describe.
FIR, the new frontend for the Kotlin compiler, is around the corner. May release stable around 1.9 or 1.10
Describe the solution you'd like
Change old frontend dependencies for new FIR frontend API. Remove dependencies on the old frontend. It may be tricky due to analysis rewind being unavailable on the new frontend.
New K2 FIR collaborates with IDEA and shows analysis error as you type, a much-desired feature for Arrow Analysis.
https://arrow-kt.io/docs/meta/analysis/ currently shows
classpath("io.arrow-kt.analysis.kotlin:io.arrow-kt.analysis.kotlin.gradle.plugin:2.0")
But https://github.com/arrow-kt/arrow-analysis/blob/main/docs/docs/index.md correctly has version 2.0.2
:
id("io.arrow-kt.analysis.kotlin") version "2.0.2"
Describe the bug
I receive OutOfMemoryError after a few minutes of compilation. Project is not big < 1000 lines. This issue occurs to me with Kotlin 1.7.20 and 1.6.21. I tried it also with a few times bigger project and it compiled successfully.
java.lang.OutOfMemoryError: Java heap space
at java.base/java.util.HashMap.resize(HashMap.java:700)
at java.base/java.util.HashMap.putVal(HashMap.java:659)
at java.base/java.util.HashMap.put(HashMap.java:608)
at de.uni_freiburg.informatik.ultimate.util.datastructures.ScopedHashMap.put(ScopedHashMap.java:305)
at de.uni_freiburg.informatik.ultimate.logic.Theory.defineFunction(Theory.java:1470)
at de.uni_freiburg.informatik.ultimate.logic.Theory.defineFunction(Theory.java:1511)
at de.uni_freiburg.informatik.ultimate.logic.NoopScript.defineFunInternal(NoopScript.java:283)
at de.uni_freiburg.informatik.ultimate.logic.NoopScript.annotate(NoopScript.java:507)
at org.sosy_lab.java_smt.solvers.smtinterpol.SmtInterpolTheoremProver.addConstraint(SmtInterpolTheoremProver.java:43)
at org.sosy_lab.java_smt.solvers.smtinterpol.SmtInterpolTheoremProver.addConstraint(SmtInterpolTheoremProver.java:25)
at org.sosy_lab.java_smt.basicimpl.withAssumptionsWrapper.BasicProverWithAssumptionsWrapper.addConstraint(BasicProverWithAssumptionsWrapper.java:48)
at arrow.meta.plugins.analysis.phases.analysis.solver.state.SolverState.addConstraint(SolverState.kt:83)
at arrow.meta.plugins.analysis.phases.analysis.solver.state.SolverState.newName(SolverState.kt:106)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt.checkRegularFunctionCall(Expressions.kt:562)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt.checkCallExpression(Expressions.kt:425)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt.fallThrough(Expressions.kt:259)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt.access$fallThrough(Expressions.kt:1)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.ExpressionsKt$checkExpressionConstraints$2.invoke(Expressions.kt:243)
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.ContSeq$flatMap$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)
Environment (please complete the following information):
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These problems occurred while renovating this repository. View logs.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
gradle
, jekyll
, jquery
, com.google.devtools.ksp:symbol-processing
, com.google.devtools.ksp:symbol-processing-api
, org.jetbrains.kotlinx:kotlinx-serialization-core
, io.gitlab.arturbosch.detekt
, org.jetbrains.kotlinx.binary-compatibility-validator
, io.github.detekt.sarif4k:sarif4k
, org.apache.commons:commons-text
, org.junit.platform:junit-platform-launcher
, org.junit.jupiter:junit-jupiter-engine
, org.junit.jupiter:junit-jupiter
, io.github.classgraph:classgraph
, io.arrow-kt.arrow-gradle-config-versioning
, io.arrow-kt.arrow-gradle-config-publish
, io.arrow-kt.arrow-gradle-config-nexus
, io.arrow-kt.arrow-gradle-config-kotlin
, io.arrow-kt.arrow-gradle-config-formatter
, io.arrow-kt:arrow-optics
, io.arrow-kt:arrow-core
, io.arrow-kt:arrow-annotations
)org.jetbrains.kotlin.multiplatform
, org.jetbrains.kotlin.jvm
, org.jetbrains.kotlin:kotlin-stdlib-jdk8
, org.jetbrains.kotlin:kotlin-stdlib-common
)actions/checkout
, actions/setup-java
, actions/upload-artifact
, font-awesome
, gradle/gradle-build-action
, macos
, stefanzweifel/git-auto-commit-action
, org.sosy-lab:java-smt
)docs/Gemfile
jekyll "~> 4.2.0"
kramdown ">= 2.3.1"
.github/workflows/generate-alpha-tag.yaml
actions/checkout v3
actions/setup-java v3
actions/checkout v3
actions/setup-java v3
.github/workflows/generate-tag.yaml
actions/checkout v3
actions/setup-java v3
actions/checkout v3
actions/setup-java v3
.github/workflows/publish.yml
actions/checkout v3
actions/setup-java v3
gradle/gradle-build-action v2
actions/upload-artifact v3
actions/checkout v3
actions/setup-java v3
actions/checkout v3
actions/setup-java v3
macos 11
.github/workflows/pull_request.yml
actions/checkout v3
actions/setup-java v3
gradle/gradle-build-action v2
actions/upload-artifact v3
actions/checkout v3
gradle/gradle-build-action v2
stefanzweifel/git-auto-commit-action v4
gradle.properties
settings.gradle.kts
build.gradle.kts
analysis/common/gradle.properties
analysis/common/build.gradle.kts
analysis/example/gradle.properties
analysis/example/build.gradle.kts
analysis/java-example/gradle.properties
analysis/java-example/build.gradle.kts
analysis/java-gradle-plugin/gradle.properties
analysis/java-gradle-plugin/build.gradle.kts
analysis/java-plugin/gradle.properties
analysis/java-plugin/build.gradle.kts
analysis/kotlin-gradle-plugin/gradle.properties
analysis/kotlin-gradle-plugin/build.gradle.kts
analysis/kotlin-plugin/gradle.properties
analysis/kotlin-plugin/build.gradle.kts
analysis/laws/gradle.properties
analysis/laws/build.gradle.kts
analysis/types/gradle.properties
analysis/types/build.gradle.kts
docs/build.gradle.kts
gradle/projects.libs.versions.toml
io.arrow-kt:arrow-annotations 1.2.0-RC
io.arrow-kt:arrow-core 1.2.0-RC
io.arrow-kt:arrow-optics 1.2.0-RC
io.arrow-kt:arrow-meta 1.6.2
io.arrow-kt:arrow-meta-test 1.6.2
io.arrow-kt:arrow-gradle-plugin-commons 1.6.2
io.github.classgraph:classgraph 4.8.157
org.sosy-lab:java-smt 3.14.3
org.junit.jupiter:junit-jupiter 5.9.2
org.junit.jupiter:junit-jupiter-engine 5.9.2
org.junit.platform:junit-platform-launcher 1.9.2
org.jetbrains.kotlin:kotlin-stdlib-common 1.8.21
org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.8.21
com.google.testing.compile:compile-testing 0.21.0
org.apache.commons:commons-text 1.10.0
io.github.detekt.sarif4k:sarif4k 0.3.0
org.jetbrains.kotlinx:kotlinx-serialization-core 1.5.0
com.google.devtools.ksp:symbol-processing-api 1.8.21-1.0.11
com.google.devtools.ksp:symbol-processing 1.8.21-1.0.11
org.jetbrains.dokka 1.8.10
org.jetbrains.kotlin.jvm 1.8.21
org.jetbrains.kotlin.multiplatform 1.8.21
io.arrow-kt.arrow-gradle-config-formatter 0.12.0-rc.3
io.arrow-kt.arrow-gradle-config-kotlin 0.12.0-rc.3
io.arrow-kt.arrow-gradle-config-nexus 0.12.0-rc.3
io.arrow-kt.arrow-gradle-config-publish 0.12.0-rc.3
io.arrow-kt.arrow-gradle-config-versioning 0.12.0-rc.3
org.jetbrains.kotlinx.binary-compatibility-validator 0.13.0
io.gitlab.arturbosch.detekt 1.22.0
gradle/wrapper/gradle-wrapper.properties
gradle 8.1.1
docs/docs/_includes/_head-docs-analysis.html
font-awesome 4.7.0
docs/docs/_includes/_js-bottom-docs.html
jquery 3.6.0
Currently there not being generated by another tool to be uploaded.
Run github/codeql-action/[email protected]
[23](https://github.com/arrow-kt/arrow-analysis/runs/5606778446?check_suite_focus=true#step:9:23)
Error: No SARIF files found to upload in "sarif".
[24](https://github.com/arrow-kt/arrow-analysis/runs/5606778446?check_suite_focus=true#step:9:24)
Error: No SARIF files found to upload in "sarif".
[25](https://github.com/arrow-kt/arrow-analysis/runs/5606778446?check_suite_focus=true#step:9:25)
at getSarifFilePaths (/home/runner/work/_actions/github/codeql-action/v1.1.5/lib/upload-lib.js:155:19)
[26](https://github.com/arrow-kt/arrow-analysis/runs/5606778446?check_suite_focus=true#step:9:26)
at Object.uploadFromActions (/home/runner/work/_actions/github/codeql-action/v1.1.5/lib/upload-lib.js:137:30)
[27](https://github.com/arrow-kt/arrow-analysis/runs/5606778446?check_suite_focus=true#step:9:27)
at run (/home/runner/work/_actions/github/codeql-action/v1.1.5/lib/upload-sarif-action.js:51:47)
[28](https://github.com/arrow-kt/arrow-analysis/runs/5606778446?check_suite_focus=true#step:9:28)
at async runWrapper (/home/runner/work/_actions/github/codeql-action/v1.1.5/lib/upload-sarif-action.js:69:9)
If we set up detekt or another 3rd party tool we can set-up aa step with:
- name: Upload Code Scanning code analysis report
if: always()
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: 'build/reports/detekt/main.sarif'
Right now every problem in a pre
, post
, or require
block gives the very unhelpful message:
could not parse predicate
We should give more information about what failed in each case (unsupported operation, reference to a variable which is not argument, and so on).
(From a conversation on Slack)
The idea is to automatically provide conversions or constructors from basic types to classes with invariants.Some ideas:
value class
we create from the base type to the type with invariants, as in the case above. Maybe we should return String?
instead.@JvmInline
value class String5(val value: String) {
init {
require(value.length < 5)
}
}
fun String.asString5() = if (this.length < 5) {
String5(this).right()
} else {
"String '$this' should be smaller than 5".left()
}
@JvmInline
value class String5(val value: String) {
init {
require(value.length < 5)
}
companion object {
fun attempt(value: String): String5? = ...
}
}
Describe the bug
Adding the arrow analysis gradle plugin results in a NoSuchMethodError exception when we try to compile our project
To Reproduce
Steps to reproduce the behavior:
id("io.arrow-kt.analysis.kotlin") version "2.0.2"
to the gradle plugins sectionExpected behavior
Compilation should succeed without exceptions
Environment (please complete the following information):
Describe the bug
The gradle build
fails with java.lang.NoSuchMethodError
.
To Reproduce
Steps to reproduce the behavior:
id("io.arrow-kt.analysis.kotlin") version "2.0"
to plugins
in build.gradle.kts
Expected behavior
The build should succeed.
Environment (please complete the following information):
A simple buildSrc/build.gradle.kts
file like below:
plugins {
`embedded-kotlin`
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.0")
implementation("io.arrow-kt.analysis.kotlin:io.arrow-kt.analysis.kotlin.gradle.plugin:2.0.2")
}
triggers these warnings:
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
/Users/mbonnin/.gradle/wrapper/dists/gradle-7.4-bin/c0gwcg53nkjbqw7r0h0umtfvt/gradle-7.4/lib/kotlin-stdlib-1.5.31.jar (version 1.5)
/Users/mbonnin/.gradle/wrapper/dists/gradle-7.4-bin/c0gwcg53nkjbqw7r0h0umtfvt/gradle-7.4/lib/kotlin-stdlib-common-1.5.31.jar (version 1.5)
/Users/mbonnin/.gradle/wrapper/dists/gradle-7.4-bin/c0gwcg53nkjbqw7r0h0umtfvt/gradle-7.4/lib/kotlin-stdlib-jdk7-1.5.31.jar (version 1.5)
/Users/mbonnin/.gradle/wrapper/dists/gradle-7.4-bin/c0gwcg53nkjbqw7r0h0umtfvt/gradle-7.4/lib/kotlin-stdlib-jdk8-1.5.31.jar (version 1.5)
/Users/mbonnin/.gradle/wrapper/dists/gradle-7.4-bin/c0gwcg53nkjbqw7r0h0umtfvt/gradle-7.4/lib/kotlin-reflect-1.5.31.jar (version 1.5)
/Users/mbonnin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.5.31/ff5d99aecd328872494e8921b72bf6e3af97af3e/kotlin-stdlib-jdk8-1.5.31.jar (version 1.5)
/Users/mbonnin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.5.31/1523fcd842a47da0820cea772b19c51056fec8a9/kotlin-reflect-1.5.31.jar (version 1.5)
/Users/mbonnin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.5.31/77e0f2568912e45d26c31fd417a332458508acdf/kotlin-stdlib-jdk7-1.5.31.jar (version 1.5)
/Users/mbonnin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.6.20/6cedc143badbb4f1c6b7f5a340b04edff1743208/kotlin-stdlib-1.6.20.jar (version 1.6)
/Users/mbonnin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.6.20/27b4562b6713d70f458c6d7ea39aadacb8e6a92b/kotlin-stdlib-common-1.6.20.jar (version 1.6)
/Users/mbonnin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-script-runtime/1.6.20/a115c367e0fd9c8909293b208689afca0c88a6f1/kotlin-script-runtime-1.6.20.jar (version 1.6)
I believe kotlin-stdlib
should be excluded from the dependencies because Gradle will provide its own. I'm not sure about kotlin-script-runtime
. Is it something that's used by the Gradle plugin?
From Slack
@JvmInline
value class String5till10(val value: String) {
init {
require(value.length >= 5) { "String should be minimal 5 characters" }
require(value.length <= 10) { "String should be maximum 10 characters" }
}
}
// This works
val value = getRandomString()
if (value.length > 6) {
if (value.length < 10) {
StringExamples.String5till10(value)
}
}
//This does not
val value = getRandomString()
if (value.length > 6 && value.length < 10) {
StringExamples.String5till10(value)
}
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):
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)
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Build with a lateinit var that has a private set eg:
public lateinit var committedAt: Instant; private set
Expected behavior
No error during build process.
Environment (please complete the following information):
Additional context
The full error output:
e: /home/racci/Documents/Coding/Minecraft/Terix/Terix-API/src/main/kotlin/dev/racci/terix/api/data/TemporaryReplacement.kt: (17, 5): exception during analysis: java.lang.ClassCastException
class arrow.meta.plugins.analysis.phases.analysis.solver.ast.kotlin.descriptors.KotlinPropertyAccessorDescriptor cannot be cast to class arrow.meta.plugins.analysis.phases.analysis.solver.ast.context.descriptors.PropertyDescriptor (arrow.meta.plugins.analysis.phases.analysis.solver.ast.kotlin.descriptors.KotlinPropertyAccessorDescriptor and arrow.meta.plugins.analysis.phases.analysis.solver.ast.context.descriptors.PropertyDescriptor are in unnamed module of loader java.net.URLClassLoader @7e210660)
java.lang.ClassCastException: class arrow.meta.plugins.analysis.phases.analysis.solver.ast.kotlin.descriptors.KotlinPropertyAccessorDescriptor cannot be cast to class arrow.meta.plugins.analysis.phases.analysis.solver.ast.context.descriptors.PropertyDescriptor (arrow.meta.plugins.analysis.phases.analysis.solver.ast.kotlin.descriptors.KotlinPropertyAccessorDescriptor and arrow.meta.plugins.analysis.phases.analysis.solver.ast.context.descriptors.PropertyDescriptor are in unnamed module of loader java.net.URLClassLoader @7e210660)
at arrow.meta.plugins.analysis.phases.analysis.solver.check.EntryPointKt.checkDeclarationConstraints(EntryPoint.kt:94)
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.DeclarationsChecker.checkAccessors(DeclarationsChecker.kt:914)
at org.jetbrains.kotlin.resolve.DeclarationsChecker.checkProperty(DeclarationsChecker.kt:610)
at org.jetbrains.kotlin.resolve.DeclarationsChecker.process(DeclarationsChecker.kt:107)
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:131)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:100)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:265)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:53)
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:256)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.repeatAnalysisIfNeeded(KotlinToJVMBytecodeCompiler.kt:187)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.repeatAnalysisIfNeeded(KotlinToJVMBytecodeCompiler.kt:187)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.repeatAnalysisIfNeeded(KotlinToJVMBytecodeCompiler.kt:187)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:99)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:58)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:158)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:53)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:99)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:47)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:475)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:125)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:373)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally$default(IncrementalCompilerRunner.kt:318)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.rebuild(IncrementalCompilerRunner.kt:114)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:207)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:79)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:625)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:101)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1746)
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 java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
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(AccessController.java:712)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)```
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.