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 HELPERS_PATH = "./compiler/testData/ir/interpreter/helpers"
|
||||||
private const val UNSIGNED_PATH = "./libraries/stdlib/unsigned/src/kotlin"
|
private const val UNSIGNED_PATH = "./libraries/stdlib/unsigned/src/kotlin"
|
||||||
private val RUNTIME_PATHS = arrayOf(
|
private val RUNTIME_PATHS = arrayOf(
|
||||||
"./core/builtins/src/kotlin/Progressions.kt",
|
"./libraries/stdlib/src/kotlin/ranges/Progressions.kt",
|
||||||
"./core/builtins/src/kotlin/ProgressionIterators.kt",
|
"./libraries/stdlib/src/kotlin/ranges/ProgressionIterators.kt",
|
||||||
"./core/builtins/src/kotlin/internal/progressionUtil.kt",
|
"./libraries/stdlib/src/kotlin/internal/progressionUtil.kt",
|
||||||
"./libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt",
|
"./libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt",
|
||||||
"./libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt",
|
"./libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt",
|
||||||
"./libraries/stdlib/jvm/src/kotlin/collections/TypeAliases.kt",
|
"./libraries/stdlib/jvm/src/kotlin/collections/TypeAliases.kt",
|
||||||
@@ -41,7 +41,7 @@ class IrInterpreterHelpersSourceFilesProvider(testServices: TestServices) : Addi
|
|||||||
private val EXCLUDES = listOf(
|
private val EXCLUDES = listOf(
|
||||||
"src/kotlin/UStrings.kt", "src/kotlin/UMath.kt", "src/kotlin/UNumbers.kt", "src/kotlin/reflect/TypesJVM.kt",
|
"src/kotlin/UStrings.kt", "src/kotlin/UMath.kt", "src/kotlin/UNumbers.kt", "src/kotlin/reflect/TypesJVM.kt",
|
||||||
"core/builtins/src/kotlin/CompileTimeAnnotations.kt"
|
"core/builtins/src/kotlin/CompileTimeAnnotations.kt"
|
||||||
)
|
).map(::File)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val directiveContainers: List<DirectivesContainer> =
|
override val directiveContainers: List<DirectivesContainer> =
|
||||||
@@ -49,12 +49,13 @@ class IrInterpreterHelpersSourceFilesProvider(testServices: TestServices) : Addi
|
|||||||
|
|
||||||
private fun getTestFilesForEachDirectory(vararg directories: String): List<TestFile> {
|
private fun getTestFilesForEachDirectory(vararg directories: String): List<TestFile> {
|
||||||
return directories.flatMap { directory ->
|
return directories.flatMap { directory ->
|
||||||
File(directory).walkTopDown().mapNotNull { file ->
|
File(directory)
|
||||||
if (file.isDirectory) return@mapNotNull null
|
.also { check(it.exists()) { "$it path is not found" } }
|
||||||
if (EXCLUDES.any { file.absolutePath.endsWith(it.replace('/', File.separatorChar)) }) return@mapNotNull null
|
.walkTopDown().mapNotNull { file ->
|
||||||
|
file.takeUnless { it.isDirectory }
|
||||||
file.toTestFile()
|
?.takeUnless { EXCLUDES.any { file.endsWith(it) } }
|
||||||
}.toList()
|
?.toTestFile()
|
||||||
|
}.toList()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -20,7 +20,8 @@ object BuiltinsTestUtils {
|
|||||||
val files = KotlinTestUtils.loadToJetFiles(
|
val files = KotlinTestUtils.loadToJetFiles(
|
||||||
environment, ContainerUtil.concat<File>(
|
environment, ContainerUtil.concat<File>(
|
||||||
allFilesUnder("core/builtins/native"),
|
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
|
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 builtinsNative = fileFrom(rootDir, "core", "builtins", "native")
|
||||||
val kotlinReflectCommon = fileFrom(rootDir, "libraries/stdlib/src/kotlin/reflect/")
|
val kotlinReflectCommon = fileFrom(rootDir, "libraries/stdlib/src/kotlin/reflect/")
|
||||||
val kotlinReflectJvm = fileFrom(rootDir, "libraries/stdlib/jvm/src/kotlin/reflect")
|
val kotlinReflectJvm = fileFrom(rootDir, "libraries/stdlib/jvm/src/kotlin/reflect")
|
||||||
val builtinsCherryPicked = fileFrom(buildDir, "src")
|
val kotlinRangesCommon = fileFrom(rootDir, "libraries/stdlib/src/kotlin/ranges")
|
||||||
val builtinsCherryPickedJvm = fileFrom(buildDir, "src-jvm")
|
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 {
|
val runtimeElements by configurations.creating {
|
||||||
isCanBeResolved = false
|
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) {
|
val prepareSources by tasks.registering(Sync::class) {
|
||||||
from(kotlinReflectCommon) {
|
from(kotlinReflectCommon) {
|
||||||
exclude("typeOf.kt")
|
exclude("typeOf.kt")
|
||||||
@@ -54,7 +68,7 @@ val prepareSourcesJvm by tasks.registering(Sync::class) {
|
|||||||
|
|
||||||
fun serializeTask(name: String, sourcesTask: TaskProvider<*>, inDirs: List<File>) =
|
fun serializeTask(name: String, sourcesTask: TaskProvider<*>, inDirs: List<File>) =
|
||||||
tasks.register(name, NoDebugJavaExec::class) {
|
tasks.register(name, NoDebugJavaExec::class) {
|
||||||
dependsOn(sourcesTask)
|
dependsOn(sourcesTask, prepareRangeSources)
|
||||||
val outDir = buildDir.resolve(this.name)
|
val outDir = buildDir.resolve(this.name)
|
||||||
inDirs.forEach { inputs.dir(it).withPathSensitivity(RELATIVE) }
|
inDirs.forEach { inputs.dir(it).withPathSensitivity(RELATIVE) }
|
||||||
outputs.dir(outDir)
|
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> {
|
val builtinsJar by task<Jar> {
|
||||||
dependsOn(serialize)
|
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(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/Arrays.kt")) { GenerateArrays(it) }
|
||||||
generate(File(BUILT_INS_NATIVE_DIR, "kotlin/Primitives.kt")) { GeneratePrimitives(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(RUNTIME_JVM_DIR, "kotlin/jvm/internal/ArrayIterators.kt")) { GenerateArrayIterators(it) }
|
||||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/ProgressionIterators.kt")) { GenerateProgressionIterators(it) }
|
generate(File(STDLIB_DIR, "kotlin/ranges/ProgressionIterators.kt")) { GenerateProgressionIterators(it) }
|
||||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/Progressions.kt")) { GenerateProgressions(it) }
|
generate(File(STDLIB_DIR, "kotlin/ranges/Progressions.kt")) { GenerateProgressions(it) }
|
||||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/Ranges.kt")) { GenerateRanges(it) }
|
generate(File(STDLIB_DIR, "kotlin/ranges/PrimitiveRanges.kt")) { GenerateRanges(it) }
|
||||||
generate(File(STDLIB_DIR, "kotlin/util/FloorDivMod.kt")) { GenerateFloorDivMod(it) }
|
generate(File(STDLIB_DIR, "kotlin/util/FloorDivMod.kt")) { GenerateFloorDivMod(it) }
|
||||||
|
|
||||||
generateUnsignedTypes(UNSIGNED_TYPES_DIR, generate)
|
generateUnsignedTypes(UNSIGNED_TYPES_DIR, generate)
|
||||||
|
|||||||
@@ -257,12 +257,6 @@ val commonStdlibSrcDirs = project(":kotlin-stdlib-common")
|
|||||||
"../unsigned/src",
|
"../unsigned/src",
|
||||||
"../src"
|
"../src"
|
||||||
).files
|
).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 interopRuntimeCommonSrcDir = project(":kotlin-native:Interop:Runtime").file("src/main/kotlin")
|
||||||
val interopSrcDirs = listOf(
|
val interopSrcDirs = listOf(
|
||||||
@@ -300,7 +294,6 @@ konanArtifacts {
|
|||||||
"-opt-in=kotlin.native.internal.InternalForKotlinNative",
|
"-opt-in=kotlin.native.internal.InternalForKotlinNative",
|
||||||
)
|
)
|
||||||
|
|
||||||
srcFiles(commonBuiltinsSrc)
|
|
||||||
commonStdlibSrcDirs.forEach { commonSrcDir(it) }
|
commonStdlibSrcDirs.forEach { commonSrcDir(it) }
|
||||||
testAnnotationCommonSrcDir.forEach { commonSrcDir(it) }
|
testAnnotationCommonSrcDir.forEach { commonSrcDir(it) }
|
||||||
testCommonSrcDir.forEach { commonSrcDir(it) }
|
testCommonSrcDir.forEach { commonSrcDir(it) }
|
||||||
|
|||||||
@@ -56,6 +56,17 @@ val commonMainSources by task<Sync> {
|
|||||||
into("$buildDir/commonMainSources")
|
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> {
|
val jsMainSources by task<Sync> {
|
||||||
dependsOn(":kotlin-stdlib-js-ir:jsMainSources")
|
dependsOn(":kotlin-stdlib-js-ir:jsMainSources")
|
||||||
|
|
||||||
@@ -111,6 +122,7 @@ kotlin {
|
|||||||
sourceSets {
|
sourceSets {
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
kotlin.srcDir(files(commonMainSources.map { it.destinationDir }))
|
kotlin.srcDir(files(commonMainSources.map { it.destinationDir }))
|
||||||
|
kotlin.srcDir(files(commonMainCollectionSources.map { it.destinationDir }))
|
||||||
}
|
}
|
||||||
val jsMain by getting {
|
val jsMain by getting {
|
||||||
kotlin.srcDir(files(jsMainSources.map { it.destinationDir }))
|
kotlin.srcDir(files(jsMainSources.map { it.destinationDir }))
|
||||||
|
|||||||
@@ -100,11 +100,6 @@ task prepareBuiltinsSources(type: Copy) {
|
|||||||
from("${builtinsDir}/src/kotlin/") {
|
from("${builtinsDir}/src/kotlin/") {
|
||||||
include "annotation/Annotations.kt"
|
include "annotation/Annotations.kt"
|
||||||
include "Function.kt"
|
include "Function.kt"
|
||||||
include "Iterators.kt"
|
|
||||||
include "Range.kt"
|
|
||||||
include "Progressions.kt"
|
|
||||||
include "ProgressionIterators.kt"
|
|
||||||
include "Ranges.kt"
|
|
||||||
include "Unit.kt"
|
include "Unit.kt"
|
||||||
}
|
}
|
||||||
into builtinsSrcDir
|
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/annotation/Annotations.kt"/>
|
||||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/Function.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/InternalAnnotations.kt"/>
|
||||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/internal/progressionUtil.kt"/>
|
|
||||||
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/Unit.kt"/>
|
<sourceroot path="${kotlin_builtins_dir}/src/kotlin/Unit.kt"/>
|
||||||
|
|
||||||
<!-- TODO Docs? -->
|
<!-- TODO Docs? -->
|
||||||
|
|||||||
Reference in New Issue
Block a user