Kapt: Remove kapt1 from Kotlin compiler

This commit is contained in:
Yan Zhulanow
2018-05-17 00:06:11 +03:00
parent 662b79780d
commit 6e362f6734
79 changed files with 43 additions and 1308 deletions
@@ -31,7 +31,7 @@ public class ClassBuilderFactories {
@NotNull
@Override
public ClassBuilderMode getClassBuilderMode() {
return ClassBuilderMode.full(false);
return ClassBuilderMode.FULL;
}
@NotNull
@@ -56,21 +56,15 @@ public class ClassBuilderFactories {
}
};
public static ClassBuilderFactory TEST = new TestClassBuilderFactory(false);
public static ClassBuilderFactory TEST = new TestClassBuilderFactory();
public static ClassBuilderFactory TEST_WITH_SOURCE_RETENTION_ANNOTATIONS = new TestClassBuilderFactory(true);
public static class TestClassBuilderFactory implements ClassBuilderFactory {
private final boolean generateSourceRetentionAnnotations;
public TestClassBuilderFactory(boolean generateSourceRetentionAnnotations) {
this.generateSourceRetentionAnnotations = generateSourceRetentionAnnotations;
}
public TestClassBuilderFactory() {}
@NotNull
@Override
public ClassBuilderMode getClassBuilderMode() {
return ClassBuilderMode.full(generateSourceRetentionAnnotations);
return ClassBuilderMode.FULL;
}
@NotNull
@@ -101,37 +95,33 @@ public class ClassBuilderFactories {
}
@NotNull
public static ClassBuilderFactory binaries(boolean generateSourceRetentionAnnotations) {
return new ClassBuilderFactory() {
@NotNull
@Override
public ClassBuilderMode getClassBuilderMode() {
return ClassBuilderMode.full(generateSourceRetentionAnnotations);
}
public static ClassBuilderFactory BINARIES = new ClassBuilderFactory() {
@NotNull
@Override
public ClassBuilderMode getClassBuilderMode() {
return ClassBuilderMode.FULL;
}
@NotNull
@Override
public ClassBuilder newClassBuilder(@NotNull JvmDeclarationOrigin origin) {
return new AbstractClassBuilder.Concrete(new BinaryClassWriter());
}
@NotNull
@Override
public ClassBuilder newClassBuilder(@NotNull JvmDeclarationOrigin origin) {
return new AbstractClassBuilder.Concrete(new BinaryClassWriter());
}
@Override
public String asText(ClassBuilder builder) {
throw new UnsupportedOperationException("BINARIES generator asked for text");
}
@Override
public String asText(ClassBuilder builder) {
throw new UnsupportedOperationException("BINARIES generator asked for text");
}
@Override
public byte[] asBytes(ClassBuilder builder) {
ClassWriter visitor = (ClassWriter) builder.getVisitor();
return visitor.toByteArray();
}
@Override
public byte[] asBytes(ClassBuilder builder) {
ClassWriter visitor = (ClassWriter) builder.getVisitor();
return visitor.toByteArray();
}
@Override
public void close() {
}
};
}
@Override
public void close() {}
};
private ClassBuilderFactories() {
}
@@ -35,15 +35,11 @@ public class ClassBuilderMode {
this.generateSourceRetentionAnnotations = generateSourceRetentionAnnotations;
this.generateMultiFileFacadePartClasses = generateMultiFileFacadePartClasses;
}
public static ClassBuilderMode full(boolean generateSourceRetentionAnnotations) {
return generateSourceRetentionAnnotations ? KAPT : FULL;
}
/**
* Full function bodies
*/
private final static ClassBuilderMode FULL = new ClassBuilderMode(
public final static ClassBuilderMode FULL = new ClassBuilderMode(
/* bodies = */ true,
/* metadata = */ true,
/* sourceRetention = */ false,
@@ -57,15 +53,6 @@ public class ClassBuilderMode {
/* metadata = */ false,
/* sourceRetention = */ true,
/* generateMultiFileFacadePartClasses = */ false);
/**
* Function signatures + metadata (to support incremental compilation with kapt)
*/
public final static ClassBuilderMode KAPT = new ClassBuilderMode(
/* bodies = */ false,
/* metadata = */ true,
/* sourceRetention = */ true,
/* generateMultiFileFacadePartClasses = */ false);
/**
* Function signatures + metadata (to support incremental compilation with kapt)
@@ -196,7 +196,7 @@ public class JvmSerializerExtension extends SerializerExtension {
@Override
public void serializeErrorType(@NotNull KotlinType type, @NotNull ProtoBuf.Type.Builder builder) {
if (classBuilderMode == ClassBuilderMode.KAPT || classBuilderMode == ClassBuilderMode.KAPT3) {
if (classBuilderMode == ClassBuilderMode.KAPT3) {
builder.setClassName(stringTable.getStringIndex(TypeSignatureMappingKt.NON_EXISTENT_CLASS_NAME));
return;
}
+2 -5
View File
@@ -37,13 +37,10 @@ dependencies {
sourceSets {
"main" {
projectDefault()
java.srcDirs("../../plugins/annotation-collector/src",
"../builtins-serializer/src",
java.srcDirs("../builtins-serializer/src",
"../javac-wrapper/src")
}
"test" {
java.srcDirs("../../plugins/annotation-collector/test")
}
"test" { }
}
testsJar {}
@@ -16,17 +16,15 @@
package org.jetbrains.kotlin.cli.jvm
import org.jetbrains.kotlin.annotation.AnnotationCollectorCommandLineProcessor
import org.jetbrains.kotlin.annotation.AnnotationCollectorComponentRegistrar
import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
object BundledCompilerPlugins {
val componentRegistrars: List<ComponentRegistrar>
get() = listOf(AnnotationCollectorComponentRegistrar())
get() = emptyList()
val commandLineProcessors: List<CommandLineProcessor>
get() = listOf(AnnotationCollectorCommandLineProcessor())
get() = emptyList()
}
@@ -420,10 +420,9 @@ object KotlinToJVMBytecodeCompiler {
sourceFiles: List<KtFile>,
module: Module?
): GenerationState {
val isKapt2Enabled = environment.project.getUserData(IS_KAPT2_ENABLED_KEY) ?: false
val generationState = GenerationState.Builder(
environment.project,
ClassBuilderFactories.binaries(isKapt2Enabled),
ClassBuilderFactories.BINARIES,
result.moduleDescriptor,
result.bindingContext,
sourceFiles,
@@ -422,10 +422,9 @@ object KotlinToJVMBytecodeCompiler {
sourceFiles: List<KtFile>,
module: Module?
): GenerationState {
val isKapt2Enabled = environment.project.getUserData(IS_KAPT2_ENABLED_KEY) ?: false
val generationState = GenerationState.Builder(
environment.project,
ClassBuilderFactories.binaries(isKapt2Enabled),
ClassBuilderFactories.BINARIES,
result.moduleDescriptor,
result.bindingContext,
sourceFiles,
@@ -422,10 +422,9 @@ object KotlinToJVMBytecodeCompiler {
sourceFiles: List<KtFile>,
module: Module?
): GenerationState {
val isKapt2Enabled = environment.project.getUserData(IS_KAPT2_ENABLED_KEY) ?: false
val generationState = GenerationState.Builder(
environment.project,
ClassBuilderFactories.binaries(isKapt2Enabled),
ClassBuilderFactories.BINARIES,
result.moduleDescriptor,
result.bindingContext,
sourceFiles,
@@ -1,21 +0,0 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.cli.jvm.config
import com.intellij.openapi.util.Key
val IS_KAPT2_ENABLED_KEY = Key<Boolean>("IsKapt2EnabledKey")
@@ -89,7 +89,7 @@ open class GenericReplCompiler(disposable: Disposable,
val generationState = GenerationState.Builder(
psiFile.project,
ClassBuilderFactories.binaries(false),
ClassBuilderFactories.BINARIES,
compilerState.analyzerEngine.module,
compilerState.analyzerEngine.trace.bindingContext,
listOf(psiFile),
@@ -24,7 +24,7 @@ import java.io.File
abstract class AbstractKapt3BuilderModeBytecodeShapeTest : CodegenTestCase() {
private companion object {
var TEST_LIGHT_ANALYSIS: ClassBuilderFactory = object : ClassBuilderFactories.TestClassBuilderFactory(false) {
var TEST_LIGHT_ANALYSIS: ClassBuilderFactory = object : ClassBuilderFactories.TestClassBuilderFactory() {
override fun getClassBuilderMode() = ClassBuilderMode.KAPT3
}
}
@@ -21,7 +21,7 @@ import java.io.File
abstract class AbstractLightAnalysisModeTest : CodegenTestCase() {
private companion object {
var TEST_LIGHT_ANALYSIS: ClassBuilderFactory = object : ClassBuilderFactories.TestClassBuilderFactory(false) {
var TEST_LIGHT_ANALYSIS: ClassBuilderFactory = object : ClassBuilderFactories.TestClassBuilderFactory() {
override fun getClassBuilderMode() = ClassBuilderMode.LIGHT_ANALYSIS_FOR_TESTS
}
}