[FIR] Don't create DNN types for flexible simple types

^KT-50788
This commit is contained in:
Dmitriy Novozhilov
2022-01-18 10:42:05 +03:00
committed by TeamCityServer
parent ceb744b53b
commit 5fc1e2e0cb
8 changed files with 79 additions and 13 deletions
@@ -0,0 +1,4 @@
FILE: main.kt
public final fun getExcludedDirs(project: R|Project|, excludedProjects: R|kotlin/collections/List<Project>|): R|kotlin/collections/List<java/io/File>| {
^getExcludedDirs R|<local>/project|.R|/Project.plugins|.R|/PluginContainer.findPlugin|<R|ft<IdeaPlugin, IdeaPlugin?>|>(<getClass>(Q|IdeaPlugin|).R|kotlin/jvm/java|<R|IdeaPlugin|>)?.{ $subj$.R|/IdeaPlugin.excludeDirs| }?.{ $subj$.R|kotlin/collections/toList|<R|ft<java/io/File, java/io/File?>|>() } ?: R|kotlin/collections/emptyList|<R|java/io/File|>()
}
@@ -0,0 +1,37 @@
// WITH_STDLIB
// FULL_JDK
// FILE: Plugin.java
public interface Plugin {}
// FILE: IdeaPlugin.java
import java.io.File
import java.util.Set
public interface IdeaPlugin extends Plugin {
Set<File> getExcludeDirs()
}
// FILE: PluginContainer.java
import javax.annotation.Nullable
public interface PluginContainer {
@Nullable
<T extends Plugin> T findPlugin(Class<T> type);
}
// FILE: Project.java
public interface Project {
PluginContainer getPlugins();
Project getRootProject();
File getBuildDir();
}
// FILE: main.kt
import java.io.File
fun getExcludedDirs(project: Project, excludedProjects: List<Project>): List<File> {
return project.plugins.findPlugin(IdeaPlugin::class.java)?.excludeDirs?.toList() ?: emptyList()
}