[FIR] Fix determining nullability of arguments during enhancement

This commit is contained in:
Dmitriy Novozhilov
2021-03-09 12:45:31 +03:00
parent 65ea4e184a
commit 932eed2c14
7 changed files with 79 additions and 3 deletions
@@ -0,0 +1,4 @@
FILE: main.kt
public final fun <T> test(executor: R|BuildActionExecuter<T>|, modelType: R|java/lang/Class<T>|, env: R|kotlin/collections/Map<kotlin/String, kotlin/String>|): R|kotlin/Unit| {
lval model: R|ft<BuildActionExecuter<ft<T, T?>!>, BuildActionExecuter<ft<T, T?>!>?>!| = R|<local>/executor|.R|SubstitutionOverride</BuildActionExecuter.setEnvironmentVariables: R|ft<BuildActionExecuter<ft<T, T?>!>, BuildActionExecuter<ft<T, T?>!>?>!|>|(R|<local>/env|)
}
@@ -0,0 +1,26 @@
// FULL_JDK
// FILE: LongRunningOperation.java
import java.util.Map;
import org.jetbrains.annotations.Nullable;
public interface LongRunningOperation {
LongRunningOperation setEnvironmentVariables(@Nullable Map<String, String> envVariables);
}
// FILE: ConfigurableLauncher.java
import java.util.Map;
public interface ConfigurableLauncher<T extends ConfigurableLauncher<T>> extends LongRunningOperation {
@Override
T setEnvironmentVariables(Map<String, String> envVariables);
}
// FILE: BuildActionExecuter.java
public interface BuildActionExecuter<T> extends ConfigurableLauncher<BuildActionExecuter<T>> {}
// FILE: main.kt
fun <T> test(executor: BuildActionExecuter<T>, modelType: Class<T>, env: Map<String, String>) {
val model = executor.setEnvironmentVariables(env)
}