Make single-file classes tolerant to having many main()'s

This commit is contained in:
Michael Nedzelsky
2015-10-15 00:26:37 +03:00
parent 416dda95ce
commit 890ae3e914
22 changed files with 186 additions and 13 deletions
@@ -135,4 +135,9 @@ public val JetFile.javaFileFacadeFqName: FqName
else JvmFileClassUtil.getFileClassInfoNoResolve(this).facadeClassFqName
CachedValueProvider.Result(facadeFqName, this)
}
}
}
public fun JetDeclaration.isInsideJvmMultifileClassFile() = JvmFileClassUtil.findAnnotationEntryOnFileNoResolve(
getContainingJetFile(),
JvmFileClassUtil.JVM_MULTIFILE_CLASS_SHORT
) != null
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
import org.jetbrains.kotlin.fileClasses.isInsideJvmMultifileClassFile
import org.jetbrains.kotlin.psi.JetDeclaration
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.DeclarationChecker
@@ -74,11 +75,6 @@ class JvmFieldApplicabilityChecker : DeclarationChecker {
diagnosticHolder.report(ErrorsJvm.INAPPLICABLE_JVM_FIELD.on(annotationEntry, problem.errorMessage))
}
private fun JetDeclaration.isInsideJvmMultifileClassFile() = JvmFileClassUtil.findAnnotationEntryOnFileNoResolve(
getContainingJetFile(),
JvmFileClassUtil.JVM_MULTIFILE_CLASS_SHORT
) != null
private fun PropertyDescriptor.hasCustomAccessor()
= !(getter?.isDefault ?: true) || !(setter?.isDefault ?: true)