Revert "Minor, move SpecialNames.isSafeIdentifier check a little earlier"
This reverts commit a3055edda9.
It turns out, this re-introduces an AssertionError at ClassId.<init> ("Class
name must not be root") when LazyJavaPackageScope#getContributedClassifier is
called during SAM constructor resolution below in
LazyJavaPackageScope#computeNonDeclaredFunctions, which was overlooked at the
time the commit was pushed
This commit is contained in:
-3
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.incremental.record
|
||||
import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaPackage
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.SpecialNames
|
||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||
import org.jetbrains.kotlin.storage.getValue
|
||||
@@ -48,8 +47,6 @@ class JvmPackageScope(
|
||||
}
|
||||
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? {
|
||||
if (!SpecialNames.isSafeIdentifier(name)) return null
|
||||
|
||||
recordLookup(location, name)
|
||||
|
||||
val javaClassifier = javaScope.getContributedClassifier(name, location)
|
||||
|
||||
+8
-5
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinaryClass
|
||||
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.SpecialNames
|
||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||
import org.jetbrains.kotlin.storage.NullableLazyValue
|
||||
|
||||
@@ -102,17 +103,19 @@ class LazyJavaPackageScope(
|
||||
override fun hashCode() = name.hashCode()
|
||||
}
|
||||
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassDescriptor? {
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation) = findClassifier(name, null)
|
||||
|
||||
private fun findClassifier(name: Name, javaClass: JavaClass?): ClassDescriptor? {
|
||||
if (!SpecialNames.isSafeIdentifier(name)) return null
|
||||
|
||||
val knownClassNamesInPackage = knownClassNamesInPackage()
|
||||
if (knownClassNamesInPackage != null && name.asString() !in knownClassNamesInPackage) {
|
||||
if (javaClass == null && knownClassNamesInPackage != null && name.asString() !in knownClassNamesInPackage) {
|
||||
return null
|
||||
}
|
||||
|
||||
return findClassifier(name, null)
|
||||
return classes(FindClassRequest(name, javaClass))
|
||||
}
|
||||
|
||||
private fun findClassifier(name: Name, javaClass: JavaClass?): ClassDescriptor? = classes(FindClassRequest(name, javaClass))
|
||||
|
||||
internal fun findClassifierByJavaClass(javaClass: JavaClass) = findClassifier(javaClass.name, javaClass)
|
||||
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation): Collection<PropertyDescriptor> = emptyList()
|
||||
|
||||
Reference in New Issue
Block a user