Introduce inspection for unused main parameter #KT-26999 Fixed
This commit is contained in:
@@ -671,8 +671,18 @@ class ControlFlowInformationProvider private constructor(
|
||||
val mainFunctionDetector = MainFunctionDetector(trace.bindingContext, languageVersionSettings)
|
||||
val isMain = owner is KtNamedFunction && mainFunctionDetector.isMain(owner)
|
||||
val functionName = functionDescriptor.name
|
||||
if (isMain && !languageVersionSettings.supportsFeature(LanguageFeature.WarningOnMainUnusedParameter)
|
||||
|| functionDescriptor.isOverridableOrOverrides
|
||||
if (isMain) {
|
||||
when {
|
||||
!languageVersionSettings.supportsFeature(LanguageFeature.ExtendedMainConvention) -> {
|
||||
return
|
||||
}
|
||||
!languageVersionSettings.supportsFeature(LanguageFeature.WarningOnMainUnusedParameter) -> {
|
||||
trace.record(UNUSED_MAIN_PARAMETER, element)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
if (functionDescriptor.isOverridableOrOverrides
|
||||
|| owner.hasModifier(KtTokens.OVERRIDE_KEYWORD)
|
||||
|| OperatorNameConventions.GET_VALUE == functionName
|
||||
|| OperatorNameConventions.SET_VALUE == functionName
|
||||
|
||||
@@ -103,6 +103,7 @@ public interface BindingContext {
|
||||
WritableSlice<KtExpression, DataFlowInfo> DATAFLOW_INFO_AFTER_CONDITION = Slices.createSimpleSlice();
|
||||
WritableSlice<VariableDescriptor, DataFlowValue> BOUND_INITIALIZER_VALUE = Slices.createSimpleSlice();
|
||||
WritableSlice<KtExpression, LeakingThisDescriptor> LEAKING_THIS = Slices.createSimpleSlice();
|
||||
WritableSlice<KtParameter, Boolean> UNUSED_MAIN_PARAMETER = Slices.createSimpleSlice();
|
||||
|
||||
/**
|
||||
* A qualifier corresponds to a receiver expression (if any). For 'A.B' qualifier is recorded for 'A'.
|
||||
|
||||
Reference in New Issue
Block a user