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
|
||||
|
||||
import com.sun.org.apache.xpath.internal.operations.Bool
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isPublic
|
||||
import org.jetbrains.kotlin.sir.*
|
||||
@@ -43,13 +41,10 @@ private class PsiToSirTranslationCollector(
|
||||
private val res: MutableList<SirDeclaration>,
|
||||
private val checker: PsiToSirTranslation<Boolean>,
|
||||
private val translator: PsiToSirTranslation<SirDeclaration>,
|
||||
private val isFirstLevel: Boolean = true,
|
||||
) : KtTreeVisitorVoid() {
|
||||
|
||||
override fun visitClassOrObject(classOrObject: KtClassOrObject) {
|
||||
if (isFirstLevel) {
|
||||
classOrObject.checkAndTranslate(null)
|
||||
}
|
||||
classOrObject.checkAndTranslate(null)
|
||||
}
|
||||
|
||||
override fun visitNamedFunction(function: KtNamedFunction) {
|
||||
@@ -121,7 +116,6 @@ internal fun buildSirClassFromPsi(classOrObject: KtClassOrObject): SirNamedDecla
|
||||
declarations,
|
||||
PsiToSirTranslatableChecker(analysisSession),
|
||||
PsiToSirElementTranslation(analysisSession),
|
||||
false
|
||||
)
|
||||
)
|
||||
}.also { resultedClass ->
|
||||
|
||||
+56
@@ -6,6 +6,42 @@ public enum namespace {
|
||||
public class NAMESPACED_CLASS {
|
||||
}
|
||||
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 {
|
||||
fatalError()
|
||||
}
|
||||
@@ -27,6 +63,8 @@ public enum namespace {
|
||||
public class NAMESPACED_CLASS {
|
||||
}
|
||||
public class Foo {
|
||||
public class INSIDE_CLASS {
|
||||
}
|
||||
public func foo() -> Swift.Bool {
|
||||
fatalError()
|
||||
}
|
||||
@@ -47,6 +85,24 @@ public enum namespace {
|
||||
}
|
||||
|
||||
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 {
|
||||
fatalError()
|
||||
}
|
||||
|
||||
Vendored
+15
-1
@@ -3,7 +3,21 @@ package namespace.deeper
|
||||
class NAMESPACED_CLASS
|
||||
|
||||
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()
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package namespace
|
||||
class NAMESPACED_CLASS
|
||||
|
||||
class Foo {
|
||||
class INSIDE_CLASS // this should be ignored currently
|
||||
class INSIDE_CLASS
|
||||
|
||||
fun foo(): Boolean = TODO()
|
||||
|
||||
|
||||
+6
-1
@@ -1,7 +1,12 @@
|
||||
|
||||
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()
|
||||
|
||||
val my_value: UInt = 5u
|
||||
|
||||
+4
@@ -19,8 +19,12 @@ object OBJECT
|
||||
|
||||
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_WITH_REF(val i: DATA_CLASS_WITH_REF)
|
||||
|
||||
abstract class ABSTRACT_CLASS
|
||||
|
||||
sealed class SEALED {
|
||||
|
||||
Reference in New Issue
Block a user