diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/javac/JavacWrapperKotlinResolverImpl.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/javac/JavacWrapperKotlinResolverImpl.kt index e3df5057bec..f3c3c1359dc 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/javac/JavacWrapperKotlinResolverImpl.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/javac/JavacWrapperKotlinResolverImpl.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.cli.jvm.javac import org.jetbrains.kotlin.asJava.LightClassGenerationSupport import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.findFacadeClass -import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.javac.JavacWrapperKotlinResolver import org.jetbrains.kotlin.javac.resolve.MockKotlinField @@ -39,16 +38,12 @@ class JavacWrapperKotlinResolverImpl(private val lightClassGenerationSupport: Li return supersCache[classOrObject]!! } - val classDescriptor = lightClassGenerationSupport.analyze(classOrObject).get(BindingContext.CLASS, classOrObject) - return classDescriptor?.let { - val classIds = it.defaultType.constructor.supertypes - .filterNot { KotlinBuiltIns.isAnyOrNullableAny(it) } - .mapNotNull { - (it.constructor.declarationDescriptor as? ClassDescriptor)?.classId - } - supersCache[classOrObject] = classIds - classIds - } ?: emptyList() + val classDescriptor = lightClassGenerationSupport.analyze(classOrObject).get(BindingContext.CLASS, classOrObject) ?: return emptyList() + val classIds = classDescriptor.defaultType.constructor.supertypes + .mapNotNull { (it.constructor.declarationDescriptor as? ClassDescriptor)?.classId } + supersCache[classOrObject] = classIds + + return classIds } override fun findField(classOrObject: KtClassOrObject, name: String): JavaField? { @@ -63,8 +58,6 @@ class JavacWrapperKotlinResolverImpl(private val lightClassGenerationSupport: Li return lightClass.allFields.find { it.name == name}?.let(::MockKotlinField) } - private fun KtClassOrObject.getLightClass(): KtLightClass? { - return lightClassGenerationSupport.getLightClass(this) - } + private fun KtClassOrObject.getLightClass(): KtLightClass? = lightClassGenerationSupport.getLightClass(this) } \ No newline at end of file diff --git a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/JavacWrapper.kt b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/JavacWrapper.kt index 0b106d20129..ab26af390e5 100644 --- a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/JavacWrapper.kt +++ b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/JavacWrapper.kt @@ -150,10 +150,10 @@ class JavacWrapper( it.sourceFile.isNameCompatible("package-info", JavaFileObject.Kind.SOURCE) && it.packageName != null }.associateBy({ FqName(it.packageName!!.toString()) }) { compilationUnit -> - compilationUnit.packageAnnotations/*.map { TreeBasedAnnotation(it, compilationUnit, this) }*/ + compilationUnit.packageAnnotations } - val classifierResolver = ClassifierResolver(this) + private val classifierResolver = ClassifierResolver(this) private val identifierResolver = IdentifierResolver(this) private val kotlinClassifiersCache by lazy { KotlinClassifiersCache(if (javaFiles.isNotEmpty()) kotlinFiles else emptyList(), this) } private val symbolBasedPackagesCache = hashMapOf() diff --git a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ClassifierResolver.kt b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ClassifierResolver.kt index 598232690d7..11c3a135d06 100644 --- a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ClassifierResolver.kt +++ b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ClassifierResolver.kt @@ -35,7 +35,7 @@ class ClassifierResolver(private val javac: JavacWrapper) { if (tree in beingResolved) return null beingResolved(tree) - return tryToResolve2(tree, unit, containingElement).apply { + return tryToResolve(tree, unit, containingElement).apply { cache[tree] = this removeBeingResolved(tree) } @@ -67,7 +67,7 @@ class ClassifierResolver(private val javac: JavacWrapper) { private fun pathSegments(path: String): List { val pathSegments = arrayListOf() var numberOfBrackets = 0 - var builder = StringBuilder() + val builder = StringBuilder() path.forEach { char -> when (char) { '<' -> numberOfBrackets++ @@ -75,7 +75,7 @@ class ClassifierResolver(private val javac: JavacWrapper) { '.' -> { if (numberOfBrackets == 0) { pathSegments.add(builder.toString()) - builder = StringBuilder() + builder.setLength(0) } } '@' -> {} @@ -86,15 +86,18 @@ class ClassifierResolver(private val javac: JavacWrapper) { return pathSegments.apply { add(builder.toString()) } } - private fun tryToResolve2(tree: Tree, unit: CompilationUnitTree, containingElement: JavaElement): JavaClassifier? { + private fun tryToResolve(tree: Tree, unit: CompilationUnitTree, containingElement: JavaElement): JavaClassifier? { val pathSegments = pathSegments(tree.toString()) val containingClass = when (containingElement) { is JavaClass -> containingElement is JavaTypeParameterListOwner -> { - val identifier = Name.identifier(pathSegments.first()) - containingElement.typeParameters.find { it.name == identifier }?.let { return it } + pathSegments.singleOrNull()?.let { pathSegment -> + val identifier = Name.identifier(pathSegment) + containingElement.typeParameters.find { it.name == identifier }?.let { return it } + } (containingElement as JavaMember).containingClass } + is JavaPackage -> return SingleTypeImportScope(javac, unit).findClass(pathSegments.first(), pathSegments) else -> throw UnsupportedOperationException() } @@ -110,6 +113,10 @@ private abstract class Scope(protected val javac: JavacWrapper, abstract val parent: Scope? + /** + * @param name name of a class to find + * @param pathSegments name of a class to find that is split into path segments (e.g. Outer.Inner -> {"Outer", "Inner"}) + */ abstract fun findClass(name: String, pathSegments: List): JavaClassifier? } @@ -132,9 +139,9 @@ private class GlobalScope(javac: JavacWrapper, pathSegments.forEachIndexed { index, _ -> if (index != 0) { val packageFqName = pathSegments.take(index).joinToString(separator = ".") - helper.findPackage(packageFqName)?.let { pack -> + helper.findPackage(packageFqName)?.let { packageName -> val className = pathSegments.drop(index) - helper.findJavaOrKotlinClass(ClassId(pack, Name.identifier(className.first())))?.let { javaClass -> + helper.findJavaOrKotlinClass(ClassId(packageName, Name.identifier(className.first())))?.let { javaClass -> return helper.getJavaClassFromPathSegments(javaClass, className) } } @@ -169,14 +176,8 @@ private class ImportOnDemandScope(javac: JavacWrapper, } private fun asteriskImports() = - compilationUnit.imports - .mapNotNull { - val fqName = it.qualifiedIdentifier.toString() - if (fqName.endsWith("*")) { - fqName.dropLast(1) - } - else null - } + compilationUnit.imports + .mapNotNull { it.qualifiedIdentifier.toString().takeIf { it.endsWith("*") }?.dropLast(1) } } @@ -214,14 +215,8 @@ private class SingleTypeImportScope(javac: JavacWrapper, } private fun imports(firstSegment: String) = - (compilationUnit as JCTree.JCCompilationUnit).imports - .mapNotNull { - val fqName = it.qualifiedIdentifier.toString() - if (fqName.endsWith(".$firstSegment")) { - fqName - } - else null - } + compilationUnit.imports + .mapNotNull { it.qualifiedIdentifier.toString().takeIf { it.endsWith(".$firstSegment") } } } private class CurrentClassAndInnerScope(javac: JavacWrapper, diff --git a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ConstantEvaluator.kt b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ConstantEvaluator.kt index 3ec423214c6..68d03e919e9 100644 --- a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ConstantEvaluator.kt +++ b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ConstantEvaluator.kt @@ -36,14 +36,14 @@ class ConstantEvaluator(private val containingClass: JavaClass, } is JCTree.JCIdent, is JCTree.JCFieldAccess -> javac.resolveField(expr, compilationUnit, containingClass)?.initializerValue - is JCTree.JCBinary -> binaryInitializerValue(expr) + is JCTree.JCBinary -> evaluateBinaryExpression(expr) is JCTree.JCParens -> getValue(expr.expr) - is JCTree.JCUnary -> unaryInitializerValue(expr) + is JCTree.JCUnary -> evaluateUnaryExpression(expr) else -> null } } - private fun unaryInitializerValue(value: JCTree.JCUnary): Any? { + private fun evaluateUnaryExpression(value: JCTree.JCUnary): Any? { val argValue = getValue(value.arg) return when (value.tag) { JCTree.Tag.COMPL -> { @@ -60,7 +60,7 @@ class ConstantEvaluator(private val containingClass: JavaClass, } } - private fun binaryInitializerValue(value: JCTree.JCBinary): Any? { + private fun evaluateBinaryExpression(value: JCTree.JCBinary): Any? { val lhsValue = getValue(value.lhs) ?: return null val rhsValue = getValue(value.rhs) ?: return null diff --git a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ResolveHelper.kt b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ResolveHelper.kt index 310b8c589a4..c13946d37ef 100644 --- a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ResolveHelper.kt +++ b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/resolve/ResolveHelper.kt @@ -30,7 +30,7 @@ internal class ResolveHelper(private val javac: JavacWrapper, private val compilationUnit: CompilationUnitTree) { fun getJavaClassFromPathSegments(javaClass: JavaClass, - pathSegments: List) = + pathSegments: List) = if (pathSegments.size == 1) { javaClass } @@ -66,7 +66,8 @@ internal class ResolveHelper(private val javac: JavacWrapper, (it.classifier as? JavaClass)?.let { supertype -> if (supertype !in checkedSupertypes) { findInnerOrNested(supertype, name, checkedSupertypes) - } else null + } + else null } }.singleOrNull() } diff --git a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/symbols/SymbolBasedClass.kt b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/symbols/SymbolBasedClass.kt index e38edd67d72..4dd057e8870 100644 --- a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/symbols/SymbolBasedClass.kt +++ b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/symbols/SymbolBasedClass.kt @@ -80,7 +80,7 @@ class SymbolBasedClass( val innerClasses: Map by lazy { - element.enclosedElements + enclosedElements .filterIsInstance(TypeElement::class.java) .map { SymbolBasedClass(it, javac, classId?.createNestedClassId(Name.identifier(it.simpleName.toString())), file) } .associateBy(JavaClass::name) @@ -106,7 +106,7 @@ class SymbolBasedClass( get() = null override val methods: Collection - get() = element.enclosedElements + get() = enclosedElements .filter { it.kind == ElementKind.METHOD && !isEnumValuesOrValueOf(it as ExecutableElement) } .map { SymbolBasedMethod(it as ExecutableElement, this, javac) } @@ -119,12 +119,12 @@ class SymbolBasedClass( } override val fields: Collection - get() = element.enclosedElements + get() = enclosedElements .filter { it.kind.isField && Name.isValidIdentifier(it.simpleName.toString()) } .map { SymbolBasedField(it as VariableElement, this, javac) } override val constructors: Collection - get() = element.enclosedElements + get() = enclosedElements .filter { it.kind == ElementKind.CONSTRUCTOR } .map { SymbolBasedConstructor(it as ExecutableElement, this, javac) } @@ -139,4 +139,6 @@ class SymbolBasedClass( override fun findInnerClass(name: Name) = innerClasses[name] + private val enclosedElements by lazy { element.enclosedElements } + } diff --git a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/symbols/symbolBasedAnnotationArguments.kt b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/symbols/symbolBasedAnnotationArguments.kt index 271a221d22d..d7eb60b3479 100644 --- a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/symbols/symbolBasedAnnotationArguments.kt +++ b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/symbols/symbolBasedAnnotationArguments.kt @@ -64,7 +64,7 @@ class SymbolBasedReferenceAnnotationArgument( javac: JavacWrapper ) : SymbolBasedAnnotationArgument(name, javac), JavaEnumValueAnnotationArgument { override val entryName: Name? - get() = Name.identifier(name) + get() = name override fun resolve(): SymbolBasedField { val containingClass = (element.enclosingElement as Symbol.ClassSymbol).let { 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 2c78cc12838..fb5127312df 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 @@ -55,6 +55,8 @@ class TreeBasedReferenceAnnotationArgument(name: Name, private val field: JCTree.JCFieldAccess, javac: JavacWrapper, private val onElement: JavaElement) : TreeBasedAnnotationArgument(name, javac), JavaEnumValueAnnotationArgument { + override val entryName: Name? + get() = name override fun resolve(): JavaField? { val javaClass = javac.resolve(field.selected, compilationUnit, onElement) as? JavaClass ?: return null @@ -67,7 +69,7 @@ class TreeBasedReferenceAnnotationArgument(name: Name, class TreeBasedArrayAnnotationArgument(val args: List, name: Name, - javac: JavacWrapper): TreeBasedAnnotationArgument(name, javac), JavaArrayAnnotationArgument { + javac: JavacWrapper) : TreeBasedAnnotationArgument(name, javac), JavaArrayAnnotationArgument { override fun getElements() = args } @@ -76,10 +78,10 @@ class TreeBasedJavaClassObjectAnnotationArgument(private val type: JCTree.JCExpr name: Name, private val compilationUnit: CompilationUnitTree, javac: JavacWrapper, - private val onElement: JavaElement): TreeBasedAnnotationArgument(name, javac), JavaClassObjectAnnotationArgument { + 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) } @@ -87,25 +89,19 @@ class TreeBasedAnnotationAsAnnotationArgument(private val annotation: JCTree.JCA name: Name, private val compilationUnit: CompilationUnitTree, javac: JavacWrapper, - private val onElement: JavaElement): TreeBasedAnnotationArgument(name, javac), JavaAnnotationAsAnnotationArgument { + 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 { - val arguments = annotation.annotation.arguments - val javaClass = annotation.resolve() ?: return emptyList() - val methods = javaClass.methods - - if (arguments.size != methods.size) return emptyList() - - return methods.mapIndexedNotNull { index, it -> - createAnnotationArgument(arguments[index], it.name, annotation.compilationUnit, javac, annotation, onElement) - } -} + 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, onElement) + } private fun createAnnotationArgument(argument: JCTree.JCExpression, name: Name, @@ -118,17 +114,18 @@ private fun createAnnotationArgument(argument: JCTree.JCExpression, is JCTree.JCFieldAccess -> { if (argument.name.contentEquals("class")) { TreeBasedJavaClassObjectAnnotationArgument(argument.selected, name, compilationUnit, javac, onElement) - } else { + } + else { TreeBasedReferenceAnnotationArgument(name, compilationUnit, argument, javac, onElement) } } is JCTree.JCAssign -> createAnnotationArgument(argument.rhs, name, compilationUnit, javac, annotation, onElement) - is JCTree.JCNewArray -> arrayAnnotationArguments(argument.elems, name, compilationUnit, javac, annotation, onElement) + is JCTree.JCNewArray -> TreeBasedArrayAnnotationArgument(argument.elems.mapNotNull { createAnnotationArgument(it, name, compilationUnit, javac, annotation, onElement) }, name, javac) is JCTree.JCAnnotation -> TreeBasedAnnotationAsAnnotationArgument(argument, name, compilationUnit, javac, onElement) is JCTree.JCParens -> createAnnotationArgument(argument.expr, name, compilationUnit, javac, annotation, onElement) is JCTree.JCBinary -> resolveArgumentValue(argument, annotation, name, compilationUnit, javac) is JCTree.JCUnary -> resolveArgumentValue(argument, annotation, name, compilationUnit, javac) - else -> null + else -> throw UnsupportedOperationException("Unknown annotation argument $argument") } private fun resolveArgumentValue(argument: JCTree.JCExpression, @@ -140,19 +137,4 @@ private fun resolveArgumentValue(argument: JCTree.JCExpression, val evaluator = ConstantEvaluator(containingAnnotation, javac, compilationUnit) return evaluator.getValue(argument)?.let { TreeBasedLiteralAnnotationArgument(name, it, javac) } -} - -private fun arrayAnnotationArguments(values: List, - name: Name, - compilationUnit: CompilationUnitTree, - javac: JavacWrapper, - annotation: TreeBasedAnnotation, - onElement: JavaElement): JavaArrayAnnotationArgument = - values.mapNotNull { - if (it is JCTree.JCNewArray) { - arrayAnnotationArguments(it.elems, name, compilationUnit, javac, annotation, onElement) - } - else { - createAnnotationArgument(it, name, compilationUnit, javac, annotation, onElement) - } - }.let { TreeBasedArrayAnnotationArgument(it, name, javac) } \ No newline at end of file +} \ No newline at end of file diff --git a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedClass.kt b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedClass.kt index cbc250e7904..a9f3cc027d7 100644 --- a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedClass.kt +++ b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedClass.kt @@ -77,7 +77,7 @@ class TreeBasedClass( by lazy { arrayListOf().also { list -> if (isEnum) { - EnumSupertype(this, javac).let { list.add(it) } + list.add(EnumSupertype(this, javac)) } else if (isAnnotationType) { javac.JAVA_LANG_ANNOTATION_ANNOTATION?.let { list.add(it) } diff --git a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedMethod.kt b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedMethod.kt index 67088529d6f..fac6608e7c9 100644 --- a/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedMethod.kt +++ b/compiler/javac-wrapper/src/org/jetbrains/kotlin/javac/wrappers/trees/TreeBasedMethod.kt @@ -35,7 +35,7 @@ class TreeBasedMethod( get() = Name.identifier(tree.name.toString()) override val isAbstract: Boolean - get() = (containingClass.isInterface && !tree.modifiers.hasDefaultModifier) || tree.modifiers.isAbstract + get() = (containingClass.isInterface && !tree.modifiers.hasDefaultModifier && !isStatic) || tree.modifiers.isAbstract override val isStatic: Boolean get() = tree.modifiers.isStatic diff --git a/compiler/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out index 0067a965964..cf9eb4bd6bf 100644 --- a/compiler/testData/cli/jvm/extraHelp.out +++ b/compiler/testData/cli/jvm/extraHelp.out @@ -4,6 +4,7 @@ where advanced options include: -Xadd-modules= Root modules to resolve in addition to the initial modules, or all modules on the module path if is ALL-MODULE-PATH -Xbuild-file= Path to the .xml build file to compile + -Xcompile-java Reuse javac analysis and compile Java source files -Xdump-declarations-to= Path to JSON file to dump Java to Kotlin declaration mappings -Xmultifile-parts-inherit Compile multifile classes as a hierarchy of parts and facade -Xmodule-path= Paths where to find Java 9+ modules @@ -22,12 +23,6 @@ where advanced options include: -Xskip-runtime-version-check Allow Kotlin runtime libraries of incompatible versions in the classpath -Xuse-javac Use javac for Java source and class files analysis -Xuse-old-class-files-reading Use old class files reading implementation (may slow down the build and should be used in case of problems with the new implementation) - -Xcompile-java Reuse javac analysis and compile Java source files - -Xjavac-arguments= Java compiler arguments - -Xload-jsr305-annotations Load JSR-305 nullability annotations - -Xno-inline Disable method inlining - -Xrepeat= Repeat compilation (for performance analysis) - -Xskip-metadata-version-check Load classes with bad metadata version anyway (incl. pre-release classes) -Xallow-kotlin-package Allow compiling code in package 'kotlin' -Xcoroutines={enable|warn|error} Enable coroutines or report warnings or errors on declarations and use sites of 'suspend' modifier diff --git a/compiler/testData/diagnostics/tests/annotations/javaRepeatable.kt b/compiler/testData/diagnostics/tests/annotations/javaRepeatable.kt index 39077346f99..cd4a06a23e9 100644 --- a/compiler/testData/diagnostics/tests/annotations/javaRepeatable.kt +++ b/compiler/testData/diagnostics/tests/annotations/javaRepeatable.kt @@ -1,7 +1,7 @@ // FULL_JDK // FILE: RepeatableAnnotation.java -import java.lang.annotation.Repeatable +import java.lang.annotation.Repeatable; @Repeatable(RepeatableAnnotations.class) public @interface RepeatableAnnotation { diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/kotlinClassImplementsJavaInterface.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/kotlinClassImplementsJavaInterface.kt index 4227b174430..9561d68a6c3 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/kotlinClassImplementsJavaInterface.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/kotlinClassImplementsJavaInterface.kt @@ -3,7 +3,7 @@ // FILE: A.java public interface A { - public String a = "" + public String a = ""; public static void foo() {} public static void baz(String s) {} } diff --git a/compiler/testData/diagnostics/tests/j+k/annotationWithArgumentsMissingDependencies.javac.txt b/compiler/testData/diagnostics/tests/j+k/annotationWithArgumentsMissingDependencies.javac.txt deleted file mode 100644 index 807261e07e3..00000000000 --- a/compiler/testData/diagnostics/tests/j+k/annotationWithArgumentsMissingDependencies.javac.txt +++ /dev/null @@ -1,11 +0,0 @@ -package - -public fun main(): kotlin.Unit - -@missing.Ann /* annotation class not found */ public open class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - @missing.Ann /* annotation class not found */ public open fun foo(): kotlin.String! - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/diagnostics/tests/j+k/annotationWithArgumentsMissingDependencies.kt b/compiler/testData/diagnostics/tests/j+k/annotationWithArgumentsMissingDependencies.kt index 5b02912d9bc..90f3fc6ea16 100644 --- a/compiler/testData/diagnostics/tests/j+k/annotationWithArgumentsMissingDependencies.kt +++ b/compiler/testData/diagnostics/tests/j+k/annotationWithArgumentsMissingDependencies.kt @@ -1,4 +1,3 @@ -// JAVAC_EXPECTED_FILE // FILE: A.java @missing.Ann(x = "") public class A { diff --git a/compiler/testData/diagnostics/tests/j+k/exceptionMessage.javac.txt b/compiler/testData/diagnostics/tests/j+k/exceptionMessage.javac.txt new file mode 100644 index 00000000000..675dc66dab6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/exceptionMessage.javac.txt @@ -0,0 +1,26 @@ +package + +public fun foo(/*0*/ e: VcsException): kotlin.Unit +public operator fun kotlin.CharSequence.contains(/*0*/ other: kotlin.CharSequence): kotlin.Boolean + +public open class VcsException : java.lang.Exception { + public constructor VcsException() + public open override /*1*/ /*fake_override*/ val cause: kotlin.Throwable? + public open override /*1*/ val message: kotlin.String + public final override /*1*/ /*fake_override*/ fun addSuppressed(/*0*/ p0: kotlin.Throwable!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun fillInStackTrace(): kotlin.Throwable! + public open override /*1*/ /*fake_override*/ fun getLocalizedMessage(): kotlin.String! + public open override /*1*/ /*fake_override*/ fun getStackTrace(): kotlin.Array<(out) java.lang.StackTraceElement!>! + public final override /*1*/ /*fake_override*/ fun getSuppressed(): kotlin.Array<(out) kotlin.Throwable!>! + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun initCause(/*0*/ p0: kotlin.Throwable!): kotlin.Throwable! + public open override /*1*/ /*fake_override*/ fun printStackTrace(): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun printStackTrace(/*0*/ p0: java.io.PrintStream!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun printStackTrace(/*0*/ p0: java.io.PrintWriter!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun setStackTrace(/*0*/ p0: kotlin.Array<(out) java.lang.StackTraceElement!>!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + // Static members + invisible_fake const final override /*1*/ /*fake_override*/ val serialVersionUID: kotlin.Long = -3387516993124229948.toLong() +} diff --git a/compiler/testData/diagnostics/tests/j+k/exceptionMessage.kt b/compiler/testData/diagnostics/tests/j+k/exceptionMessage.kt index 93f99cd4e0c..cbc8640a180 100644 --- a/compiler/testData/diagnostics/tests/j+k/exceptionMessage.kt +++ b/compiler/testData/diagnostics/tests/j+k/exceptionMessage.kt @@ -1,4 +1,5 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER +// JAVAC_EXPECTED_FILE // FILE: VcsException.java import org.jetbrains.annotations.NotNull; diff --git a/compiler/testData/diagnostics/tests/platformTypes/commonSupertype/withNothing.kt b/compiler/testData/diagnostics/tests/platformTypes/commonSupertype/withNothing.kt index 0da7d01003c..5c1541699c6 100644 --- a/compiler/testData/diagnostics/tests/platformTypes/commonSupertype/withNothing.kt +++ b/compiler/testData/diagnostics/tests/platformTypes/commonSupertype/withNothing.kt @@ -1,5 +1,6 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER // !CHECK_TYPE +// JAVAC_SKIP // FILE: p/J.java package p; diff --git a/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/fillInStackTrace.javac.txt b/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/fillInStackTrace.javac.txt new file mode 100644 index 00000000000..4b84cc6a344 --- /dev/null +++ b/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/fillInStackTrace.javac.txt @@ -0,0 +1,20 @@ +package + +public final class ControlFlowException : kotlin.Exception /* = java.lang.Exception */ { + public constructor ControlFlowException() + public open override /*1*/ /*fake_override*/ val cause: kotlin.Throwable? + public open override /*1*/ /*fake_override*/ val message: kotlin.String? + public final override /*1*/ /*fake_override*/ fun addSuppressed(/*0*/ p0: kotlin.Throwable!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final override /*1*/ fun fillInStackTrace(): ControlFlowException + public open override /*1*/ /*fake_override*/ fun getLocalizedMessage(): kotlin.String! + public open override /*1*/ /*fake_override*/ fun getStackTrace(): kotlin.Array<(out) java.lang.StackTraceElement!>! + public final override /*1*/ /*fake_override*/ fun getSuppressed(): kotlin.Array<(out) kotlin.Throwable!>! + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun initCause(/*0*/ p0: kotlin.Throwable!): kotlin.Throwable! + public open override /*1*/ /*fake_override*/ fun printStackTrace(): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun printStackTrace(/*0*/ p0: java.io.PrintStream!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun printStackTrace(/*0*/ p0: java.io.PrintWriter!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun setStackTrace(/*0*/ p0: kotlin.Array<(out) java.lang.StackTraceElement!>!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/fillInStackTrace.kt b/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/fillInStackTrace.kt index 31122228549..a9199de4138 100644 --- a/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/fillInStackTrace.kt +++ b/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/fillInStackTrace.kt @@ -1,3 +1,4 @@ +// JAVAC_EXPECTED_FILE class ControlFlowException : Exception("") { fun fillInStackTrace() = this } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/hashMapGetOrDefault.javac.txt b/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/hashMapGetOrDefault.javac.txt new file mode 100644 index 00000000000..801db53878c --- /dev/null +++ b/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/hashMapGetOrDefault.javac.txt @@ -0,0 +1,55 @@ +package + +public final class MyHashMap : java.util.HashMap { + public constructor MyHashMap() + public open override /*1*/ /*fake_override*/ val entries: kotlin.collections.MutableSet> + invisible_fake final override /*1*/ /*fake_override*/ var entrySet: kotlin.collections.(Mutable)Set!>! + invisible_fake final override /*1*/ /*fake_override*/ var hashSeed: kotlin.Int + invisible_fake final override /*1*/ /*fake_override*/ var keySet: kotlin.collections.(Mutable)Set! + public open override /*1*/ /*fake_override*/ val keys: kotlin.collections.MutableSet + invisible_fake final override /*1*/ /*fake_override*/ val loadFactor: kotlin.Float + invisible_fake final override /*1*/ /*fake_override*/ var modCount: kotlin.Int + invisible_fake final override /*1*/ /*fake_override*/ var size: kotlin.Int + public open override /*1*/ /*fake_override*/ val size: kotlin.Int + invisible_fake final override /*1*/ /*fake_override*/ var table: kotlin.Array<(out) java.util.HashMap.Entry!>! + invisible_fake final override /*1*/ /*fake_override*/ var threshold: kotlin.Int + invisible_fake final override /*1*/ /*fake_override*/ var values: kotlin.collections.(Mutable)Collection! + public open override /*1*/ /*fake_override*/ val values: kotlin.collections.MutableCollection + invisible_fake open override /*1*/ /*fake_override*/ fun addEntry(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.String!, /*2*/ p2: kotlin.String!, /*3*/ p3: kotlin.Int): kotlin.Unit + invisible_fake open override /*1*/ /*fake_override*/ fun capacity(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any + public open override /*1*/ /*fake_override*/ fun containsKey(/*0*/ key: kotlin.String): kotlin.Boolean + invisible_fake open override /*1*/ /*fake_override*/ fun containsNullValue(): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsValue(/*0*/ value: kotlin.String): kotlin.Boolean + invisible_fake open override /*1*/ /*fake_override*/ fun createEntry(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.String!, /*2*/ p2: kotlin.String!, /*3*/ p3: kotlin.Int): kotlin.Unit + invisible_fake open override /*1*/ /*fake_override*/ fun entrySet0(): kotlin.collections.(Mutable)Set!>! + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun get(/*0*/ key: kotlin.String): kotlin.String? + invisible_fake final override /*1*/ /*fake_override*/ fun getEntry(/*0*/ p0: kotlin.Any!): java.util.HashMap.Entry! + invisible_fake open override /*1*/ /*fake_override*/ fun getForNullKey(): kotlin.String! + public final fun getOrDefault(/*0*/ key: kotlin.String, /*1*/ defaultValue: kotlin.String): kotlin.String + invisible_fake final override /*1*/ /*fake_override*/ fun hash(/*0*/ p0: kotlin.Any!): kotlin.Int + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + invisible_fake open override /*1*/ /*fake_override*/ fun inflateTable(/*0*/ p0: kotlin.Int): kotlin.Unit + invisible_fake open override /*1*/ /*fake_override*/ fun init(): kotlin.Unit + invisible_fake final override /*1*/ /*fake_override*/ fun initHashSeedAsNeeded(/*0*/ p0: kotlin.Int): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean + invisible_fake open override /*1*/ /*fake_override*/ fun loadFactor(): kotlin.Float + invisible_fake open override /*1*/ /*fake_override*/ fun newEntryIterator(): kotlin.collections.(Mutable)Iterator!>! + invisible_fake open override /*1*/ /*fake_override*/ fun newKeyIterator(): kotlin.collections.(Mutable)Iterator! + invisible_fake open override /*1*/ /*fake_override*/ fun newValueIterator(): kotlin.collections.(Mutable)Iterator! + public open override /*1*/ /*fake_override*/ fun put(/*0*/ key: kotlin.String, /*1*/ value: kotlin.String): kotlin.String? + public open override /*1*/ /*fake_override*/ fun putAll(/*0*/ from: kotlin.collections.Map): kotlin.Unit + invisible_fake open override /*1*/ /*fake_override*/ fun putAllForCreate(/*0*/ p0: (kotlin.collections.MutableMap..kotlin.collections.Map?)): kotlin.Unit + invisible_fake open override /*1*/ /*fake_override*/ fun putForCreate(/*0*/ p0: kotlin.String!, /*1*/ p1: kotlin.String!): kotlin.Unit + invisible_fake open override /*1*/ /*fake_override*/ fun putForNullKey(/*0*/ p0: kotlin.String!): kotlin.String! + invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun remove(/*0*/ key: kotlin.String): kotlin.String? + invisible_fake final override /*1*/ /*fake_override*/ fun removeEntryForKey(/*0*/ p0: kotlin.Any!): java.util.HashMap.Entry! + invisible_fake final override /*1*/ /*fake_override*/ fun removeMapping(/*0*/ p0: kotlin.Any!): java.util.HashMap.Entry! + invisible_fake open override /*1*/ /*fake_override*/ fun resize(/*0*/ p0: kotlin.Int): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + invisible_fake open override /*1*/ /*fake_override*/ fun transfer(/*0*/ p0: kotlin.Array<(out) java.util.HashMap.Entry<(raw) kotlin.Any!, (raw) kotlin.Any!>!>!, /*1*/ p1: kotlin.Boolean): kotlin.Unit + invisible_fake open override /*1*/ /*fake_override*/ fun writeObject(/*0*/ p0: java.io.ObjectOutputStream!): kotlin.Unit +} diff --git a/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/hashMapGetOrDefault.kt b/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/hashMapGetOrDefault.kt index 0e439e60068..a06d4279cce 100644 --- a/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/hashMapGetOrDefault.kt +++ b/compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/hashMapGetOrDefault.kt @@ -1,4 +1,5 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN +// JAVAC_EXPECTED_FILE class MyHashMap : java.util.HashMap() { fun getOrDefault(key: String, defaultValue: String): String = TODO() diff --git a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.kt b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.kt index 1febc29c7ca..5288a594012 100644 --- a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.kt +++ b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.kt @@ -1,6 +1,4 @@ // !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// RENDER_PACKAGE: test -// RENDER_PACKAGE: test2 // WARNING_FOR_JSR305_ANNOTATIONS // FILE: test/package-info.java diff --git a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.txt b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.txt index 0b3f977be5e..1b2e65e1bee 100644 --- a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.txt +++ b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.txt @@ -1,27 +1,29 @@ -package test - -public open class A { - public constructor A() - @javax.annotation.Nullable public final var field: kotlin.String? - @javax.annotation.Nonnull public open fun bar(): kotlin.String - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ q: kotlin.String!, /*1*/ @javax.annotation.Nonnull x: kotlin.String, /*2*/ @javax.annotation.CheckForNull y: kotlin.CharSequence?): kotlin.String! - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -package test2 - -public open class A2 { - public constructor A2() - @javax.annotation.Nullable public final var field: kotlin.String? - @javax.annotation.Nonnull public open fun bar(): kotlin.String - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ q: kotlin.String!, /*1*/ @javax.annotation.Nonnull x: kotlin.String, /*2*/ @javax.annotation.CheckForNull y: kotlin.CharSequence?): kotlin.String! - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - package public fun main(/*0*/ a: test.A, /*1*/ a2: test2.A2): kotlin.Unit + +package test { + + public open class A { + public constructor A() + @javax.annotation.Nullable public final var field: kotlin.String? + @javax.annotation.Nonnull public open fun bar(): kotlin.String + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open fun foo(/*0*/ q: kotlin.String!, /*1*/ @javax.annotation.Nonnull x: kotlin.String, /*2*/ @javax.annotation.CheckForNull y: kotlin.CharSequence?): kotlin.String! + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } +} + +package test2 { + + public open class A2 { + public constructor A2() + @javax.annotation.Nullable public final var field: kotlin.String? + @javax.annotation.Nonnull public open fun bar(): kotlin.String + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open fun foo(/*0*/ q: kotlin.String!, /*1*/ @javax.annotation.Nonnull x: kotlin.String, /*2*/ @javax.annotation.CheckForNull y: kotlin.CharSequence?): kotlin.String! + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } +} diff --git a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullable.txt b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullable.txt index 1bd2b3b06b7..4082765d49a 100644 --- a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullable.txt +++ b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullable.txt @@ -12,3 +12,20 @@ public fun main(/*0*/ a: A): kotlin.Unit public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } + +package spr { + + @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.FILE}) @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) @kotlin.annotation.MustBeDocumented @javax.annotation.Nonnull @javax.annotation.meta.TypeQualifierDefault(value = {ElementType.METHOD, ElementType.PARAMETER}) public final annotation class NonNullApi : kotlin.Annotation { + public constructor NonNullApi() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.VALUE_PARAMETER}) @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) @kotlin.annotation.MustBeDocumented @javax.annotation.Nonnull(when = When.MAYBE) @javax.annotation.meta.TypeQualifierNickname public final annotation class Nullable : kotlin.Annotation { + public constructor Nullable() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } +} diff --git a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullablePackage.kt b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullablePackage.kt index 15e8b11ee82..425d0aa7d9b 100644 --- a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullablePackage.kt +++ b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullablePackage.kt @@ -1,5 +1,4 @@ // !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// RENDER_PACKAGE: test // WARNING_FOR_JSR305_ANNOTATIONS // FILE: spr/Nullable.java diff --git a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullablePackage.txt b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullablePackage.txt index 4b24cd33f76..1ad63457194 100644 --- a/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullablePackage.txt +++ b/compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullablePackage.txt @@ -1,16 +1,34 @@ -package test - -public open class A { - public constructor A() - public final var field: kotlin.String! - public open fun bar(): kotlin.String! - @spr.Nullable public open fun baz(): kotlin.collections.(Mutable)List! - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ x: kotlin.String!, /*1*/ @spr.Nullable y: kotlin.CharSequence!): kotlin.String! - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - package public fun main(/*0*/ a: test.A): kotlin.Unit + +package spr { + + @kotlin.annotation.Target(allowedTargets = {}) @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) @kotlin.annotation.MustBeDocumented @javax.annotation.Nonnull @javax.annotation.meta.TypeQualifierDefault(value = {ElementType.METHOD, ElementType.PARAMETER}) public final annotation class NonNullApi : kotlin.Annotation { + public constructor NonNullApi() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.VALUE_PARAMETER}) @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) @kotlin.annotation.MustBeDocumented @javax.annotation.Nonnull(when = When.MAYBE) @javax.annotation.meta.TypeQualifierNickname public final annotation class Nullable : kotlin.Annotation { + public constructor Nullable() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } +} + +package test { + + public open class A { + public constructor A() + public final var field: kotlin.String! + public open fun bar(): kotlin.String! + @spr.Nullable public open fun baz(): kotlin.collections.(Mutable)List! + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open fun foo(/*0*/ x: kotlin.String!, /*1*/ @spr.Nullable y: kotlin.CharSequence!): kotlin.String! + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } +} diff --git a/compiler/testData/foreignAnnotations/tests/typeQualifierDefault/springNullable.txt b/compiler/testData/foreignAnnotations/tests/typeQualifierDefault/springNullable.txt index 7c2f2423e7d..cdafd4ee03c 100644 --- a/compiler/testData/foreignAnnotations/tests/typeQualifierDefault/springNullable.txt +++ b/compiler/testData/foreignAnnotations/tests/typeQualifierDefault/springNullable.txt @@ -15,7 +15,7 @@ public fun main(/*0*/ a: A): kotlin.Unit package spr { - @kotlin.annotation.Target(allowedTargets = {}) @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) @kotlin.annotation.MustBeDocumented @javax.annotation.Nonnull @javax.annotation.meta.TypeQualifierDefault(value = {ElementType.METHOD, ElementType.PARAMETER}) public final annotation class NonNullApi : kotlin.Annotation { + @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.FILE}) @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) @kotlin.annotation.MustBeDocumented @javax.annotation.Nonnull @javax.annotation.meta.TypeQualifierDefault(value = {ElementType.METHOD, ElementType.PARAMETER}) public final annotation class NonNullApi : kotlin.Annotation { public constructor NonNullApi() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/javac/diagnostics/tests/Annotations.kt b/compiler/testData/javac/diagnostics/tests/Annotations.kt index 0cbf780ee5a..3c242da9372 100644 --- a/compiler/testData/javac/diagnostics/tests/Annotations.kt +++ b/compiler/testData/javac/diagnostics/tests/Annotations.kt @@ -15,6 +15,25 @@ public class x { @ann3((1 + 1)) public String method2() { return null; } + + @def + public String method3() { return null; } + + @def(1) + public String method4() { return null; } + + @def(firstDefault = "f", 5) + public String method5() { return null; } + + @def(secondDefault = "s", 14) + public String method6() { return null; } + + @def(firstDefault = "f", secondDefault = "s", 17) + public String method7() { return null; } + + @def("1", "2", 3) + public String method8() { return null; } + } // FILE: a/ann1.java @@ -49,4 +68,13 @@ import java.lang.annotation.Target; @Target(ElementType.METHOD) @interface ann3 { public int value(); +} + +// FILE: a/def.java +package a; + +public @interface def { + String firstDefault() default "firstDefault"; + String secondDefault() default "secondDefault"; + int notDefault(); } \ No newline at end of file diff --git a/compiler/testData/javac/diagnostics/tests/Annotations.txt b/compiler/testData/javac/diagnostics/tests/Annotations.txt index 4d587147dba..bd060672177 100644 --- a/compiler/testData/javac/diagnostics/tests/Annotations.txt +++ b/compiler/testData/javac/diagnostics/tests/Annotations.txt @@ -36,12 +36,28 @@ package a { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } + public final annotation class def : kotlin.Annotation { + public constructor def(/*0*/ firstDefault: kotlin.String = ..., /*1*/ secondDefault: kotlin.String = ..., /*2*/ notDefault: kotlin.Int) + public final val firstDefault: kotlin.String + public final val notDefault: kotlin.Int + public final val secondDefault: kotlin.String + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + @a.ann(value = kotlin.String::class) public open class x { public constructor x() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @a.ann2(i = 42, value = {a.ann1(a = "ab", i = 2), a.ann1(a = "b", i = 2), a.ann1(a = "c", i = 3)}) public open fun method(): kotlin.String! @a.ann3(value = 2) public open fun method2(): kotlin.String! + @a.def public open fun method3(): kotlin.String! + @a.def(value = 1) public open fun method4(): kotlin.String! + @a.def(firstDefault = "f", value = 5) public open fun method5(): kotlin.String! + @a.def(secondDefault = "s", value = 14) public open fun method6(): kotlin.String! + @a.def(firstDefault = "f", secondDefault = "s", value = 17) public open fun method7(): kotlin.String! + @a.def(value = 3) public open fun method8(): kotlin.String! public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } } diff --git a/compiler/testData/javac/diagnostics/tests/qualifiedExpression/PackageVsClass.kt b/compiler/testData/javac/diagnostics/tests/qualifiedExpression/PackageVsClass.kt index fbe0dbabe5b..b741c70d261 100644 --- a/compiler/testData/javac/diagnostics/tests/qualifiedExpression/PackageVsClass.kt +++ b/compiler/testData/javac/diagnostics/tests/qualifiedExpression/PackageVsClass.kt @@ -37,10 +37,6 @@ fun test(a_b: a.b) { val ab_c = t2() ab_c.ab_c() ab_c.a_bc() - - val ab_c2: a.b.c = t2() - ab_c2.ab_c() - ab_c2.a_bc() } fun test2() = t().a_b() diff --git a/compiler/tests-common/org/jetbrains/kotlin/checkers/javac/AbstractDiagnosticsUsingJavacTest.kt b/compiler/tests-common/org/jetbrains/kotlin/checkers/javac/AbstractDiagnosticsUsingJavacTest.kt index 00f02780a38..a33c16df4d0 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/checkers/javac/AbstractDiagnosticsUsingJavacTest.kt +++ b/compiler/tests-common/org/jetbrains/kotlin/checkers/javac/AbstractDiagnosticsUsingJavacTest.kt @@ -27,15 +27,22 @@ import java.io.File abstract class AbstractDiagnosticsUsingJavacTest : AbstractDiagnosticsTest() { override fun analyzeAndCheck(testDataFile: File, files: List) { - if (InTextDirectivesUtils.isDirectiveDefined(testDataFile.readText(), "// JAVAC_SKIP")) { + val testDataFileText = testDataFile.readText() + if (InTextDirectivesUtils.isDirectiveDefined(testDataFileText, "// JAVAC_SKIP")) { println("${testDataFile.name} test is skipped") return } val groupedByModule = files.groupBy(TestFile::module) val allKtFiles = groupedByModule.values.flatMap { getKtFiles(it, true) } - val mockJdk = listOf(File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/rt.jar")) - environment.registerJavac(kotlinFiles = allKtFiles, bootClasspath = mockJdk) + if (InTextDirectivesUtils.isDirectiveDefined(testDataFileText, "// FULL_JDK")) { + environment.registerJavac(kotlinFiles = allKtFiles) + } + else { + val mockJdk = listOf(File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/rt.jar")) + environment.registerJavac(kotlinFiles = allKtFiles, bootClasspath = mockJdk) + } + environment.configuration.put(JVMConfigurationKeys.USE_JAVAC, true) super.analyzeAndCheck(testDataFile, files) } diff --git a/compiler/tests-common/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java b/compiler/tests-common/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java index dc817b1e730..c46bf64dd6e 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java +++ b/compiler/tests-common/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java @@ -256,8 +256,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { Pair javaPackageAndContext = compileJavaAndLoadTestPackageAndBindingContextFromBinary( srcFiles, compiledDir, ConfigurationKind.ALL ); - - checkJavaPackage(getTxtFile(javaFileName), javaPackageAndContext.first, javaPackageAndContext.second, configuration); + checkJavaPackage(getExpectedFile(javaFileName.replaceFirst("\\.java$", ".txt")), javaPackageAndContext.first, javaPackageAndContext.second, configuration); } @NotNull @@ -300,10 +299,10 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { } } - private static File getTxtFile(String javaFileName) { + private File getTxtFile(String javaFileName) { try { String fileText = FileUtil.loadFile(new File(javaFileName)); - if (InTextDirectivesUtils.isDirectiveDefined(fileText, "// JAVAC_EXPECTED_FILE")) { + if (useJavacWrapper() && InTextDirectivesUtils.isDirectiveDefined(fileText, "// JAVAC_EXPECTED_FILE")) { return new File(javaFileName.replaceFirst("\\.java$", ".javac.txt")); } else return new File(javaFileName.replaceFirst("\\.java$", ".txt")); @@ -313,10 +312,10 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { } } - private static File getTxtFileFromKtFile(String ktFileName) { + private File getTxtFileFromKtFile(String ktFileName) { try { String fileText = FileUtil.loadFile(new File(ktFileName)); - if (InTextDirectivesUtils.isDirectiveDefined(fileText, "// JAVAC_EXPECTED_FILE")) { + if (useJavacWrapper() && InTextDirectivesUtils.isDirectiveDefined(fileText, "// JAVAC_EXPECTED_FILE")) { return new File(ktFileName.replaceFirst("\\.kt$", ".javac.txt")); } else return new File(ktFileName.replaceFirst("\\.kt$", ".txt")); diff --git a/compiler/tests-common/org/jetbrains/kotlin/jvm/compiler/javac/AbstractLoadJavaUsingJavacTest.kt b/compiler/tests-common/org/jetbrains/kotlin/jvm/compiler/javac/AbstractLoadJavaUsingJavacTest.kt index c9c840c09ef..1bcb2103aca 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/jvm/compiler/javac/AbstractLoadJavaUsingJavacTest.kt +++ b/compiler/tests-common/org/jetbrains/kotlin/jvm/compiler/javac/AbstractLoadJavaUsingJavacTest.kt @@ -19,6 +19,8 @@ package org.jetbrains.kotlin.jvm.compiler.javac import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.jvm.compiler.AbstractLoadJavaTest +import org.jetbrains.kotlin.test.KotlinTestUtils +import java.io.File abstract class AbstractLoadJavaUsingJavacTest : AbstractLoadJavaTest() { override fun registerJavacIfNeeded(environment: KotlinCoreEnvironment) { @@ -28,6 +30,12 @@ abstract class AbstractLoadJavaUsingJavacTest : AbstractLoadJavaTest() { override fun useJavacWrapper() = true + override fun getExpectedFile(expectedFileName: String): File { + val differentResultFile = KotlinTestUtils.replaceExtension(File(expectedFileName), "javac.txt") + if (differentResultFile.exists()) return differentResultFile + return super.getExpectedFile(expectedFileName) + } + } object JavacRegistrarForTests { diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/javac/AbstractLoadJava8UsingJavacTest.kt b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/javac/AbstractLoadJava8UsingJavacTest.kt index 318b27342ad..cb845fb590e 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/javac/AbstractLoadJava8UsingJavacTest.kt +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/javac/AbstractLoadJava8UsingJavacTest.kt @@ -19,6 +19,8 @@ package org.jetbrains.kotlin.jvm.compiler.javac import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.jvm.compiler.AbstractLoadJava8Test +import org.jetbrains.kotlin.test.KotlinTestUtils +import java.io.File abstract class AbstractLoadJava8UsingJavacTest : AbstractLoadJava8Test() { override fun registerJavacIfNeeded(environment: KotlinCoreEnvironment) { @@ -27,4 +29,11 @@ abstract class AbstractLoadJava8UsingJavacTest : AbstractLoadJava8Test() { } override fun useJavacWrapper() = true + + override fun getExpectedFile(expectedFileName: String): File { + val differentResultFile = KotlinTestUtils.replaceExtension(File(expectedFileName), "javac.txt") + if (differentResultFile.exists()) return differentResultFile + return super.getExpectedFile(expectedFileName) + } + } \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/AbstractDiagnosticsTestWithStdLibUsingJavac.kt b/compiler/tests/org/jetbrains/kotlin/checkers/javac/AbstractDiagnosticsTestWithStdLibUsingJavac.kt index 6a30c711d9c..898cd70c4fe 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/AbstractDiagnosticsTestWithStdLibUsingJavac.kt +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/AbstractDiagnosticsTestWithStdLibUsingJavac.kt @@ -27,15 +27,22 @@ import java.io.File abstract class AbstractDiagnosticsTestWithStdLibUsingJavac : AbstractDiagnosticsTestWithStdLib() { override fun analyzeAndCheck(testDataFile: File, files: List) { - if (InTextDirectivesUtils.isDirectiveDefined(testDataFile.readText(), "// JAVAC_SKIP")) { + val testDataFileText = testDataFile.readText() + if (InTextDirectivesUtils.isDirectiveDefined(testDataFileText, "// JAVAC_SKIP")) { println("${testDataFile.name} test is skipped") return } val groupedByModule = files.groupBy(TestFile::module) val allKtFiles = groupedByModule.values.flatMap { getKtFiles(it, true) } - val mockJdk = listOf(File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/rt.jar")) - environment.registerJavac(kotlinFiles = allKtFiles, bootClasspath = mockJdk) + if (InTextDirectivesUtils.isDirectiveDefined(testDataFileText, "// FULL_JDK")) { + environment.registerJavac(kotlinFiles = allKtFiles) + } + else { + val mockJdk = listOf(File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/rt.jar")) + environment.registerJavac(kotlinFiles = allKtFiles, bootClasspath = mockJdk) + } + environment.configuration.put(JVMConfigurationKeys.USE_JAVAC, true) super.analyzeAndCheck(testDataFile, files) } diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java index 53ece11e23a..9b34998a086 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java @@ -1320,6 +1320,21 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno } } + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/java") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Java extends AbstractDiagnosticsTestWithStdLibUsingJavac { + public void testAllFilesPresentInJava() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/testsWithStdLib/java"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("patternCompileCallableReference.kt") + public void testPatternCompileCallableReference() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/java/patternCompileCallableReference.kt"); + doTest(fileName); + } + } + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/kt7585") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -1752,6 +1767,27 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno } } + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class TargetedBuiltIns extends AbstractDiagnosticsTestWithStdLibUsingJavac { + public void testAllFilesPresentInTargetedBuiltIns() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("blackListed.kt") + public void testBlackListed() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/blackListed.kt"); + doTest(fileName); + } + + @TestMetadata("unsupportedFeature.kt") + public void testUnsupportedFeature() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/unsupportedFeature.kt"); + doTest(fileName); + } + } + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/typealias") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java index 3ce26bec81d..a9770a4bdfe 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java @@ -1054,6 +1054,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("deprecatedRepeatable.kt") + public void testDeprecatedRepeatable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/deprecatedRepeatable.kt"); + doTest(fileName); + } + @TestMetadata("extensionFunctionType.kt") public void testExtensionFunctionType() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/extensionFunctionType.kt"); @@ -1084,6 +1090,24 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("javaRepeatable.kt") + public void testJavaRepeatable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/javaRepeatable.kt"); + doTest(fileName); + } + + @TestMetadata("javaRepeatableRetention.kt") + public void testJavaRepeatableRetention() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/javaRepeatableRetention.kt"); + doTest(fileName); + } + + @TestMetadata("javaUnrepeatable.kt") + public void testJavaUnrepeatable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/javaUnrepeatable.kt"); + doTest(fileName); + } + @TestMetadata("kt1860-negative.kt") public void testKt1860_negative() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/kt1860-negative.kt"); @@ -1581,12 +1605,36 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("diagnosticFileAnnotationInWrongPlace.kt") + public void testDiagnosticFileAnnotationInWrongPlace() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/diagnosticFileAnnotationInWrongPlace.kt"); + doTest(fileName); + } + + @TestMetadata("diagnosticWithoutPackage.kt") + public void testDiagnosticWithoutPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/diagnosticWithoutPackage.kt"); + doTest(fileName); + } + + @TestMetadata("diagnosticWithoutPackageWithSimpleAnnotation.kt") + public void testDiagnosticWithoutPackageWithSimpleAnnotation() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/diagnosticWithoutPackageWithSimpleAnnotation.kt"); + doTest(fileName); + } + @TestMetadata("FieldAnnotations.kt") public void testFieldAnnotations() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/FieldAnnotations.kt"); doTest(fileName); } + @TestMetadata("fileAnnotationWithoutColon.kt") + public void testFileAnnotationWithoutColon() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/fileAnnotationWithoutColon.kt"); + doTest(fileName); + } + @TestMetadata("FileAnnotations.kt") public void testFileAnnotations() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/FileAnnotations.kt"); @@ -6051,6 +6099,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("typeOfLazyDelegatedPropertyWithObject.kt") + public void testTypeOfLazyDelegatedPropertyWithObject() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/inference/typeOfLazyDelegatedPropertyWithObject.kt"); + doTest(fileName); + } + @TestMetadata("useCompleterWithoutExpectedType.kt") public void testUseCompleterWithoutExpectedType() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/inference/useCompleterWithoutExpectedType.kt"); @@ -6595,6 +6649,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("typealiasCompanionObject.kt") + public void testTypealiasCompanionObject() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/typealiasCompanionObject.kt"); + doTest(fileName); + } + @TestMetadata("typealiasConstructor.kt") public void testTypealiasConstructor() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/typealiasConstructor.kt"); @@ -7110,24 +7170,36 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/duplicateJvmSignature/statics"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } - @TestMetadata("jjk.kt") - public void testJjk() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/jjk.kt"); - doTest(fileName); - } - - @TestMetadata("jk.kt") - public void testJk() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/jk.kt"); - doTest(fileName); - } - @TestMetadata("jkjk.kt") public void testJkjk() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/jkjk.kt"); doTest(fileName); } + @TestMetadata("kotlinClassExtendsJavaClass.kt") + public void testKotlinClassExtendsJavaClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/kotlinClassExtendsJavaClass.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinClassExtendsJavaClassExtendsJavaClass.kt") + public void testKotlinClassExtendsJavaClassExtendsJavaClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/kotlinClassExtendsJavaClassExtendsJavaClass.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinClassImplementsJavaInterface.kt") + public void testKotlinClassImplementsJavaInterface() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/kotlinClassImplementsJavaInterface.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinClassImplementsJavaInterfaceExtendsJavaInteface.kt") + public void testKotlinClassImplementsJavaInterfaceExtendsJavaInteface() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/kotlinClassImplementsJavaInterfaceExtendsJavaInteface.kt"); + doTest(fileName); + } + @TestMetadata("kotlinMembersVsJavaNonVisibleStatics.kt") public void testKotlinMembersVsJavaNonVisibleStatics() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature/statics/kotlinMembersVsJavaNonVisibleStatics.kt"); @@ -10060,6 +10132,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("fixationOrderForProperConstraints.kt") + public void testFixationOrderForProperConstraints() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/fixationOrderForProperConstraints.kt"); + doTest(fileName); + } + @TestMetadata("flexibleTypesAsUpperBound.kt") public void testFlexibleTypesAsUpperBound() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/flexibleTypesAsUpperBound.kt"); @@ -10150,6 +10228,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("lambdaInValInitializerWithAnonymousFunctions.kt") + public void testLambdaInValInitializerWithAnonymousFunctions() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/lambdaInValInitializerWithAnonymousFunctions.kt"); + doTest(fileName); + } + @TestMetadata("listConstructor.kt") public void testListConstructor() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/listConstructor.kt"); @@ -11185,6 +11269,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("kt19679.kt") + public void testKt19679() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inline/kt19679.kt"); + doTest(fileName); + } + @TestMetadata("kt4869.kt") public void testKt4869() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inline/kt4869.kt"); @@ -11974,6 +12064,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("collectorInference.kt") + public void testCollectorInference() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/collectorInference.kt"); + doTest(fileName); + } + @TestMetadata("computeIfAbsentConcurrent.kt") public void testComputeIfAbsentConcurrent() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/computeIfAbsentConcurrent.kt"); @@ -11986,6 +12082,18 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("defaultMethods.kt") + public void testDefaultMethods() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/defaultMethods.kt"); + doTest(fileName); + } + + @TestMetadata("defaultMethodsIndirectInheritance.kt") + public void testDefaultMethodsIndirectInheritance() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/defaultMethodsIndirectInheritance.kt"); + doTest(fileName); + } + @TestMetadata("differentFilename.kt") public void testDifferentFilename() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/differentFilename.kt"); @@ -11998,6 +12106,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("exceptionMessage.kt") + public void testExceptionMessage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/exceptionMessage.kt"); + doTest(fileName); + } + @TestMetadata("fieldOverridesField.kt") public void testFieldOverridesField() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/fieldOverridesField.kt"); @@ -12040,6 +12154,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("inheritanceStaticMethodFromInterface.kt") + public void testInheritanceStaticMethodFromInterface() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/inheritanceStaticMethodFromInterface.kt"); + doTest(fileName); + } + @TestMetadata("InheritedGenericFunction.kt") public void testInheritedGenericFunction() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/InheritedGenericFunction.kt"); @@ -12172,6 +12292,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("nullForOptionalOrElse.kt") + public void testNullForOptionalOrElse() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/nullForOptionalOrElse.kt"); + doTest(fileName); + } + @TestMetadata("overrideRawType.kt") public void testOverrideRawType() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/overrideRawType.kt"); @@ -12250,6 +12376,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("samWithConsumer.kt") + public void testSamWithConsumer() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/samWithConsumer.kt"); + doTest(fileName); + } + @TestMetadata("selectMoreSpecific.kt") public void testSelectMoreSpecific() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/selectMoreSpecific.kt"); @@ -12286,6 +12418,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("staticMethodInClass.kt") + public void testStaticMethodInClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/staticMethodInClass.kt"); + doTest(fileName); + } + @TestMetadata("SupertypeArgumentsNullability-NotNull-SpecialTypes.kt") public void testSupertypeArgumentsNullability_NotNull_SpecialTypes() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/SupertypeArgumentsNullability-NotNull-SpecialTypes.kt"); @@ -12609,6 +12747,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("fakeOverrideFunctionForStaticSam.kt") + public void testFakeOverrideFunctionForStaticSam() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/sam/fakeOverrideFunctionForStaticSam.kt"); + doTest(fileName); + } + @TestMetadata("inheritedStaticSam.kt") public void testInheritedStaticSam() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/sam/inheritedStaticSam.kt"); @@ -12685,6 +12829,27 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing } } + @TestMetadata("compiler/testData/diagnostics/tests/j+k/specialBuiltIns") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class SpecialBuiltIns extends AbstractDiagnosticsUsingJavacTest { + public void testAllFilesPresentInSpecialBuiltIns() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/j+k/specialBuiltIns"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("hashtableInheritance.kt") + public void testHashtableInheritance() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/specialBuiltIns/hashtableInheritance.kt"); + doTest(fileName); + } + + @TestMetadata("securityProvider.kt") + public void testSecurityProvider() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/j+k/specialBuiltIns/securityProvider.kt"); + doTest(fileName); + } + } + @TestMetadata("compiler/testData/diagnostics/tests/j+k/types") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -13465,6 +13630,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/multiplatform"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } + @TestMetadata("headerFunInNonHeaderClass.kt") + public void testHeaderFunInNonHeaderClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/multiplatform/headerFunInNonHeaderClass.kt"); + doTest(fileName); + } + @TestMetadata("implDelegatedMember.kt") public void testImplDelegatedMember() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/multiplatform/implDelegatedMember.kt"); @@ -13569,6 +13740,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("extraHeaderOnMembers.kt") + public void testExtraHeaderOnMembers() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/multiplatform/headerClass/extraHeaderOnMembers.kt"); + doTest(fileName); + } + @TestMetadata("genericClassImplTypeAlias.kt") public void testGenericClassImplTypeAlias() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/multiplatform/headerClass/genericClassImplTypeAlias.kt"); @@ -13605,6 +13782,18 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("nestedClassesWithErrors.kt") + public void testNestedClassesWithErrors() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/multiplatform/headerClass/nestedClassesWithErrors.kt"); + doTest(fileName); + } + + @TestMetadata("noImplKeywordOnMember.kt") + public void testNoImplKeywordOnMember() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/multiplatform/headerClass/noImplKeywordOnMember.kt"); + doTest(fileName); + } + @TestMetadata("simpleHeaderClass.kt") public void testSimpleHeaderClass() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/multiplatform/headerClass/simpleHeaderClass.kt"); @@ -13718,6 +13907,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/multiplatform/topLevelFun/simpleHeaderFun.kt"); doTest(fileName); } + + @TestMetadata("valueParameterModifiers.kt") + public void testValueParameterModifiers() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/multiplatform/topLevelFun/valueParameterModifiers.kt"); + doTest(fileName); + } } @TestMetadata("compiler/testData/diagnostics/tests/multiplatform/topLevelProperty") @@ -16543,6 +16738,18 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("correctResultSubstitutorForErrorCandidate.kt") + public void testCorrectResultSubstitutorForErrorCandidate() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/regressions/correctResultSubstitutorForErrorCandidate.kt"); + doTest(fileName); + } + + @TestMetadata("delegationWithReceiver.kt") + public void testDelegationWithReceiver() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/regressions/delegationWithReceiver.kt"); + doTest(fileName); + } + @TestMetadata("DoubleDefine.kt") public void testDoubleDefine() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/regressions/DoubleDefine.kt"); @@ -17311,6 +17518,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("propertyWithExtensionTypeInvoke.kt") + public void testPropertyWithExtensionTypeInvoke() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/regressions/propertyWithExtensionTypeInvoke.kt"); + doTest(fileName); + } + @TestMetadata("resolveSubclassOfList.kt") public void testResolveSubclassOfList() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/regressions/resolveSubclassOfList.kt"); @@ -17553,6 +17766,18 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("dslMarkerOnTypealias.kt") + public void testDslMarkerOnTypealias() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/resolve/dslMarker/dslMarkerOnTypealias.kt"); + doTest(fileName); + } + + @TestMetadata("dslMarkerWithTypealiasRecursion.kt") + public void testDslMarkerWithTypealiasRecursion() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/resolve/dslMarker/dslMarkerWithTypealiasRecursion.kt"); + doTest(fileName); + } + @TestMetadata("inheritedMarker.kt") public void testInheritedMarker() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/resolve/dslMarker/inheritedMarker.kt"); @@ -20200,6 +20425,60 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("compiler/testData/diagnostics/tests/smartCasts/castchecks") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Castchecks extends AbstractDiagnosticsUsingJavacTest { + public void testAllFilesPresentInCastchecks() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/smartCasts/castchecks"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("basicOff.kt") + public void testBasicOff() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/castchecks/basicOff.kt"); + doTest(fileName); + } + + @TestMetadata("basicOn.kt") + public void testBasicOn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/castchecks/basicOn.kt"); + doTest(fileName); + } + + @TestMetadata("insideCall.kt") + public void testInsideCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/castchecks/insideCall.kt"); + doTest(fileName); + } + + @TestMetadata("variables.kt") + public void testVariables() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/castchecks/variables.kt"); + doTest(fileName); + } + } + + @TestMetadata("compiler/testData/diagnostics/tests/smartCasts/elvis") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Elvis extends AbstractDiagnosticsUsingJavacTest { + public void testAllFilesPresentInElvis() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/smartCasts/elvis"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("basicOff.kt") + public void testBasicOff() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/elvis/basicOff.kt"); + doTest(fileName); + } + + @TestMetadata("basicOn.kt") + public void testBasicOn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/elvis/basicOn.kt"); + doTest(fileName); + } + } + @TestMetadata("compiler/testData/diagnostics/tests/smartCasts/inference") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -21189,6 +21468,18 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("capturedInClosureModifiedBefore.kt") + public void testCapturedInClosureModifiedBefore() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/varnotnull/capturedInClosureModifiedBefore.kt"); + doTest(fileName); + } + + @TestMetadata("capturedInClosureOff.kt") + public void testCapturedInClosureOff() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/varnotnull/capturedInClosureOff.kt"); + doTest(fileName); + } + @TestMetadata("doWhileWithBreak.kt") public void testDoWhileWithBreak() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/varnotnull/doWhileWithBreak.kt"); @@ -22295,6 +22586,102 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing } } + @TestMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class TargetedBuiltIns extends AbstractDiagnosticsUsingJavacTest { + public void testAllFilesPresentInTargetedBuiltIns() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/targetedBuiltIns"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("concurrentMapRemove.kt") + public void testConcurrentMapRemove() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/concurrentMapRemove.kt"); + doTest(fileName); + } + + @TestMetadata("forEachRemainingNullability.kt") + public void testForEachRemainingNullability() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/forEachRemainingNullability.kt"); + doTest(fileName); + } + + @TestMetadata("getOrDefault.kt") + public void testGetOrDefault() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/getOrDefault.kt"); + doTest(fileName); + } + + @TestMetadata("mutableMapRemove.kt") + public void testMutableMapRemove() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/mutableMapRemove.kt"); + doTest(fileName); + } + + @TestMetadata("removeIf.kt") + public void testRemoveIf() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/removeIf.kt"); + doTest(fileName); + } + + @TestMetadata("stream.kt") + public void testStream() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/stream.kt"); + doTest(fileName); + } + + @TestMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class BackwardCompatibility extends AbstractDiagnosticsUsingJavacTest { + public void testAllFilesPresentInBackwardCompatibility() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("basic.kt") + public void testBasic() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/basic.kt"); + doTest(fileName); + } + + @TestMetadata("delegation.kt") + public void testDelegation() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/delegation.kt"); + doTest(fileName); + } + + @TestMetadata("derivedInterfaces.kt") + public void testDerivedInterfaces() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/derivedInterfaces.kt"); + doTest(fileName); + } + + @TestMetadata("derivedInterfacesWithKotlinFun.kt") + public void testDerivedInterfacesWithKotlinFun() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/derivedInterfacesWithKotlinFun.kt"); + doTest(fileName); + } + + @TestMetadata("fillInStackTrace.kt") + public void testFillInStackTrace() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/fillInStackTrace.kt"); + doTest(fileName); + } + + @TestMetadata("finalize.kt") + public void testFinalize() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/finalize.kt"); + doTest(fileName); + } + + @TestMetadata("hashMapGetOrDefault.kt") + public void testHashMapGetOrDefault() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/targetedBuiltIns/backwardCompatibility/hashMapGetOrDefault.kt"); + doTest(fileName); + } + } + } + @TestMetadata("compiler/testData/diagnostics/tests/thisAndSuper") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -22783,6 +23170,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("kt19601.kt") + public void testKt19601() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/kt19601.kt"); + doTest(fileName); + } + @TestMetadata("localTypeAlias.kt") public void testLocalTypeAlias() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/localTypeAlias.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/JavacForeignAnnotationsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/JavacForeignAnnotationsTestGenerated.java index 7c7921492f3..f734805e441 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/JavacForeignAnnotationsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/JavacForeignAnnotationsTestGenerated.java @@ -90,6 +90,219 @@ public class JavacForeignAnnotationsTestGenerated extends AbstractJavacForeignAn doTest(fileName); } + @TestMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Jsr305NullabilityWarnings extends AbstractJavacForeignAnnotationsTest { + public void testAllFilesPresentInJsr305NullabilityWarnings() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("jsr305NullabilityGenerics.kt") + public void testJsr305NullabilityGenerics() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/jsr305NullabilityGenerics.kt"); + doTest(fileName); + } + + @TestMetadata("jsr305NullabilityNicknames.kt") + public void testJsr305NullabilityNicknames() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/jsr305NullabilityNicknames.kt"); + doTest(fileName); + } + + @TestMetadata("jsr305Simple.kt") + public void testJsr305Simple() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/jsr305Simple.kt"); + doTest(fileName); + } + + @TestMetadata("jsr305Strange.kt") + public void testJsr305Strange() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/jsr305Strange.kt"); + doTest(fileName); + } + + @TestMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class FromPlatformTypes extends AbstractJavacForeignAnnotationsTest { + public void testAllFilesPresentInFromPlatformTypes() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("arithmetic.kt") + public void testArithmetic() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/arithmetic.kt"); + doTest(fileName); + } + + @TestMetadata("array.kt") + public void testArray() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/array.kt"); + doTest(fileName); + } + + @TestMetadata("assignToVar.kt") + public void testAssignToVar() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/assignToVar.kt"); + doTest(fileName); + } + + @TestMetadata("conditions.kt") + public void testConditions() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/conditions.kt"); + doTest(fileName); + } + + @TestMetadata("dataFlowInfo.kt") + public void testDataFlowInfo() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/dataFlowInfo.kt"); + doTest(fileName); + } + + @TestMetadata("defaultParameters.kt") + public void testDefaultParameters() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/defaultParameters.kt"); + doTest(fileName); + } + + @TestMetadata("delegatedProperties.kt") + public void testDelegatedProperties() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/delegatedProperties.kt"); + doTest(fileName); + } + + @TestMetadata("delegation.kt") + public void testDelegation() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/delegation.kt"); + doTest(fileName); + } + + @TestMetadata("derefenceExtension.kt") + public void testDerefenceExtension() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/derefenceExtension.kt"); + doTest(fileName); + } + + @TestMetadata("derefenceMember.kt") + public void testDerefenceMember() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/derefenceMember.kt"); + doTest(fileName); + } + + @TestMetadata("expectedType.kt") + public void testExpectedType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/expectedType.kt"); + doTest(fileName); + } + + @TestMetadata("for.kt") + public void testFor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/for.kt"); + doTest(fileName); + } + + @TestMetadata("functionArguments.kt") + public void testFunctionArguments() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/functionArguments.kt"); + doTest(fileName); + } + + @TestMetadata("invoke.kt") + public void testInvoke() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/invoke.kt"); + doTest(fileName); + } + + @TestMetadata("kt6829.kt") + public void testKt6829() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/kt6829.kt"); + doTest(fileName); + } + + @TestMetadata("multiDeclaration.kt") + public void testMultiDeclaration() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/multiDeclaration.kt"); + doTest(fileName); + } + + @TestMetadata("passToJava.kt") + public void testPassToJava() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/passToJava.kt"); + doTest(fileName); + } + + @TestMetadata("primitiveArray.kt") + public void testPrimitiveArray() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/primitiveArray.kt"); + doTest(fileName); + } + + @TestMetadata("throw.kt") + public void testThrow() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/throw.kt"); + doTest(fileName); + } + + @TestMetadata("uselessElvisRightIsNull.kt") + public void testUselessElvisRightIsNull() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/fromPlatformTypes/uselessElvisRightIsNull.kt"); + doTest(fileName); + } + } + + @TestMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class TypeQualifierDefault extends AbstractJavacForeignAnnotationsTest { + public void testAllFilesPresentInTypeQualifierDefault() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("fieldsAreNullable.kt") + public void testFieldsAreNullable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/fieldsAreNullable.kt"); + doTest(fileName); + } + + @TestMetadata("nullabilityFromOverridden.kt") + public void testNullabilityFromOverridden() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/nullabilityFromOverridden.kt"); + doTest(fileName); + } + + @TestMetadata("overridingDefaultQualifier.kt") + public void testOverridingDefaultQualifier() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/overridingDefaultQualifier.kt"); + doTest(fileName); + } + + @TestMetadata("parametersAreNonnullByDefault.kt") + public void testParametersAreNonnullByDefault() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefault.kt"); + doTest(fileName); + } + + @TestMetadata("parametersAreNonnullByDefaultPackage.kt") + public void testParametersAreNonnullByDefaultPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.kt"); + doTest(fileName); + } + + @TestMetadata("springNullable.kt") + public void testSpringNullable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullable.kt"); + doTest(fileName); + } + + @TestMetadata("springNullablePackage.kt") + public void testSpringNullablePackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityWarnings/typeQualifierDefault/springNullablePackage.kt"); + doTest(fileName); + } + } + } + @TestMetadata("compiler/testData/foreignAnnotations/tests/typeQualifierDefault") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)