diff --git a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedAnnotation.kt b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedAnnotation.kt index 050ea684451..04f4dcc8203 100644 --- a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedAnnotation.kt +++ b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedAnnotation.kt @@ -27,35 +27,43 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name class TreeBasedAnnotation( - val annotation: JCTree.JCAnnotation, - val compilationUnit: CompilationUnitTree, - val javac: JavacWrapper, - val onElement: JavaElement + val annotation: JCTree.JCAnnotation, + val compilationUnit: CompilationUnitTree, + val javac: JavacWrapper, + val onElement: JavaElement ) : JavaElement, JavaAnnotation { override val arguments: Collection get() = createAnnotationArguments(this, javac, onElement) - override val classId: ClassId? - get() = (resolve() as? JavaClassWithClassId)?.classId ?: ClassId.topLevel(FqName(annotation.annotationType.toString().substringAfter("@"))) + override val classId: ClassId + get() = (resolve() as? JavaClassWithClassId)?.classId ?: ClassId.topLevel( + FqName( + annotation.annotationType.toString().substringAfter("@") + ) + ) override fun resolve() = javac.resolve(annotation.annotationType, compilationUnit, onElement) as? JavaClass } -sealed class TreeBasedAnnotationArgument(override val name: Name, - val javac: JavacWrapper) : JavaAnnotationArgument, JavaElement +sealed class TreeBasedAnnotationArgument( + override val name: Name, + val javac: JavacWrapper +) : JavaAnnotationArgument, JavaElement -class TreeBasedLiteralAnnotationArgument(name: Name, - override val value: Any?, - javac: JavacWrapper) : TreeBasedAnnotationArgument(name, javac), JavaLiteralAnnotationArgument +class TreeBasedLiteralAnnotationArgument( + name: Name, + override val value: Any?, + javac: JavacWrapper +) : TreeBasedAnnotationArgument(name, javac), JavaLiteralAnnotationArgument class TreeBasedReferenceAnnotationArgument( - name: Name, - private val compilationUnit: CompilationUnitTree, - private val field: JCTree.JCFieldAccess, - javac: JavacWrapper, - private val onElement: JavaElement + name: Name, + private val compilationUnit: CompilationUnitTree, + private val field: JCTree.JCFieldAccess, + javac: JavacWrapper, + private val onElement: JavaElement ) : TreeBasedAnnotationArgument(name, javac), JavaEnumValueAnnotationArgument { // TODO: do not run resolve here private val javaField: JavaField? by lazy(LazyThreadSafetyMode.PUBLICATION) { @@ -72,41 +80,47 @@ class TreeBasedReferenceAnnotationArgument( get() = javaField?.name } -class TreeBasedArrayAnnotationArgument(val args: List, - name: Name, - javac: JavacWrapper) : TreeBasedAnnotationArgument(name, javac), JavaArrayAnnotationArgument { +class TreeBasedArrayAnnotationArgument( + val args: List, + name: Name, + javac: JavacWrapper +) : TreeBasedAnnotationArgument(name, javac), JavaArrayAnnotationArgument { override fun getElements() = args } -class TreeBasedJavaClassObjectAnnotationArgument(private val type: JCTree.JCExpression, - name: Name, - private val compilationUnit: CompilationUnitTree, - javac: JavacWrapper, - private val onElement: JavaElement) : TreeBasedAnnotationArgument(name, javac), JavaClassObjectAnnotationArgument { +class TreeBasedJavaClassObjectAnnotationArgument( + private val type: JCTree.JCExpression, + name: Name, + private val compilationUnit: CompilationUnitTree, + javac: JavacWrapper, + private val onElement: JavaElement +) : TreeBasedAnnotationArgument(name, javac), JavaClassObjectAnnotationArgument { override fun getReferencedType(): JavaType = - TreeBasedType.create(type, compilationUnit, javac, emptyList(), onElement) + TreeBasedType.create(type, compilationUnit, javac, emptyList(), onElement) } -class TreeBasedAnnotationAsAnnotationArgument(private val annotation: JCTree.JCAnnotation, - name: Name, - private val compilationUnit: CompilationUnitTree, - javac: JavacWrapper, - private val onElement: JavaElement) : TreeBasedAnnotationArgument(name, javac), JavaAnnotationAsAnnotationArgument { +class TreeBasedAnnotationAsAnnotationArgument( + private val annotation: JCTree.JCAnnotation, + name: Name, + private val compilationUnit: CompilationUnitTree, + javac: JavacWrapper, + private val onElement: JavaElement +) : TreeBasedAnnotationArgument(name, javac), JavaAnnotationAsAnnotationArgument { override fun getAnnotation(): JavaAnnotation = - TreeBasedAnnotation(annotation, compilationUnit, javac, onElement) + TreeBasedAnnotation(annotation, compilationUnit, javac, onElement) } private fun createAnnotationArguments( annotation: TreeBasedAnnotation, javac: JavacWrapper, onElement: JavaElement ): Collection = - annotation.annotation.arguments.mapNotNull { - val name = if (it is JCTree.JCAssign) Name.identifier(it.lhs.toString()) else Name.identifier("value") - createAnnotationArgument(it, name, annotation.compilationUnit, javac, annotation.resolve(), onElement) - } + annotation.annotation.arguments.mapNotNull { + val name = if (it is JCTree.JCAssign) Name.identifier(it.lhs.toString()) else Name.identifier("value") + createAnnotationArgument(it, name, annotation.compilationUnit, javac, annotation.resolve(), onElement) + } internal fun createAnnotationArgument( argument: JCTree.JCExpression,