Piotr Krzemiński
11/04/2022, 10:09 AMPiotr Krzemiński
11/04/2022, 10:09 AMimport arrow.analysis.pre
fun main() {
someFun(1)
}
fun someFun(test: Int) {
pre(test > 2) { "Failed" }
}
// Errors as expected with:
//. unsatisfiable constraint: `1 > 2`
Piotr Krzemiński
11/04/2022, 10:10 AMfun main() {
someFun(4) // Changed from 1 to 4
}
fun someFun(test: Int) {
pre(test > 2) { "Failed" }
}
results in
java.lang.NoSuchMethodError: 'void org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl.<init>(int, int, org.jetbrains.kotlin.ir.types.IrType, org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol, int, int, int, org.jetbrains.kotlin.ir.expressions.IrStatementOrigin, int, kotlin.jvm.internal.DefaultConstructorMarker)'
at arrow.meta.phases.codegen.ir.IrUtils.irConstructorCall(IrUtils.kt:140)
at arrow.meta.plugins.analysis.phases.ir.ConstraintsAnnotationsKt.annotation(ConstraintsAnnotations.kt:175)
at arrow.meta.plugins.analysis.phases.ir.ConstraintsAnnotationsKt.annotationFromClassId(ConstraintsAnnotations.kt:149)
at arrow.meta.plugins.analysis.phases.ir.ConstraintsAnnotationsKt.preAnnotation(ConstraintsAnnotations.kt:107)
at arrow.meta.plugins.analysis.phases.ir.ConstraintsAnnotationsKt.access$preAnnotation(ConstraintsAnnotations.kt:1)
at arrow.meta.plugins.analysis.phases.ir.ConstraintsAnnotationsKt$annotateWithConstraints$1.invoke(ConstraintsAnnotations.kt:42)
at arrow.meta.plugins.analysis.phases.ir.ConstraintsAnnotationsKt$annotateWithConstraints$1.invoke(ConstraintsAnnotations.kt:41)
at arrow.meta.plugins.analysis.smt.Solver.formulae(Solver.kt:58)
at arrow.meta.plugins.analysis.phases.ir.ConstraintsAnnotationsKt.annotateWithConstraints(ConstraintsAnnotations.kt:41)
at arrow.meta.plugins.analysis.phases.PhasesKt$analysisPhases$5.invoke(Phases.kt:142)
at arrow.meta.plugins.analysis.phases.PhasesKt$analysisPhases$5.invoke(Phases.kt:140)
at arrow.meta.dsl.codegen.ir.IrSyntax$irFunction$1$1.visitFunction(IrSyntax.kt:186)
at arrow.meta.dsl.codegen.ir.IrSyntax$irFunction$1$1.visitFunction(IrSyntax.kt:183)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitSimpleFunction(IrElementTransformer.kt:53)
at arrow.meta.dsl.codegen.ir.IrSyntax$irFunction$1$1.visitSimpleFunction(IrSyntax.kt:183)
at arrow.meta.dsl.codegen.ir.IrSyntax$irFunction$1$1.visitSimpleFunction(IrSyntax.kt:183)
at org.jetbrains.kotlin.ir.declarations.IrSimpleFunction.accept(IrSimpleFunction.kt:28)
at org.jetbrains.kotlin.ir.IrElementBase.transform(IrElementBase.kt:24)
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
at org.jetbrains.kotlin.ir.declarations.IrFile.transformChildren(IrFile.kt:32)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformer$DefaultImpls.visitFile(IrElementTransformer.kt:36)
at arrow.meta.dsl.codegen.ir.IrSyntax$irFunction$1$1.visitFile(IrSyntax.kt:183)
at arrow.meta.dsl.codegen.ir.IrSyntax$irFunction$1$1.visitFile(IrSyntax.kt:183)
at org.jetbrains.kotlin.ir.declarations.IrFile.accept(IrFile.kt:22)
at org.jetbrains.kotlin.ir.declarations.IrFile.transform(IrFile.kt:25)
at org.jetbrains.kotlin.ir.declarations.IrFile.transform(IrFile.kt:14)
at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
at org.jetbrains.kotlin.ir.declarations.IrModuleFragment.transformChildren(IrModuleFragment.kt:40)
at arrow.meta.dsl.codegen.ir.IrSyntax$irFunction$1.invoke(IrSyntax.kt:182)
at arrow.meta.dsl.codegen.ir.IrSyntax$irFunction$1.invoke(IrSyntax.kt:181)
at arrow.meta.dsl.codegen.ir.IrSyntax$IrGeneration$1.generate(IrSyntax.kt:117)
at arrow.meta.internal.registry.InternalRegistry$registerIRGeneration$1.generate(InternalRegistry.kt:324)
at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.convertToIr$lambda-1(JvmIrCodegenFactory.kt:162)
at org.jetbrains.kotlin.psi2ir.Psi2IrTranslator.generateModuleFragment(Psi2IrTranslator.kt:99)
at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.convertToIr(JvmIrCodegenFactory.kt:194)
at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.convertToIr(JvmIrCodegenFactory.kt:53)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.convertToIr(KotlinToJVMBytecodeCompiler.kt:232)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:115)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:60)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:157)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:94)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:43)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:477)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:127)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:366)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally$default(IncrementalCompilerRunner.kt:311)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:175)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:75)
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:1739)
at jdk.internal.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)
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)
Piotr Krzemiński
11/04/2022, 10:11 AMpre("h" in test) { "Failed" }
,
pre(test in 0..100) { "Failed" }
Piotr Krzemiński
11/04/2022, 10:30 AMJavier
11/04/2022, 12:53 PMPiotr Krzemiński
11/04/2022, 12:54 PMJavier
11/04/2022, 1:06 PMPiotr Krzemiński
11/04/2022, 1:07 PMAlejandro Serrano Mena
11/04/2022, 4:38 PM