[FIR] Initialize origin in all places with creating of declarations

This commit is contained in:
Dmitriy Novozhilov
2020-04-30 15:09:16 +03:00
parent e515b1c823
commit 41545cd2b4
27 changed files with 125 additions and 14 deletions
@@ -12,6 +12,7 @@ import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.addDefaultBoundIfNecessary
@@ -95,6 +96,7 @@ class JavaSymbolProvider(
): FirTypeParameter {
return FirTypeParameterBuilder().apply {
this.session = this@JavaSymbolProvider.session
origin = FirDeclarationOrigin.Java
this.name = this@toFirTypeParameter.name
symbol = firSymbol
variance = INVARIANT
@@ -195,6 +195,7 @@ class JavaClassEnhancementScope(
buildValueParameter {
source = valueParameter.source
session = this@JavaClassEnhancementScope.session
origin = FirDeclarationOrigin.Enhancement
returnTypeRef = newTypeRef
this.name = valueParameter.name
symbol = FirVariableSymbol(this.name)
@@ -211,8 +212,6 @@ class JavaClassEnhancementScope(
val symbol = FirConstructorSymbol(methodId)
if (firMethod.isPrimary) {
FirPrimaryConstructorBuilder().apply {
source = firMethod.source
session = this@JavaClassEnhancementScope.session
returnTypeRef = newReturnTypeRef
status = FirDeclarationStatusImpl(firMethod.visibility, Modality.FINAL).apply {
isExpect = false
@@ -223,14 +222,15 @@ class JavaClassEnhancementScope(
}
} else {
FirConstructorBuilder().apply {
source = firMethod.source
session = this@JavaClassEnhancementScope.session
returnTypeRef = newReturnTypeRef
status = firMethod.status
this.symbol = symbol
}
}.apply {
source = firMethod.source
session = this@JavaClassEnhancementScope.session
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.Enhancement
this.valueParameters += newValueParameters
this.typeParameters += firMethod.typeParameters
}
@@ -239,6 +239,7 @@ class JavaClassEnhancementScope(
FirSimpleFunctionBuilder().apply {
source = firMethod.source
session = this@JavaClassEnhancementScope.session
origin = FirDeclarationOrigin.Enhancement
returnTypeRef = newReturnTypeRef
receiverTypeRef = newReceiverTypeRef
this.name = name!!