@@ -33,7 +33,6 @@ import org.jetbrains.kotlin.fir.diagnostics.*
33
33
import org.jetbrains.kotlin.fir.expressions.*
34
34
import org.jetbrains.kotlin.fir.expressions.builder.*
35
35
import org.jetbrains.kotlin.fir.expressions.impl.FirSingleExpressionBlock
36
- import org.jetbrains.kotlin.fir.expressions.impl.buildSingleExpressionBlock
37
36
import org.jetbrains.kotlin.fir.lightTree.fir.*
38
37
import org.jetbrains.kotlin.fir.lightTree.fir.modifier.ModifierList
39
38
import org.jetbrains.kotlin.fir.lightTree.fir.modifier.TypeParameterModifierList
@@ -98,7 +97,12 @@ class LightTreeRawFirDeclarationBuilder(
98
97
}
99
98
IMPORT_LIST -> importList + = convertImportDirectives(child)
100
99
CLASS -> firDeclarationList + = convertClass(child)
101
- FUN -> firDeclarationList + = convertFunctionDeclaration(child) as FirDeclaration
100
+ FUN -> {
101
+ val functionDeclaration = convertFunctionDeclaration(child)
102
+ if (functionDeclaration != null ) {
103
+ firDeclarationList + = functionDeclaration as FirDeclaration
104
+ }
105
+ }
102
106
KtNodeTypes .PROPERTY -> firDeclarationList + = convertPropertyDeclaration(child)
103
107
TYPEALIAS -> firDeclarationList + = convertTypeAlias(child)
104
108
OBJECT_DECLARATION -> firDeclarationList + = convertClass(child)
@@ -144,7 +148,12 @@ class LightTreeRawFirDeclarationBuilder(
144
148
val firStatements = block.forEachChildrenReturnList { node, container ->
145
149
when (node.tokenType) {
146
150
CLASS , OBJECT_DECLARATION -> container + = convertClass(node) as FirStatement
147
- FUN -> container + = convertFunctionDeclaration(node)
151
+ FUN -> {
152
+ val functionDeclaration = convertFunctionDeclaration(node)
153
+ if (functionDeclaration != null ) {
154
+ container + = functionDeclaration
155
+ }
156
+ }
148
157
KtNodeTypes .PROPERTY -> container + = convertPropertyDeclaration(node) as FirStatement
149
158
DESTRUCTURING_DECLARATION -> container + =
150
159
convertDestructingDeclaration(node).toFirDestructingDeclaration(this , baseModuleData)
@@ -940,7 +949,11 @@ class LightTreeRawFirDeclarationBuilder(
940
949
when (node.tokenType) {
941
950
ENUM_ENTRY -> container + = convertEnumEntry(node, classWrapper!! )
942
951
CLASS -> container + = convertClass(node)
943
- FUN -> container + = convertFunctionDeclaration(node) as FirDeclaration
952
+ FUN -> {
953
+ val functionDeclaration = convertFunctionDeclaration(node)
954
+ if (functionDeclaration != null )
955
+ container + = functionDeclaration as FirDeclaration
956
+ }
944
957
KtNodeTypes .PROPERTY -> container + = convertPropertyDeclaration(node, classWrapper)
945
958
TYPEALIAS -> container + = convertTypeAlias(node)
946
959
OBJECT_DECLARATION -> container + = convertClass(node)
@@ -1910,7 +1923,7 @@ class LightTreeRawFirDeclarationBuilder(
1910
1923
/* *
1911
1924
* @see org.jetbrains.kotlin.parsing.KotlinParsing.parseFunction
1912
1925
*/
1913
- fun convertFunctionDeclaration (functionDeclaration : LighterASTNode ): FirStatement {
1926
+ fun convertFunctionDeclaration (functionDeclaration : LighterASTNode ): FirStatement ? {
1914
1927
var modifiers: ModifierList ? = null
1915
1928
var identifier: String? = null
1916
1929
var valueParametersList: LighterASTNode ? = null
@@ -1964,8 +1977,17 @@ class LightTreeRawFirDeclarationBuilder(
1964
1977
else implicitType
1965
1978
}
1966
1979
1980
+ if (headerCompilationMode) {
1981
+ val functionVisibility = calculatedModifiers.getVisibility()
1982
+ if (functionVisibility == Visibilities .Private || functionVisibility == Visibilities .Protected ) {
1983
+ return null
1984
+ }
1985
+ }
1986
+
1967
1987
val receiverTypeCalculator = receiverTypeNode?.let { { convertType(it) } }
1968
1988
val functionBuilder = if (isAnonymousFunction) {
1989
+ if (headerCompilationMode)
1990
+ return null
1969
1991
FirAnonymousFunctionBuilder ().apply {
1970
1992
source = functionSource
1971
1993
receiverParameter = receiverTypeCalculator?.let { createReceiverParameter(it, baseModuleData, functionSymbol) }
0 commit comments