FIR: add getClassifierNames for FirScope
This commit is contained in:
+5
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -49,6 +49,10 @@ class JavaClassUseSiteMemberScope(
|
|||||||
return declaredMemberScope.getCallableNames() + superTypesScope.getCallableNames()
|
return declaredMemberScope.getCallableNames() + superTypesScope.getCallableNames()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getClassifierNames(): Set<Name> {
|
||||||
|
return declaredMemberScope.getClassifierNames() + superTypesScope.getClassifierNames()
|
||||||
|
}
|
||||||
|
|
||||||
private fun generateAccessorSymbol(
|
private fun generateAccessorSymbol(
|
||||||
functionSymbol: FirFunctionSymbol<*>,
|
functionSymbol: FirFunctionSymbol<*>,
|
||||||
syntheticPropertyName: Name,
|
syntheticPropertyName: Name,
|
||||||
|
|||||||
+5
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -80,6 +80,10 @@ class FirClassDeclaredMemberScope(
|
|||||||
override fun getCallableNames(): Set<Name> {
|
override fun getCallableNames(): Set<Name> {
|
||||||
return callablesIndex.keys
|
return callablesIndex.keys
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getClassifierNames(): Set<Name> {
|
||||||
|
return nestedClassifierScope?.getClassifierNames().orEmpty()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -32,4 +32,8 @@ class FirLazyNestedClassifierScope(
|
|||||||
|
|
||||||
processor(symbol, ConeSubstitutor.Empty)
|
processor(symbol, ConeSubstitutor.Empty)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getClassifierNames(): Set<Name> {
|
||||||
|
return existingNames.toSet()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -43,6 +43,10 @@ class FirNestedClassifierScope(val klass: FirClass<*>) : FirScope() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getClassifierByName(name: Name): FirRegularClassSymbol? = classIndex[name]
|
fun getClassifierByName(name: Name): FirRegularClassSymbol? = classIndex[name]
|
||||||
|
|
||||||
|
override fun getClassifierNames(): Set<Name> {
|
||||||
|
return classIndex.keys
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirTypeParameterRef.toConeType(): ConeKotlinType = ConeTypeParameterTypeImpl(ConeTypeParameterLookupTag(symbol), isNullable = false)
|
fun FirTypeParameterRef.toConeType(): ConeKotlinType = ConeTypeParameterTypeImpl(ConeTypeParameterLookupTag(symbol), isNullable = false)
|
||||||
+6
-2
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.fir.scopes.impl
|
package org.jetbrains.kotlin.fir.scopes.impl
|
||||||
@@ -345,6 +345,10 @@ class FirTypeIntersectionScope private constructor(
|
|||||||
return scopes.flatMapTo(mutableSetOf()) { it.getCallableNames() }
|
return scopes.flatMapTo(mutableSetOf()) { it.getCallableNames() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getClassifierNames(): Set<Name> {
|
||||||
|
return scopes.flatMapTo(hashSetOf()) { it.getClassifierNames() }
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun prepareIntersectionScope(
|
fun prepareIntersectionScope(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
|
|||||||
@@ -48,4 +48,8 @@ class FirCompositeScope(private val scopes: Iterable<FirScope>) : FirScope() {
|
|||||||
override fun getCallableNames(): Set<Name> {
|
override fun getCallableNames(): Set<Name> {
|
||||||
return scopes.flatMapTo(mutableSetOf()) { it.getCallableNames() }
|
return scopes.flatMapTo(mutableSetOf()) { it.getCallableNames() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getClassifierNames(): Set<Name> {
|
||||||
|
return scopes.flatMapTo(hashSetOf()) { it.getClassifierNames() }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -35,6 +35,8 @@ abstract class FirScope {
|
|||||||
open fun mayContainName(name: Name) = true
|
open fun mayContainName(name: Name) = true
|
||||||
|
|
||||||
open fun getCallableNames(): Set<Name> = emptySet()
|
open fun getCallableNames(): Set<Name> = emptySet()
|
||||||
|
|
||||||
|
open fun getClassifierNames(): Set<Name> = emptySet()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirTypeScope.processOverriddenFunctionsAndSelf(
|
fun FirTypeScope.processOverriddenFunctionsAndSelf(
|
||||||
|
|||||||
Reference in New Issue
Block a user