FIR2IR: make local storage track scopes, including anonymous init

This commit is contained in:
Jinseong Jeon
2020-07-29 10:33:07 -07:00
committed by Mikhail Glukhikh
parent 26e3a111d6
commit 52631b7abd
4 changed files with 5 additions and 5 deletions
@@ -153,6 +153,7 @@ class Fir2IrDeclarationStorage(
symbolTable.enterScope(declaration)
if (declaration is IrSimpleFunction ||
declaration is IrConstructor ||
declaration is IrAnonymousInitializer ||
declaration is IrProperty ||
declaration is IrEnumEntry
) {
@@ -163,6 +164,7 @@ class Fir2IrDeclarationStorage(
fun leaveScope(declaration: IrDeclaration) {
if (declaration is IrSimpleFunction ||
declaration is IrConstructor ||
declaration is IrAnonymousInitializer ||
declaration is IrProperty ||
declaration is IrEnumEntry
) {
@@ -16,12 +16,12 @@ import org.jetbrains.kotlin.ir.declarations.IrVariable
class Fir2IrLocalStorage {
private val cacheStack = mutableListOf<Fir2IrCallableCache>()
private val cacheStack = mutableListOf<Fir2IrScopeCache>()
private val localClassCache = mutableMapOf<FirClass<*>, IrClass>()
fun enterCallable() {
cacheStack += Fir2IrCallableCache()
cacheStack += Fir2IrScopeCache()
}
fun leaveCallable() {
@@ -7,12 +7,11 @@ package org.jetbrains.kotlin.fir.backend
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.ir.declarations.IrClass
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
import org.jetbrains.kotlin.ir.declarations.IrVariable
class Fir2IrCallableCache {
class Fir2IrScopeCache {
private val parameterCache = mutableMapOf<FirValueParameter, IrValueParameter>()
private val variableCache = mutableMapOf<FirVariable<*>, IrVariable>()
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_FIR: JVM_IR
open class JClass() {
fun test(): String {
return "OK"