Minor. Parametrize MainFunctionDetector with LanguageVersionSettings
This commit is contained in:
@@ -668,7 +668,7 @@ class ControlFlowInformationProvider private constructor(
|
||||
if (anonymous && !languageVersionSettings.supportsFeature(LanguageFeature.SingleUnderscoreForParameterName)) {
|
||||
return
|
||||
}
|
||||
val mainFunctionDetector = MainFunctionDetector(trace.bindingContext)
|
||||
val mainFunctionDetector = MainFunctionDetector(trace.bindingContext, languageVersionSettings)
|
||||
val isMain = owner is KtNamedFunction && mainFunctionDetector.isMain(owner)
|
||||
val functionName = functionDescriptor.name
|
||||
if (isMain
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.idea
|
||||
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
@@ -31,17 +32,20 @@ import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
class MainFunctionDetector {
|
||||
private val getFunctionDescriptor: (KtNamedFunction) -> FunctionDescriptor?
|
||||
private val languageVersionSettings: LanguageVersionSettings
|
||||
|
||||
/** Assumes that the function declaration is already resolved and the descriptor can be found in the `bindingContext`. */
|
||||
constructor(bindingContext: BindingContext) {
|
||||
constructor(bindingContext: BindingContext, languageVersionSettings: LanguageVersionSettings) {
|
||||
this.getFunctionDescriptor = { function ->
|
||||
bindingContext.get(BindingContext.FUNCTION, function)
|
||||
?: throw IllegalStateException("No descriptor resolved for " + function + " " + function.text)
|
||||
}
|
||||
this.languageVersionSettings = languageVersionSettings
|
||||
}
|
||||
|
||||
constructor(functionResolver: (KtNamedFunction) -> FunctionDescriptor?) {
|
||||
constructor(languageVersionSettings: LanguageVersionSettings, functionResolver: (KtNamedFunction) -> FunctionDescriptor?) {
|
||||
this.getFunctionDescriptor = functionResolver
|
||||
this.languageVersionSettings = languageVersionSettings
|
||||
}
|
||||
|
||||
fun hasMain(declarations: List<KtDeclaration>): Boolean {
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.resolve
|
||||
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.diagnostics.reportOnDeclaration
|
||||
@@ -31,10 +32,11 @@ import java.util.*
|
||||
class OverloadResolver(
|
||||
private val trace: BindingTrace,
|
||||
private val overloadFilter: OverloadFilter,
|
||||
private val overloadChecker: OverloadChecker
|
||||
private val overloadChecker: OverloadChecker,
|
||||
languageVersionSettings: LanguageVersionSettings
|
||||
) {
|
||||
|
||||
private val mainFunctionDetector = MainFunctionDetector(trace.bindingContext)
|
||||
private val mainFunctionDetector = MainFunctionDetector(trace.bindingContext, languageVersionSettings)
|
||||
|
||||
fun checkOverloads(c: BodiesResolveContext) {
|
||||
val inClasses = findConstructorsInNestedClassesAndTypeAliases(c)
|
||||
|
||||
Reference in New Issue
Block a user