Add descriptors.runtime to the compiler...

move it into appropriate package and ensure that it gets relocated
properly in kotlin-reflect.jar
This change is needed to use the functionality that provides descriptors
from classloaders for scripts compilation.
This commit is contained in:
Ilya Chernikov
2019-09-10 16:10:17 +02:00
parent 8dce22c335
commit 689a5cbdf5
39 changed files with 94 additions and 92 deletions
@@ -1,31 +0,0 @@
/*
* Copyright 2010-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
import org.jetbrains.kotlin.load.java.structure.JavaField
import java.lang.reflect.Field
class ReflectJavaField(override val member: Field) : ReflectJavaMember(), JavaField {
override val isEnumEntry: Boolean
get() = member.isEnumConstant
override val type: ReflectJavaType
get() = ReflectJavaType.create(member.genericType)
override val initializerValue: Any? get() = null
override val hasConstantNotNullInitializer get() = false
}
@@ -3,7 +3,7 @@
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package kotlin.reflect.jvm.internal.components
package org.jetbrains.kotlin.descriptors.runtime.components
import org.jetbrains.kotlin.descriptors.impl.EmptyPackageFragmentDescriptor
import org.jetbrains.kotlin.load.kotlin.DeserializedDescriptorResolver
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.components
package org.jetbrains.kotlin.descriptors.runtime.components
import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.descriptors.SourceFile
@@ -14,14 +14,14 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.components
package org.jetbrains.kotlin.descriptors.runtime.components
import org.jetbrains.kotlin.load.java.JavaClassFinder
import org.jetbrains.kotlin.load.java.structure.JavaClass
import org.jetbrains.kotlin.load.java.structure.JavaPackage
import org.jetbrains.kotlin.name.FqName
import kotlin.reflect.jvm.internal.structure.ReflectJavaClass
import kotlin.reflect.jvm.internal.structure.ReflectJavaPackage
import org.jetbrains.kotlin.descriptors.runtime.structure.ReflectJavaClass
import org.jetbrains.kotlin.descriptors.runtime.structure.ReflectJavaPackage
class ReflectJavaClassFinder(private val classLoader: ClassLoader) : JavaClassFinder {
override fun findClass(request: JavaClassFinder.Request): JavaClass? {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.components
package org.jetbrains.kotlin.descriptors.runtime.components
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
@@ -28,9 +28,9 @@ import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
import java.lang.reflect.Constructor
import java.lang.reflect.Field
import java.lang.reflect.Method
import kotlin.reflect.jvm.internal.structure.classId
import kotlin.reflect.jvm.internal.structure.desc
import kotlin.reflect.jvm.internal.structure.isEnumClassOrSpecializedEnumEntryClass
import org.jetbrains.kotlin.descriptors.runtime.structure.classId
import org.jetbrains.kotlin.descriptors.runtime.structure.desc
import org.jetbrains.kotlin.descriptors.runtime.structure.isEnumClassOrSpecializedEnumEntryClass
@Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN")
private val TYPES_ELIGIBLE_FOR_SIMPLE_VISIT = setOf<Class<*>>(
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.components
package org.jetbrains.kotlin.descriptors.runtime.components
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.load.java.structure.JavaClass
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.components
package org.jetbrains.kotlin.descriptors.runtime.components
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.ClassDescriptor
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.components
package org.jetbrains.kotlin.descriptors.runtime.components
import org.jetbrains.kotlin.builtins.ReflectionTypes
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
@@ -14,13 +14,13 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.components
package org.jetbrains.kotlin.descriptors.runtime.components
import org.jetbrains.kotlin.descriptors.SourceFile
import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
import org.jetbrains.kotlin.load.java.sources.JavaSourceElementFactory
import org.jetbrains.kotlin.load.java.structure.JavaElement
import kotlin.reflect.jvm.internal.structure.ReflectJavaElement
import org.jetbrains.kotlin.descriptors.runtime.structure.ReflectJavaElement
object RuntimeSourceElementFactory : JavaSourceElementFactory {
class RuntimeSourceElement(override val javaElement: ReflectJavaElement) : JavaSourceElement {
@@ -28,5 +28,6 @@ object RuntimeSourceElementFactory : JavaSourceElementFactory {
override fun getContainingFile(): SourceFile = SourceFile.NO_SOURCE_FILE
}
override fun source(javaElement: JavaElement): JavaSourceElement = RuntimeSourceElement(javaElement as ReflectJavaElement)
override fun source(javaElement: JavaElement): JavaSourceElement =
RuntimeSourceElement(javaElement as ReflectJavaElement)
}
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaAnnotation
import org.jetbrains.kotlin.load.java.structure.JavaAnnotationArgument
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.*
import org.jetbrains.kotlin.name.ClassId
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaAnnotationOwner
import org.jetbrains.kotlin.name.FqName
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaArrayType
import java.lang.reflect.GenericArrayType
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaClass
import org.jetbrains.kotlin.load.java.structure.JavaClassifierType
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaAnnotation
import org.jetbrains.kotlin.load.java.structure.JavaClassifier
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaConstructor
import org.jetbrains.kotlin.load.java.structure.JavaValueParameter
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaElement
@@ -0,0 +1,31 @@
/*
* Copyright 2010-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaField
import java.lang.reflect.Field
class ReflectJavaField(override val member: Field) : ReflectJavaMember(), JavaField {
override val isEnumEntry: Boolean
get() = member.isEnumConstant
override val type: ReflectJavaType
get() = ReflectJavaType.create(member.genericType)
override val initializerValue: Any? get() = null
override val hasConstantNotNullInitializer get() = false
}
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaMember
import org.jetbrains.kotlin.load.java.structure.JavaValueParameter
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaAnnotationArgument
import org.jetbrains.kotlin.load.java.structure.JavaMethod
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.Visibility
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaAnnotation
import org.jetbrains.kotlin.load.java.structure.JavaClass
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.builtins.PrimitiveType
import org.jetbrains.kotlin.load.java.structure.JavaPrimitiveType
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaType
import java.lang.reflect.GenericArrayType
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaTypeParameter
import org.jetbrains.kotlin.name.Name
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaValueParameter
import org.jetbrains.kotlin.name.FqName
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.load.java.structure.JavaWildcardType
import java.lang.reflect.WildcardType
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package kotlin.reflect.jvm.internal.structure
package org.jetbrains.kotlin.descriptors.runtime.structure
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
@@ -38,9 +38,9 @@ import java.io.File
import java.net.URLClassLoader
import java.util.*
import java.util.regex.Pattern
import kotlin.reflect.jvm.internal.components.ReflectKotlinClass
import kotlin.reflect.jvm.internal.components.RuntimeModuleData
import kotlin.reflect.jvm.internal.structure.classId
import org.jetbrains.kotlin.descriptors.runtime.components.ReflectKotlinClass
import org.jetbrains.kotlin.descriptors.runtime.components.RuntimeModuleData
import org.jetbrains.kotlin.descriptors.runtime.structure.classId
abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdir() {
companion object {