@@ -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)
@@ -1934,7 +1947,7 @@ class LightTreeRawFirDeclarationBuilder(
1934
1947
/* *
1935
1948
* @see org.jetbrains.kotlin.parsing.KotlinParsing.parseFunction
1936
1949
*/
1937
- fun convertFunctionDeclaration (functionDeclaration : LighterASTNode ): FirStatement {
1950
+ fun convertFunctionDeclaration (functionDeclaration : LighterASTNode ): FirStatement ? {
1938
1951
var modifiers: ModifierList ? = null
1939
1952
var identifier: String? = null
1940
1953
var valueParametersList: LighterASTNode ? = null
@@ -1988,8 +2001,17 @@ class LightTreeRawFirDeclarationBuilder(
1988
2001
else implicitType
1989
2002
}
1990
2003
2004
+ if (headerCompilationMode) {
2005
+ val functionVisibility = calculatedModifiers.getVisibility()
2006
+ if (functionVisibility == Visibilities .Private || functionVisibility == Visibilities .Protected ) {
2007
+ return null
2008
+ }
2009
+ }
2010
+
1991
2011
val receiverTypeCalculator = receiverTypeNode?.let { { convertType(it) } }
1992
2012
val functionBuilder = if (isAnonymousFunction) {
2013
+ if (headerCompilationMode)
2014
+ return null
1993
2015
FirAnonymousFunctionBuilder ().apply {
1994
2016
source = functionSource
1995
2017
receiverParameter = receiverTypeCalculator?.let { createReceiverParameter(it, baseModuleData, functionSymbol) }
0 commit comments