KT-65907: add handling for nested classes #KT-65907 fixed
This commit is contained in:
@@ -5,13 +5,11 @@
|
|||||||
|
|
||||||
package org.jetbrains.sir.passes.builder
|
package org.jetbrains.sir.passes.builder
|
||||||
|
|
||||||
import com.sun.org.apache.xpath.internal.operations.Bool
|
|
||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
||||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.name.CallableId
|
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.isPublic
|
import org.jetbrains.kotlin.psi.psiUtil.isPublic
|
||||||
import org.jetbrains.kotlin.sir.*
|
import org.jetbrains.kotlin.sir.*
|
||||||
@@ -43,13 +41,10 @@ private class PsiToSirTranslationCollector(
|
|||||||
private val res: MutableList<SirDeclaration>,
|
private val res: MutableList<SirDeclaration>,
|
||||||
private val checker: PsiToSirTranslation<Boolean>,
|
private val checker: PsiToSirTranslation<Boolean>,
|
||||||
private val translator: PsiToSirTranslation<SirDeclaration>,
|
private val translator: PsiToSirTranslation<SirDeclaration>,
|
||||||
private val isFirstLevel: Boolean = true,
|
|
||||||
) : KtTreeVisitorVoid() {
|
) : KtTreeVisitorVoid() {
|
||||||
|
|
||||||
override fun visitClassOrObject(classOrObject: KtClassOrObject) {
|
override fun visitClassOrObject(classOrObject: KtClassOrObject) {
|
||||||
if (isFirstLevel) {
|
classOrObject.checkAndTranslate(null)
|
||||||
classOrObject.checkAndTranslate(null)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitNamedFunction(function: KtNamedFunction) {
|
override fun visitNamedFunction(function: KtNamedFunction) {
|
||||||
@@ -121,7 +116,6 @@ internal fun buildSirClassFromPsi(classOrObject: KtClassOrObject): SirNamedDecla
|
|||||||
declarations,
|
declarations,
|
||||||
PsiToSirTranslatableChecker(analysisSession),
|
PsiToSirTranslatableChecker(analysisSession),
|
||||||
PsiToSirElementTranslation(analysisSession),
|
PsiToSirElementTranslation(analysisSession),
|
||||||
false
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}.also { resultedClass ->
|
}.also { resultedClass ->
|
||||||
|
|||||||
+56
@@ -6,6 +6,42 @@ public enum namespace {
|
|||||||
public class NAMESPACED_CLASS {
|
public class NAMESPACED_CLASS {
|
||||||
}
|
}
|
||||||
public class Foo {
|
public class Foo {
|
||||||
|
public class INSIDE_CLASS {
|
||||||
|
public class DEEPER_INSIDE_CLASS {
|
||||||
|
public func foo() -> Swift.Bool {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
public var my_value: Swift.UInt32 {
|
||||||
|
get {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public var my_variable: Swift.Int64 {
|
||||||
|
get {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public func foo() -> Swift.Bool {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
public var my_value: Swift.UInt32 {
|
||||||
|
get {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public var my_variable: Swift.Int64 {
|
||||||
|
get {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public func foo() -> Swift.Bool {
|
public func foo() -> Swift.Bool {
|
||||||
fatalError()
|
fatalError()
|
||||||
}
|
}
|
||||||
@@ -27,6 +63,8 @@ public enum namespace {
|
|||||||
public class NAMESPACED_CLASS {
|
public class NAMESPACED_CLASS {
|
||||||
}
|
}
|
||||||
public class Foo {
|
public class Foo {
|
||||||
|
public class INSIDE_CLASS {
|
||||||
|
}
|
||||||
public func foo() -> Swift.Bool {
|
public func foo() -> Swift.Bool {
|
||||||
fatalError()
|
fatalError()
|
||||||
}
|
}
|
||||||
@@ -47,6 +85,24 @@ public enum namespace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class Foo {
|
public class Foo {
|
||||||
|
public class INSIDE_CLASS {
|
||||||
|
public func my_func() -> Swift.Bool {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
public var my_value_inner: Swift.UInt32 {
|
||||||
|
get {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public var my_variable_inner: Swift.Int64 {
|
||||||
|
get {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public func foo() -> Swift.Bool {
|
public func foo() -> Swift.Bool {
|
||||||
fatalError()
|
fatalError()
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+15
-1
@@ -3,7 +3,21 @@ package namespace.deeper
|
|||||||
class NAMESPACED_CLASS
|
class NAMESPACED_CLASS
|
||||||
|
|
||||||
class Foo {
|
class Foo {
|
||||||
class INSIDE_CLASS // this should be ignored currently
|
class INSIDE_CLASS {
|
||||||
|
class DEEPER_INSIDE_CLASS {
|
||||||
|
fun foo(): Boolean = TODO()
|
||||||
|
|
||||||
|
val my_value: UInt = 5u
|
||||||
|
|
||||||
|
var my_variable: Long = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(): Boolean = TODO()
|
||||||
|
|
||||||
|
val my_value: UInt = 5u
|
||||||
|
|
||||||
|
var my_variable: Long = 5
|
||||||
|
}
|
||||||
|
|
||||||
fun foo(): Boolean = TODO()
|
fun foo(): Boolean = TODO()
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ package namespace
|
|||||||
class NAMESPACED_CLASS
|
class NAMESPACED_CLASS
|
||||||
|
|
||||||
class Foo {
|
class Foo {
|
||||||
class INSIDE_CLASS // this should be ignored currently
|
class INSIDE_CLASS
|
||||||
|
|
||||||
fun foo(): Boolean = TODO()
|
fun foo(): Boolean = TODO()
|
||||||
|
|
||||||
|
|||||||
+6
-1
@@ -1,7 +1,12 @@
|
|||||||
|
|
||||||
class Foo {
|
class Foo {
|
||||||
class INSIDE_CLASS // this should be ignored currently
|
class INSIDE_CLASS {
|
||||||
|
fun my_func(): Boolean = TODO()
|
||||||
|
|
||||||
|
val my_value_inner: UInt = 5u
|
||||||
|
|
||||||
|
var my_variable_inner: Long = 5
|
||||||
|
}
|
||||||
fun foo(): Boolean = TODO()
|
fun foo(): Boolean = TODO()
|
||||||
|
|
||||||
val my_value: UInt = 5u
|
val my_value: UInt = 5u
|
||||||
|
|||||||
+4
@@ -19,8 +19,12 @@ object OBJECT
|
|||||||
|
|
||||||
data class DATA_CLASS(val a: Int)
|
data class DATA_CLASS(val a: Int)
|
||||||
|
|
||||||
|
data class DATA_CLASS_WITH_REF(val o: OBJECT)
|
||||||
|
|
||||||
inline class INLINE_CLASS(val a: Int)
|
inline class INLINE_CLASS(val a: Int)
|
||||||
|
|
||||||
|
inline class INLINE_CLASS_WITH_REF(val i: DATA_CLASS_WITH_REF)
|
||||||
|
|
||||||
abstract class ABSTRACT_CLASS
|
abstract class ABSTRACT_CLASS
|
||||||
|
|
||||||
sealed class SEALED {
|
sealed class SEALED {
|
||||||
|
|||||||
Reference in New Issue
Block a user