Move sources of ranges to common stdlib from builtins
But still cherry-pick them when serializing builtins because they are used in builtins signatures. Merge-request: KT-MR-6488 Merged-by: Ilya Gorbunov <Ilya.Gorbunov@jetbrains.com>
This commit is contained in:
+11
-10
@@ -19,9 +19,9 @@ class IrInterpreterHelpersSourceFilesProvider(testServices: TestServices) : Addi
|
||||
private const val HELPERS_PATH = "./compiler/testData/ir/interpreter/helpers"
|
||||
private const val UNSIGNED_PATH = "./libraries/stdlib/unsigned/src/kotlin"
|
||||
private val RUNTIME_PATHS = arrayOf(
|
||||
"./core/builtins/src/kotlin/Progressions.kt",
|
||||
"./core/builtins/src/kotlin/ProgressionIterators.kt",
|
||||
"./core/builtins/src/kotlin/internal/progressionUtil.kt",
|
||||
"./libraries/stdlib/src/kotlin/ranges/Progressions.kt",
|
||||
"./libraries/stdlib/src/kotlin/ranges/ProgressionIterators.kt",
|
||||
"./libraries/stdlib/src/kotlin/internal/progressionUtil.kt",
|
||||
"./libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt",
|
||||
"./libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt",
|
||||
"./libraries/stdlib/jvm/src/kotlin/collections/TypeAliases.kt",
|
||||
@@ -41,7 +41,7 @@ class IrInterpreterHelpersSourceFilesProvider(testServices: TestServices) : Addi
|
||||
private val EXCLUDES = listOf(
|
||||
"src/kotlin/UStrings.kt", "src/kotlin/UMath.kt", "src/kotlin/UNumbers.kt", "src/kotlin/reflect/TypesJVM.kt",
|
||||
"core/builtins/src/kotlin/CompileTimeAnnotations.kt"
|
||||
)
|
||||
).map(::File)
|
||||
}
|
||||
|
||||
override val directiveContainers: List<DirectivesContainer> =
|
||||
@@ -49,12 +49,13 @@ class IrInterpreterHelpersSourceFilesProvider(testServices: TestServices) : Addi
|
||||
|
||||
private fun getTestFilesForEachDirectory(vararg directories: String): List<TestFile> {
|
||||
return directories.flatMap { directory ->
|
||||
File(directory).walkTopDown().mapNotNull { file ->
|
||||
if (file.isDirectory) return@mapNotNull null
|
||||
if (EXCLUDES.any { file.absolutePath.endsWith(it.replace('/', File.separatorChar)) }) return@mapNotNull null
|
||||
|
||||
file.toTestFile()
|
||||
}.toList()
|
||||
File(directory)
|
||||
.also { check(it.exists()) { "$it path is not found" } }
|
||||
.walkTopDown().mapNotNull { file ->
|
||||
file.takeUnless { it.isDirectory }
|
||||
?.takeUnless { EXCLUDES.any { file.endsWith(it) } }
|
||||
?.toTestFile()
|
||||
}.toList()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -20,7 +20,8 @@ object BuiltinsTestUtils {
|
||||
val files = KotlinTestUtils.loadToJetFiles(
|
||||
environment, ContainerUtil.concat<File>(
|
||||
allFilesUnder("core/builtins/native"),
|
||||
allFilesUnder("core/builtins/src")
|
||||
allFilesUnder("core/builtins/src"),
|
||||
allFilesUnder("core/builtins/build/src/ranges"),
|
||||
)
|
||||
)
|
||||
return createResolveSessionForFiles(environment.project, files, false).moduleDescriptor
|
||||
|
||||
@@ -10,8 +10,11 @@ val builtinsSrc = fileFrom(rootDir, "core", "builtins", "src")
|
||||
val builtinsNative = fileFrom(rootDir, "core", "builtins", "native")
|
||||
val kotlinReflectCommon = fileFrom(rootDir, "libraries/stdlib/src/kotlin/reflect/")
|
||||
val kotlinReflectJvm = fileFrom(rootDir, "libraries/stdlib/jvm/src/kotlin/reflect")
|
||||
val builtinsCherryPicked = fileFrom(buildDir, "src")
|
||||
val builtinsCherryPickedJvm = fileFrom(buildDir, "src-jvm")
|
||||
val kotlinRangesCommon = fileFrom(rootDir, "libraries/stdlib/src/kotlin/ranges")
|
||||
val kotlinCollectionsCommon = fileFrom(rootDir, "libraries/stdlib/src/kotlin/collections")
|
||||
val builtinsCherryPicked = fileFrom(buildDir, "src/reflect")
|
||||
val rangesCherryPicked = fileFrom(buildDir, "src/ranges")
|
||||
val builtinsCherryPickedJvm = fileFrom(buildDir, "src-jvm/reflect")
|
||||
|
||||
val runtimeElements by configurations.creating {
|
||||
isCanBeResolved = false
|
||||
@@ -30,6 +33,17 @@ val runtimeElementsJvm by configurations.creating {
|
||||
}
|
||||
}
|
||||
|
||||
val prepareRangeSources by tasks.registering(Sync::class) {
|
||||
from(kotlinRangesCommon) {
|
||||
exclude("Ranges.kt")
|
||||
}
|
||||
from(kotlinCollectionsCommon) {
|
||||
include("PrimitiveIterators.kt")
|
||||
}
|
||||
|
||||
into(rangesCherryPicked)
|
||||
}
|
||||
|
||||
val prepareSources by tasks.registering(Sync::class) {
|
||||
from(kotlinReflectCommon) {
|
||||
exclude("typeOf.kt")
|
||||
@@ -54,7 +68,7 @@ val prepareSourcesJvm by tasks.registering(Sync::class) {
|
||||
|
||||
fun serializeTask(name: String, sourcesTask: TaskProvider<*>, inDirs: List<File>) =
|
||||
tasks.register(name, NoDebugJavaExec::class) {
|
||||
dependsOn(sourcesTask)
|
||||
dependsOn(sourcesTask, prepareRangeSources)
|
||||
val outDir = buildDir.resolve(this.name)
|
||||
inDirs.forEach { inputs.dir(it).withPathSensitivity(RELATIVE) }
|
||||
outputs.dir(outDir)
|
||||
@@ -72,9 +86,9 @@ fun serializeTask(name: String, sourcesTask: TaskProvider<*>, inDirs: List<File>
|
||||
)
|
||||
}
|
||||
|
||||
val serialize = serializeTask("serialize", prepareSources, listOf(builtinsSrc, builtinsNative, builtinsCherryPicked))
|
||||
val serialize = serializeTask("serialize", prepareSources, listOf(builtinsSrc, builtinsNative, builtinsCherryPicked, rangesCherryPicked))
|
||||
|
||||
val serializeJvm = serializeTask("serializeJvm", prepareSourcesJvm, listOf(builtinsSrc, builtinsNative, builtinsCherryPickedJvm))
|
||||
val serializeJvm = serializeTask("serializeJvm", prepareSourcesJvm, listOf(builtinsSrc, builtinsNative, builtinsCherryPickedJvm, rangesCherryPicked))
|
||||
|
||||
val builtinsJar by task<Jar> {
|
||||
dependsOn(serialize)
|
||||
|
||||
@@ -75,11 +75,11 @@ fun generateBuiltIns(generate: (File, (PrintWriter) -> BuiltInsSourceGenerator)
|
||||
generate(File(RUNTIME_JVM_DIR, "kotlin/jvm/functions/Functions.kt")) { GenerateFunctions(it) }
|
||||
generate(File(BUILT_INS_NATIVE_DIR, "kotlin/Arrays.kt")) { GenerateArrays(it) }
|
||||
generate(File(BUILT_INS_NATIVE_DIR, "kotlin/Primitives.kt")) { GeneratePrimitives(it) }
|
||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/Iterators.kt")) { GenerateIterators(it) }
|
||||
generate(File(STDLIB_DIR, "kotlin/collections/PrimitiveIterators.kt")) { GenerateIterators(it) }
|
||||
generate(File(RUNTIME_JVM_DIR, "kotlin/jvm/internal/ArrayIterators.kt")) { GenerateArrayIterators(it) }
|
||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/ProgressionIterators.kt")) { GenerateProgressionIterators(it) }
|
||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/Progressions.kt")) { GenerateProgressions(it) }
|
||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/Ranges.kt")) { GenerateRanges(it) }
|
||||
generate(File(STDLIB_DIR, "kotlin/ranges/ProgressionIterators.kt")) { GenerateProgressionIterators(it) }
|
||||
generate(File(STDLIB_DIR, "kotlin/ranges/Progressions.kt")) { GenerateProgressions(it) }
|
||||
generate(File(STDLIB_DIR, "kotlin/ranges/PrimitiveRanges.kt")) { GenerateRanges(it) }
|
||||
generate(File(STDLIB_DIR, "kotlin/util/FloorDivMod.kt")) { GenerateFloorDivMod(it) }
|
||||
|
||||
generateUnsignedTypes(UNSIGNED_TYPES_DIR, generate)
|
||||
|
||||
@@ -257,12 +257,6 @@ val commonStdlibSrcDirs = project(":kotlin-stdlib-common")
|
||||
"../unsigned/src",
|
||||
"../src"
|
||||
).files
|
||||
val commonBuiltinsSrc = listOf(
|
||||
"Progressions.kt", "ProgressionIterators.kt", "Range.kt", "Ranges.kt", "internal/progressionUtil.kt")
|
||||
.map { "src/kotlin/$it" }
|
||||
.let {
|
||||
project(":core:builtins").files(it).files
|
||||
}
|
||||
|
||||
val interopRuntimeCommonSrcDir = project(":kotlin-native:Interop:Runtime").file("src/main/kotlin")
|
||||
val interopSrcDirs = listOf(
|
||||
@@ -300,7 +294,6 @@ konanArtifacts {
|
||||
"-opt-in=kotlin.native.internal.InternalForKotlinNative",
|
||||
)
|
||||
|
||||
srcFiles(commonBuiltinsSrc)
|
||||
commonStdlibSrcDirs.forEach { commonSrcDir(it) }
|
||||
testAnnotationCommonSrcDir.forEach { commonSrcDir(it) }
|
||||
testCommonSrcDir.forEach { commonSrcDir(it) }
|
||||
|
||||
@@ -56,6 +56,17 @@ val commonMainSources by task<Sync> {
|
||||
into("$buildDir/commonMainSources")
|
||||
}
|
||||
|
||||
val commonMainCollectionSources by task<Sync> {
|
||||
dependsOn(":kotlin-stdlib-js-ir:commonMainSources")
|
||||
from {
|
||||
val fullCommonMainSources = tasks.getByPath(":kotlin-stdlib-js-ir:commonMainSources")
|
||||
include("libraries/stdlib/src/kotlin/collections/PrimitiveIterators.kt")
|
||||
fullCommonMainSources.outputs.files.singleFile
|
||||
}
|
||||
|
||||
into("$buildDir/commonMainCollectionSources")
|
||||
}
|
||||
|
||||
val jsMainSources by task<Sync> {
|
||||
dependsOn(":kotlin-stdlib-js-ir:jsMainSources")
|
||||
|
||||
@@ -111,6 +122,7 @@ kotlin {
|
||||
sourceSets {
|
||||
val commonMain by getting {
|
||||
kotlin.srcDir(files(commonMainSources.map { it.destinationDir }))
|
||||
kotlin.srcDir(files(commonMainCollectionSources.map { it.destinationDir }))
|
||||
}
|
||||
val jsMain by getting {
|
||||
kotlin.srcDir(files(jsMainSources.map { it.destinationDir }))
|
||||
|
||||
@@ -100,11 +100,6 @@ task prepareBuiltinsSources(type: Copy) {
|
||||
from("${builtinsDir}/src/kotlin/") {
|
||||
include "annotation/Annotations.kt"
|
||||
include "Function.kt"
|
||||
include "Iterators.kt"
|
||||
include "Range.kt"
|
||||
include "Progressions.kt"
|
||||
include "ProgressionIterators.kt"
|
||||
include "Ranges.kt"
|
||||
include "Unit.kt"
|
||||
}
|
||||
into builtinsSrcDir
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
package kotlin.collections
|
||||
|
||||
/** An iterator over a sequence of values of type `Byte`. */
|
||||
public abstract class ByteIterator : Iterator<Byte> {
|
||||
override final fun next() = nextByte()
|
||||
|
||||
/** Returns the next value in the sequence without boxing. */
|
||||
public abstract fun nextByte(): Byte
|
||||
}
|
||||
|
||||
/** An iterator over a sequence of values of type `Char`. */
|
||||
public abstract class CharIterator : Iterator<Char> {
|
||||
override final fun next() = nextChar()
|
||||
|
||||
/** Returns the next value in the sequence without boxing. */
|
||||
public abstract fun nextChar(): Char
|
||||
}
|
||||
|
||||
/** An iterator over a sequence of values of type `Short`. */
|
||||
public abstract class ShortIterator : Iterator<Short> {
|
||||
override final fun next() = nextShort()
|
||||
|
||||
/** Returns the next value in the sequence without boxing. */
|
||||
public abstract fun nextShort(): Short
|
||||
}
|
||||
|
||||
/** An iterator over a sequence of values of type `Int`. */
|
||||
public abstract class IntIterator : Iterator<Int> {
|
||||
override final fun next() = nextInt()
|
||||
|
||||
/** Returns the next value in the sequence without boxing. */
|
||||
public abstract fun nextInt(): Int
|
||||
}
|
||||
|
||||
/** An iterator over a sequence of values of type `Long`. */
|
||||
public abstract class LongIterator : Iterator<Long> {
|
||||
override final fun next() = nextLong()
|
||||
|
||||
/** Returns the next value in the sequence without boxing. */
|
||||
public abstract fun nextLong(): Long
|
||||
}
|
||||
|
||||
/** An iterator over a sequence of values of type `Float`. */
|
||||
public abstract class FloatIterator : Iterator<Float> {
|
||||
override final fun next() = nextFloat()
|
||||
|
||||
/** Returns the next value in the sequence without boxing. */
|
||||
public abstract fun nextFloat(): Float
|
||||
}
|
||||
|
||||
/** An iterator over a sequence of values of type `Double`. */
|
||||
public abstract class DoubleIterator : Iterator<Double> {
|
||||
override final fun next() = nextDouble()
|
||||
|
||||
/** Returns the next value in the sequence without boxing. */
|
||||
public abstract fun nextDouble(): Double
|
||||
}
|
||||
|
||||
/** An iterator over a sequence of values of type `Boolean`. */
|
||||
public abstract class BooleanIterator : Iterator<Boolean> {
|
||||
override final fun next() = nextBoolean()
|
||||
|
||||
/** Returns the next value in the sequence without boxing. */
|
||||
public abstract fun nextBoolean(): Boolean
|
||||
}
|
||||
@@ -228,13 +228,7 @@
|
||||
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/annotation/Annotations.kt"/>
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/Function.kt"/>
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/Iterators.kt"/>
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/Range.kt"/>
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/Progressions.kt"/>
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/ProgressionIterators.kt"/>
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/Ranges.kt"/>
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/internal/InternalAnnotations.kt"/>
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/internal/progressionUtil.kt"/>
|
||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/Unit.kt"/>
|
||||
|
||||
<!-- TODO Docs? -->
|
||||
|
||||
Reference in New Issue
Block a user