[FE] Add flag to java model to distinguish source java classes from binaries
This commit is contained in:
committed by
teamcity
parent
09ff6303cc
commit
26df9d74e8
+4
@@ -125,6 +125,9 @@ class MockKotlinClassifier(override val classId: ClassId,
|
||||
cache.createMockKotlinClassifier(nestedClassOrObject, ktFile, classId.createNestedClassId(nestedClassOrObject.nameAsSafeName))
|
||||
} ?: emptyList()
|
||||
|
||||
override val isFromSource: Boolean
|
||||
get() = true
|
||||
|
||||
override val lightClassOriginKind
|
||||
get() = LightClassOriginKind.SOURCE
|
||||
|
||||
@@ -198,6 +201,7 @@ class MockKotlinField(private val psiField: PsiField) : JavaField {
|
||||
override val type get() = shouldNotBeCalled()
|
||||
override val hasConstantNotNullInitializer get() = shouldNotBeCalled()
|
||||
override fun findAnnotation(fqName: FqName) = shouldNotBeCalled()
|
||||
override val isFromSource: Boolean get() = shouldNotBeCalled()
|
||||
}
|
||||
|
||||
private fun KtClassOrObject.computeClassId(): ClassId? =
|
||||
|
||||
+3
@@ -28,6 +28,9 @@ abstract class SymbolBasedClassifier<out T : Element>(
|
||||
javac: JavacWrapper
|
||||
) : SymbolBasedElement<T>(element, javac), JavaClassifier, JavaAnnotationOwner {
|
||||
|
||||
override val isFromSource: Boolean
|
||||
get() = true
|
||||
|
||||
override val annotations: Collection<JavaAnnotation>
|
||||
get() = element.annotationMirrors.map { SymbolBasedAnnotation(it, javac) }
|
||||
|
||||
|
||||
+3
@@ -31,6 +31,9 @@ abstract class SymbolBasedMember<out T : Element>(
|
||||
javac: JavacWrapper
|
||||
) : SymbolBasedElement<T>(element, javac), JavaMember {
|
||||
|
||||
override val isFromSource: Boolean
|
||||
get() = true
|
||||
|
||||
override val annotations: Collection<JavaAnnotation>
|
||||
get() = element.annotationMirrors.map { SymbolBasedAnnotation(it, javac) }
|
||||
|
||||
|
||||
+4
-1
@@ -43,7 +43,10 @@ class SymbolBasedValueParameter(
|
||||
override val name: Name
|
||||
get() = Name.identifier(elementName)
|
||||
|
||||
override val isFromSource: Boolean
|
||||
get() = true
|
||||
|
||||
override val type: JavaType
|
||||
get() = SymbolBasedType.create(element.asType(), javac)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,9 @@ class TreeBasedClass(
|
||||
override val outerClass: JavaClass?
|
||||
) : TreeBasedElement<JCTree.JCClassDecl>(tree, compilationUnit, javac), JavaClassWithClassId {
|
||||
|
||||
override val isFromSource: Boolean
|
||||
get() = true
|
||||
|
||||
override val name: Name
|
||||
get() = Name.identifier(tree.simpleName.toString())
|
||||
|
||||
|
||||
+5
-2
@@ -30,6 +30,9 @@ abstract class TreeBasedMember<out T : JCTree>(
|
||||
javac: JavacWrapper
|
||||
) : TreeBasedElement<T>(tree, compilationUnit, javac), JavaMember {
|
||||
|
||||
override val isFromSource: Boolean
|
||||
get() = true
|
||||
|
||||
override val isDeprecatedInJavaDoc: Boolean
|
||||
get() = javac.isDeprecatedInJavaDoc(tree, compilationUnit)
|
||||
|
||||
@@ -39,6 +42,6 @@ abstract class TreeBasedMember<out T : JCTree>(
|
||||
override fun findAnnotation(fqName: FqName) =
|
||||
annotations
|
||||
.filter { it.annotation.annotationType.toString().endsWith(fqName.shortName().asString()) }
|
||||
.find { it.classId?.asSingleFqName() == fqName }
|
||||
.find { it.classId.asSingleFqName() == fqName }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -33,6 +33,9 @@ class TreeBasedTypeParameter(
|
||||
private val containingElement: JavaElement
|
||||
) : TreeBasedElement<JCTree.JCTypeParameter>(tree, compilationUnit, javac), JavaTypeParameter {
|
||||
|
||||
override val isFromSource: Boolean
|
||||
get() = true
|
||||
|
||||
override val name: Name
|
||||
get() = Name.identifier(tree.name.toString())
|
||||
|
||||
@@ -62,4 +65,4 @@ class TreeBasedTypeParameter(
|
||||
return result
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+5
-2
@@ -40,7 +40,7 @@ class TreeBasedValueParameter(
|
||||
override fun findAnnotation(fqName: FqName) =
|
||||
annotations
|
||||
.filter { it.annotation.annotationType.toString().endsWith(fqName.shortName().asString()) }
|
||||
.find { it.classId?.asSingleFqName() == fqName }
|
||||
.find { it.classId.asSingleFqName() == fqName }
|
||||
|
||||
override val isDeprecatedInJavaDoc: Boolean
|
||||
get() = javac.isDeprecatedInJavaDoc(tree, compilationUnit)
|
||||
@@ -48,9 +48,12 @@ class TreeBasedValueParameter(
|
||||
override val name: Name
|
||||
get() = Name.identifier(tree.name.toString())
|
||||
|
||||
override val isFromSource: Boolean
|
||||
get() = true
|
||||
|
||||
override val type: JavaType
|
||||
get() = TreeBasedType.create(tree.getType(), compilationUnit, javac, annotations, containingElement)
|
||||
|
||||
override val isVararg: Boolean
|
||||
get() = tree.modifiers.flags and Flags.VARARGS != 0L
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user