[FIR] Rewrite algorithm of generating declarations by plugins

Before there was separate global stage which asks extensions
  to generate new declarations. Now it is changed to provider
  like requests, so extensions will decide do they have declarations
  with specific classId/callableId or not
This commit is contained in:
Dmitriy Novozhilov
2021-09-21 16:51:45 +03:00
committed by TeamCityServer
parent 760943f0e1
commit 15abd839ed
16 changed files with 199 additions and 465 deletions
@@ -25,4 +25,6 @@ sealed class FirDeclarationOrigin(private val displayName: String? = null, val f
}
}
abstract class FirPluginKey
abstract class FirPluginKey {
val origin: FirDeclarationOrigin = FirDeclarationOrigin.Plugin(this)
}
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.declarations
enum class FirResolvePhase(val pluginPhase: Boolean = false, val noProcessor: Boolean = false) {
RAW_FIR(noProcessor = true),
ANNOTATIONS_FOR_PLUGINS(pluginPhase = true),
CLASS_GENERATION(pluginPhase = true),
IMPORTS,
SUPER_TYPES,
SEALED_CLASS_INHERITORS,
@@ -16,7 +15,6 @@ enum class FirResolvePhase(val pluginPhase: Boolean = false, val noProcessor: Bo
STATUS,
ARGUMENTS_OF_ANNOTATIONS,
CONTRACTS,
NEW_MEMBERS_GENERATION(pluginPhase = true),
IMPLICIT_TYPES_BODY_RESOLVE,
BODY_RESOLVE;