Skip to content

Commit

Permalink
Fix incorrect DRI conversion in KotlinAsJava modes for nested definit…
Browse files Browse the repository at this point in the history
…ions
  • Loading branch information
kamildoleglo committed Jan 15, 2021
1 parent c04295a commit 17e8144
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,11 @@ internal fun createEnvironmentAndFacade(
if (analysisPlatform == Platform.jvm) {
addClasspath(PathUtil.getJdkClassesRootsFromCurrentJre())
}
sourceSet.classpath.forEach(::addClasspath)

addSources(
(sourceSet.sourceRoots + sourceSets.filter { it.sourceSetID in sourceSet.dependentSourceSets }
.flatMap { it.sourceRoots })
)
val parentSourceSets = sourceSets.filter { it.sourceSetID in sourceSet.dependentSourceSets }
addClasspath(sourceSet.classpath + parentSourceSets.flatMap { it.classpath })

addSources(sourceSet.sourceRoots + parentSourceSets.flatMap { it.sourceRoots })

loadLanguageVersionSettings(sourceSet.languageVersion, sourceSet.apiVersion)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ internal fun DClasslike.asJava(): DClasslike = when (this) {
}

internal fun DClass.asJava(): DClass = copy(
constructors = constructors.map { it.asJava(name) },
constructors = constructors.map { it.asJava(dri.classNames ?: name) }, // name may not always be valid here, however classNames should always be not null
functions = functionsInJava(),
properties = properties.map { it.asJava() },
classlikes = classlikes.map { it.asJava() },
Expand All @@ -212,7 +212,7 @@ internal fun DClass.asJava(): DClass = copy(
internal fun DClass.functionsInJava(): List<DFunction> =
(properties.filter { it.jvmField() == null }
.flatMap { property -> listOfNotNull(property.getter, property.setter) } + functions).map {
it.asJava(name)
it.asJava(dri.classNames ?: name)
}

private fun DTypeParameter.asJava(): DTypeParameter = copy(
Expand Down Expand Up @@ -251,9 +251,9 @@ private fun Bound.asJava(): Bound = when (this) {
}

internal fun DEnum.asJava(): DEnum = copy(
constructors = constructors.map { it.asJava(name) },
constructors = constructors.map { it.asJava(dri.classNames ?: name) },
functions = (functions + properties.map { it.getter } + properties.map { it.setter }).filterNotNull().map {
it.asJava(name)
it.asJava(dri.classNames ?: name)
},
properties = properties.map { it.asJava() },
classlikes = classlikes.map { it.asJava() },
Expand All @@ -264,7 +264,7 @@ internal fun DEnum.asJava(): DEnum = copy(
internal fun DObject.asJava(): DObject = copy(
functions = (functions + properties.map { it.getter } + properties.map { it.setter })
.filterNotNull()
.map { it.asJava(name.orEmpty()) },
.map { it.asJava(dri.classNames ?: name.orEmpty()) },
properties = properties.map { it.asJava() } +
DProperty(
name = "INSTANCE",
Expand Down Expand Up @@ -294,7 +294,7 @@ internal fun DObject.asJava(): DObject = copy(
internal fun DInterface.asJava(): DInterface = copy(
functions = (functions + properties.map { it.getter } + properties.map { it.setter })
.filterNotNull()
.map { it.asJava(name) },
.map { it.asJava(dri.classNames ?: name) },
properties = emptyList(),
classlikes = classlikes.map { it.asJava() }, // TODO: public static final class DefaultImpls with impls for methods
generics = generics.map { it.asJava() },
Expand Down

0 comments on commit 17e8144

Please sign in to comment.