Tried to use k2 on internal project (kotlin 1.7.10...
# k2-adopters
o
Tried to use k2 on internal project (kotlin 1.7.10) 1. error: 'init' hides member of supertype 'UIComponent' and needs 'override' modifier - I have a view class with
public init
method, and supertype is from library where it
internal init
- I would expect no error here (if not known, will create an issue) 2.
New inference error [NewConstraintError at Incorporate TypeVariable(T) == ft<kotlin/Any, kotlin/Any?> from Fix variable TypeVariable(T) from position Fix variable TypeVariable(T): ft<kotlin/Any, kotlin/Any?> <!: CapturedType(*)?]
- have no idea what does it mean 🙂 3.
val closeModalWindow = fun() { progressModalStage?.close() }
with K2 produces error: Return type mismatch: expected kotlin/Unit, actual kotlin/Unit? (not critical, as we can just specify type
() -> Unit
explicitly for variable) 4. several issue with generics variances and java interop, but I have no idea how to create a small reproducer without internal codebase: Assignment type mismatch: actual type is ft<javafx/collections/ObservableList<out ft<OURTYPE, OURTYPE?>>, javafx/collections/ObservableList<out ft<OURTYPE, OURTYPE?>>?> but ft<javafx/collections/ObservableList<ft<CapturedType(out OURTYPE), CapturedType(out OURTYPE)?>>, javafx/collections/ObservableList<ft<CapturedType(out OURTYPE), CapturedType(out OURTYPE)?>>?> was expected If something isn't known, I will create issues, but I will not be able to provide access to internal codebase. FYI: project using java/javafx 17 and outdated tornadofx (which latest version was published with kotlin 1.3) - so issues can be from this weird stack also
m
I think it would be great to create issues at least for (1) and (3). About (2) and (4), it will be problematic to analyze these cases without code; however, if you can show the line with error, please do it.
o
Ok, will create issues BTW, after somehow fixing code (by removing those calls) - project fails with error
Copy code
org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during IR lowering
File being compiled: DictionaryView.kt
The root cause java.lang.NullPointerException was thrown at: org.jetbrains.kotlin.types.model.TypeSystemContext$DefaultImpls.lowerBoundIfFlexible(TypeSystemContext.kt:403)
	at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException(CodegenUtil.kt:239)
	at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException$default(CodegenUtil.kt:235)
	at org.jetbrains.kotlin.backend.common.phaser.PerformByIrFilePhase.invokeSequential(performByIrFile.kt:68)
	at org.jetbrains.kotlin.backend.common.phaser.PerformByIrFilePhase.invoke(performByIrFile.kt:55)
	at org.jetbrains.kotlin.backend.common.phaser.PerformByIrFilePhase.invoke(performByIrFile.kt:41)
	at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:96)
	at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:29)
	at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:96)
	at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.invokeToplevel(CompilerPhase.kt:43)
	at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.invokeLowerings(JvmIrCodegenFactory.kt:273)
	at org.jetbrains.kotlin.codegen.CodegenFactory$DefaultImpls.generateModule(CodegenFactory.kt:44)
	at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.generateModule(JvmIrCodegenFactory.kt:53)
	at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.generateModuleInFrontendIRMode(JvmIrCodegenFactory.kt:300)
	at org.jetbrains.kotlin.cli.jvm.compiler.FirKotlinToJvmBytecodeCompiler.runBackend(FirKotlinToJvmBytecodeCompiler.kt:352)
	at org.jetbrains.kotlin.cli.jvm.compiler.FirKotlinToJvmBytecodeCompiler.compileModule(FirKotlinToJvmBytecodeCompiler.kt:175)
	at org.jetbrains.kotlin.cli.jvm.compiler.FirKotlinToJvmBytecodeCompiler.compileModulesUsingFrontendIR(FirKotlinToJvmBytecodeCompiler.kt:133)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:92)
	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.rebuild(IncrementalCompilerRunner.kt:110)
	at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:200)
	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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	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(AccessController.java:691)
	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:391)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:832)
regarding 2 Line with error is 267 LSMResults and FileLSMResults are constructors of classes with 1 or 2 generic parameters (a lot of generics here)
results.result
also returns generic of
results
🙏 1
regarding 4
Copy code
//            result: NarrativeArc.NarrativeArcResults<out NarrativeArc.NarrativeArcResult>
//            result.narrativeArcResultList - returns List<T>
//            items - from javafx: public final void setItems(ObservableList<S> value)
            items = FXCollections.observableArrayList(result.narrativeArcResultList)
error happens in last line
🙏 1
Not sure is it useful...