Closed thecodewarrior closed 4 years ago
Hey. I just tried running listOf(1, 2, 3).random()
as you suggested on master branch and did not encounter any exceptions. What am I missing?
If you tried in the kottle repo then you'll probably have kotlin on the classpath, or maybe the project you're using accidentally includes kotlin on the classpath in addition to Kottle. The issue is only with shading the dependencies into the Kottle jar, which you won't be able to see if you test within Kottle itself.
Yeah, in a production environment this is definitely an issue. I thought it was ASM doing something funky to Kotlin's Random class, but I'm now realizing that it's actually this issue instead. I resorted to using Java's Random for my released mod, but an update to Kottle allowing for use of Kotlin's Random class would be great.
Thank you! I'll publish it asap.
The current build (1.5.0) doesn't include
kotlin-stdlib-jdk7
, which is a transitive dependency ofkotlin-stdlib-jdk8
. This just fixes the gradle script so it includes transitive dependencies.This issue only shows up in a select few cases, including using the
AutoClosable.use {}
method (which is only present inkotlin-stdlib-jdk7
) and using the defaultkotlin.random.Random
instance (which is present onJDK8PlatformImplementations
, which extends the missingJDK7PlatformImplementations
class)Here's a snippet of the error I encountered when trying to access the
Collection<T>.random(): T
method: