Kapt: Replace error.NonExistentClass usages to Object (as it does not break class hierarchies)
This commit is contained in:
+18
-3
@@ -80,6 +80,8 @@ class ClassFileToSourceStubConverter(
|
|||||||
"kotlin.jvm." // Kotlin annotations from runtime
|
"kotlin.jvm." // Kotlin annotations from runtime
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private val NON_EXISTENT_CLASS_NAME = FqName("error.NonExistentClass")
|
||||||
|
|
||||||
private val JAVA_KEYWORD_FILTER_REGEX = "[a-z]+".toRegex()
|
private val JAVA_KEYWORD_FILTER_REGEX = "[a-z]+".toRegex()
|
||||||
|
|
||||||
private val JAVA_KEYWORDS = Tokens.TokenKind.values()
|
private val JAVA_KEYWORDS = Tokens.TokenKind.values()
|
||||||
@@ -121,13 +123,13 @@ class ClassFileToSourceStubConverter(
|
|||||||
private fun generateNonExistentClass(): JCCompilationUnit {
|
private fun generateNonExistentClass(): JCCompilationUnit {
|
||||||
val nonExistentClass = treeMaker.ClassDef(
|
val nonExistentClass = treeMaker.ClassDef(
|
||||||
treeMaker.Modifiers((Flags.PUBLIC or Flags.FINAL).toLong()),
|
treeMaker.Modifiers((Flags.PUBLIC or Flags.FINAL).toLong()),
|
||||||
treeMaker.name("NonExistentClass"),
|
treeMaker.name(NON_EXISTENT_CLASS_NAME.shortName().asString()),
|
||||||
JavacList.nil(),
|
JavacList.nil(),
|
||||||
null,
|
null,
|
||||||
JavacList.nil(),
|
JavacList.nil(),
|
||||||
JavacList.nil())
|
JavacList.nil())
|
||||||
|
|
||||||
val topLevel = treeMaker.TopLevelJava9Aware(treeMaker.SimpleName("error"), JavacList.of(nonExistentClass))
|
val topLevel = treeMaker.TopLevelJava9Aware(treeMaker.FqName(NON_EXISTENT_CLASS_NAME.parent()), JavacList.of(nonExistentClass))
|
||||||
|
|
||||||
topLevel.sourcefile = KaptJavaFileObject(topLevel, nonExistentClass)
|
topLevel.sourcefile = KaptJavaFileObject(topLevel, nonExistentClass)
|
||||||
|
|
||||||
@@ -641,7 +643,20 @@ class ClassFileToSourceStubConverter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ifNonError()
|
val nonErrorType = ifNonError()
|
||||||
|
|
||||||
|
if (nonErrorType is JCFieldAccess) {
|
||||||
|
val qualifier = nonErrorType.selected
|
||||||
|
if (nonErrorType.name.toString() == NON_EXISTENT_CLASS_NAME.shortName().asString()
|
||||||
|
&& qualifier is JCIdent
|
||||||
|
&& qualifier.name.toString() == NON_EXISTENT_CLASS_NAME.parent().asString()
|
||||||
|
) {
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
return treeMaker.FqName("java.lang.Object") as T
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nonErrorType
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isValidQualifiedName(name: FqName) = name.pathSegments().all { isValidIdentifier(it.asString()) }
|
private fun isValidQualifiedName(name: FqName) = name.pathSegments().all { isValidIdentifier(it.asString()) }
|
||||||
|
|||||||
+3
-3
@@ -94,7 +94,7 @@ public final class Test<G extends java.lang.Object> {
|
|||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public ABC nested;
|
public ABC nested;
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
private final error.NonExistentClass m = null;
|
private final java.lang.Object m = null;
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
private final java.lang.String n = "";
|
private final java.lang.String n = "";
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
@@ -289,7 +289,7 @@ public final class Test<G extends java.lang.Object> {
|
|||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
@kapt.internal.KaptSignature("getM()Lerror/NonExistentClass;")
|
@kapt.internal.KaptSignature("getM()Lerror/NonExistentClass;")
|
||||||
public final error.NonExistentClass getM() {
|
public final java.lang.Object getM() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -352,7 +352,7 @@ public final class Test<G extends java.lang.Object> {
|
|||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
@kapt.internal.KaptSignature("f4()Lerror/NonExistentClass;")
|
@kapt.internal.KaptSignature("f4()Lerror/NonExistentClass;")
|
||||||
public final error.NonExistentClass f4() {
|
public final java.lang.Object f4() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user