FIR: introduce package directive

The package directive is needed for KtElement -> FirElement mapping in IDE.
There should be some FirElement which will be result of mapping of elements
inside KtPackageDirective.
This commit is contained in:
Ilya Kirillov
2021-06-18 15:05:13 +02:00
committed by TeamCityServer
parent bf40c07cc3
commit 51576c70b6
21 changed files with 165 additions and 28 deletions
@@ -56,6 +56,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val propertyAccessor = element("PropertyAccessor", Declaration, function, contractDescriptionOwner, typeParametersOwner)
val constructor = element("Constructor", Declaration, function, typeParameterRefsOwner)
val file = element("File", Declaration, annotatedDeclaration)
val packageDirective = element("PackageDirective", Other)
val anonymousFunction = element("AnonymousFunction", Declaration, function, typeParametersOwner)
val anonymousFunctionExpression = element("AnonymousFunctionExpression", Expression, expression)
@@ -389,13 +389,17 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
}
file.configure {
+field("packageDirective", packageDirective)
+fieldList(import).withTransform()
+declarations.withTransform()
+stringField("name")
+field("packageFqName", fqNameType)
+symbol("FirFileSymbol")
}
packageDirective.configure {
+field("packageFqName", fqNameType)
}
import.configure {
+field("importedFqName", fqNameType, nullable = true)
+booleanField("isAllUnder")