GithubHelp home page GithubHelp logo

arrow-kt / arrow-analysis Goto Github PK

View Code? Open in Web Editor NEW
27.0 13.0 3.0 20.75 MB

Arrow Analysis Plugin

Home Page: https://arrow-kt.io/docs/meta/analysis/

License: Apache License 2.0

Kotlin 99.44% Java 0.53% Shell 0.03%
meta-programming arrow-kt arrow-meta

arrow-analysis's People

Contributors

ahinchman1 avatar antoniomateogomez avatar bloderxd avatar calvellido avatar cb372 avatar danimontoya avatar dependabot[bot] avatar foso avatar franciscodr avatar github-actions[bot] avatar i-walker avatar jansorg avatar javiersegoviacordoba avatar jkmcclellan avatar juanpedromoreno avatar lidonis avatar magneticflux- avatar matiaslev avatar mattmoore avatar nomisrev avatar paranoidmonoid avatar rachelcarmena avatar raulraja avatar renovate[bot] avatar rybalkinsd avatar serras avatar starmel avatar timrijckaert avatar turansky avatar vnermolaev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arrow-analysis's Issues

update to K2 compiler

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.

[BUG] OutOfMemoryError at arrow.meta.plugins.analysis.phases.analysis.solver.state.SolverState.addConstraint(SolverState.kt:83)

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):

  • Kotlin version: 1.7.20 / 1.6.21
  • Kotlin Intellij IDEA plugin version: 221-1.7.20-release-201-IJ5591.52
  • Intellij IDEA version: 2022.1.4, #IU-221.6008.13, built on July 19, 2022
  • Λrrow Analysis: 2.0.2
  • arrow-core,arrow-fx-coroutines: 1.1.2

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

These problems occurred while renovating this repository. View logs.

  • WARN: Use excludeDepNames instead of excludePackageNames

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

  • Update all dependencies (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)
  • Update dependency org.jetbrains.dokka to v1.9.20
  • Update kotlin monorepo to v1.9.23 (org.jetbrains.kotlin.multiplatform, org.jetbrains.kotlin.jvm, org.jetbrains.kotlin:kotlin-stdlib-jdk8, org.jetbrains.kotlin:kotlin-stdlib-common)
  • Update all dependencies (major) (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)
  • Click on this checkbox to rebase all open PRs at once

Detected dependencies

bundler
docs/Gemfile
  • jekyll "~> 4.2.0"
  • kramdown ">= 2.3.1"
github-actions
.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
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/gradle-wrapper.properties
  • gradle 8.1.1
html
docs/docs/_includes/_head-docs-analysis.html
  • font-awesome 4.7.0
docs/docs/_includes/_js-bottom-docs.html
  • jquery 3.6.0

  • Check this box to trigger a request for Renovate to run again on this repository

Fix Sarif uploads

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'

Better errors for predicate parsing

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).

Conversion from base types

(From a conversation on Slack)

The idea is to automatically provide conversions or constructors from basic types to classes with invariants.Some ideas:

  • For 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()
}
  • Conversely, we could add pseudo-constructors in the companion object which return the type but nullable.
@JvmInline
value class String5(val value: String) {
    init {
        require(value.length < 5)
    }

    companion object {
        fun attempt(value: String): String5? = ...
    }
}

NoSuchMethod error during compileKotlin

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:

  1. Add id("io.arrow-kt.analysis.kotlin") version "2.0.2" to the gradle plugins section
  2. Try to build your project
  3. See that the compileKotlin task fails with "java.lang.NoSuchMethodError: 'void org.jetbrains.kotlin.ir.util.KotlinLikeDumpOptions.(boolean, boolean, boolean, boolean, org.jetbrains.kotlin.ir.util.LabelPrintingStrategy, org.jetbrains.kotlin.ir.util.FakeOverridesStrategy, boolean, int, kotlin.jvm.internal.DefaultConstructorMarker)'"

Expected behavior
Compilation should succeed without exceptions

Environment (please complete the following information):

  • Kotlin version 1.9.22 (jvm)

[BUG] Gradle build failing with `java.lang.NoSuchMethodError`

Describe the bug

The gradle build fails with java.lang.NoSuchMethodError.

To Reproduce
Steps to reproduce the behavior:

  1. Generate a new Gradle project in Kotlin with Gradle Kotlin DSL using Java 17 on IntelliJ IDEA
  2. Add id("io.arrow-kt.analysis.kotlin") version "2.0" to plugins in build.gradle.kts
  3. Build
  4. See error

Expected behavior
The build should succeed.

Screenshots
Screenshot 2022-05-13 at 11 01 06

Environment (please complete the following information):

Adding the Gradle plugin to `buildSrc` triggers warnings

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?

Conditionals with && are not handled correctly

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)
}

[BUG] ClassCastException for KotlinAnnotatedExpression

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)

[BUG] Compile Error

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):

  • Kotlin version: 1.7.21
  • Kotlin Intellij IDEA plugin version: 222-1.7.21-release-272-IJ4167.29
  • Intellij IDEA version: IntelliJ IDEA 2022.2.3 (Ultimate Edition)

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)```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.