From 61c2e4e5907c4891febd28745bc1053e6558e602 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 26 Mar 2019 12:31:36 +0300 Subject: [PATCH] Raw FIR: handle local visibility for functions & classes --- .../src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt | 4 ++-- .../fir/psi2fir/testData/rawBuilder/expressions/locals.txt | 4 ++-- .../fir/resolve/testData/resolve/expresssions/access.txt | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index fb248fc43dd..a5074ef1d52 100644 --- a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -498,7 +498,7 @@ class RawFirBuilder(val session: FirSession, val stubMode: Boolean) { classOrObject, FirClassSymbol(currentClassId), classOrObject.nameAsSafeName, - classOrObject.visibility, + if (classOrObject.isLocal) Visibilities.LOCAL else classOrObject.visibility, classOrObject.modality, classOrObject.hasExpectModifier(), classOrObject.hasActualModifier(), @@ -596,7 +596,7 @@ class RawFirBuilder(val session: FirSession, val stubMode: Boolean) { function, FirFunctionSymbol(callableIdForName(function.nameAsSafeName, function.isLocal)), function.nameAsSafeName, - function.visibility, + if (function.isLocal) Visibilities.LOCAL else function.visibility, function.modality, function.hasExpectModifier(), function.hasActualModifier(), diff --git a/compiler/fir/psi2fir/testData/rawBuilder/expressions/locals.txt b/compiler/fir/psi2fir/testData/rawBuilder/expressions/locals.txt index 88f8ddd81eb..bcd2906d6ee 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/expressions/locals.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/expressions/locals.txt @@ -1,6 +1,6 @@ FILE: locals.kt public? final? fun withLocals(p: Int): Int { - public? final? class Local : kotlin/Any { + local final? class Local : kotlin/Any { public? constructor(pp: Int): super() public? final? val pp: Int = R|/pp| @@ -13,7 +13,7 @@ FILE: locals.kt } lval x: = Local#(Int(42)).diff#() - public? final? fun sum(y: Int, z: Int, f: ( (Int, Int) -> Int )): Int { + local final? fun sum(y: Int, z: Int, f: ( (Int, Int) -> Int )): Int { ^sum plus#(x#, f#(plus#(y#, z#))) } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/access.txt b/compiler/fir/resolve/testData/resolve/expresssions/access.txt index 8bcde089254..888ca8d9aa4 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/access.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/access.txt @@ -51,14 +51,14 @@ FILE: access.kt lval d: R|kotlin/String| = String() lval c: = # #() - public final fun bcd(): R|kotlin/Unit| { + local final fun bcd(): R|kotlin/Unit| { } - public final fun abc(): R|kotlin/Unit| { + local final fun abc(): R|kotlin/Unit| { lval a: R|kotlin/String| = R|/d| lval b: R|kotlin/String| = R|/a| R|/bcd|() - public final fun dcb(): R|kotlin/Unit| { + local final fun dcb(): R|kotlin/Unit| { } R|/dcb|()