Report compiled classes when generating kapt stubs
This commit is contained in:
+4
-18
@@ -17,7 +17,8 @@
|
|||||||
package org.jetbrains.kotlin.annotation
|
package org.jetbrains.kotlin.annotation
|
||||||
|
|
||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.psi.PsiElement
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CliOption
|
import org.jetbrains.kotlin.compiler.plugin.CliOption
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CliOptionProcessingException
|
import org.jetbrains.kotlin.compiler.plugin.CliOptionProcessingException
|
||||||
@@ -25,24 +26,8 @@ import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
|
|||||||
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
||||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
|
||||||
import org.jetbrains.kotlin.descriptors.MemberDescriptor
|
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticWithParameters1
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
|
||||||
import org.jetbrains.kotlin.psi.KtCallableDeclaration
|
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
|
||||||
import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisCompletedHandlerExtension
|
import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisCompletedHandlerExtension
|
||||||
import java.io.BufferedWriter
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
|
||||||
import java.io.Writer
|
|
||||||
import java.util.regex.Pattern
|
|
||||||
import java.util.regex.PatternSyntaxException
|
|
||||||
|
|
||||||
object AnnotationCollectorConfigurationKeys {
|
object AnnotationCollectorConfigurationKeys {
|
||||||
val ANNOTATION_FILTER_LIST: CompilerConfigurationKey<List<String>> =
|
val ANNOTATION_FILTER_LIST: CompilerConfigurationKey<List<String>> =
|
||||||
@@ -104,8 +89,9 @@ class AnnotationCollectorComponentRegistrar : ComponentRegistrar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val stubs = configuration.get(AnnotationCollectorConfigurationKeys.STUBS_PATH)
|
val stubs = configuration.get(AnnotationCollectorConfigurationKeys.STUBS_PATH)
|
||||||
|
val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, MessageCollector.NONE)
|
||||||
if (stubs != null) {
|
if (stubs != null) {
|
||||||
AnalysisCompletedHandlerExtension.registerExtension(project, StubProducerExtension(File(stubs)))
|
AnalysisCompletedHandlerExtension.registerExtension(project, StubProducerExtension(File(stubs), messageCollector))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -18,7 +18,8 @@ package org.jetbrains.kotlin.annotation
|
|||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.kotlin.analyzer.AnalysisResult
|
import org.jetbrains.kotlin.analyzer.AnalysisResult
|
||||||
import org.jetbrains.kotlin.cli.common.output.outputUtils.writeAllTo
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
|
import org.jetbrains.kotlin.cli.common.output.outputUtils.writeAll
|
||||||
import org.jetbrains.kotlin.codegen.*
|
import org.jetbrains.kotlin.codegen.*
|
||||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
@@ -29,7 +30,7 @@ import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisCompletedHandlerExten
|
|||||||
import org.jetbrains.org.objectweb.asm.ClassWriter
|
import org.jetbrains.org.objectweb.asm.ClassWriter
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class StubProducerExtension(val stubsOutputDir: File) : AnalysisCompletedHandlerExtension {
|
class StubProducerExtension(val stubsOutputDir: File, val messageCollector: MessageCollector) : AnalysisCompletedHandlerExtension {
|
||||||
|
|
||||||
override fun analysisCompleted(
|
override fun analysisCompleted(
|
||||||
project: Project,
|
project: Project,
|
||||||
@@ -49,7 +50,7 @@ class StubProducerExtension(val stubsOutputDir: File) : AnalysisCompletedHandler
|
|||||||
KotlinCodegenFacade.compileCorrectFiles(generationState, CompilationErrorHandler.THROW_EXCEPTION)
|
KotlinCodegenFacade.compileCorrectFiles(generationState, CompilationErrorHandler.THROW_EXCEPTION)
|
||||||
|
|
||||||
if (!stubsOutputDir.exists()) stubsOutputDir.mkdirs()
|
if (!stubsOutputDir.exists()) stubsOutputDir.mkdirs()
|
||||||
generationState.factory.writeAllTo(stubsOutputDir)
|
generationState.factory.writeAll(stubsOutputDir, messageCollector)
|
||||||
|
|
||||||
generationState.destroy()
|
generationState.destroy()
|
||||||
return AnalysisResult.success(BindingContext.EMPTY, module, shouldGenerateCode = false)
|
return AnalysisResult.success(BindingContext.EMPTY, module, shouldGenerateCode = false)
|
||||||
|
|||||||
Reference in New Issue
Block a user