[Frontend] Make DiagnosticSuppressor a project-level extension
Originally it was an application-level component, which caused non-trivial
logic and cognitive load to carefully handle those extensions to avoid
memory leaks.
6740a596 introduced a way to easily register `DiagnosticSuppressor` to
project, and this commit continues this work, making it a proper
project-level extension
A lot of changes caused by the fact, that this extension is needed to be
obtained from `BindingContext` (see `BindingContextSuppressCache` and
its usages), so almost all changes are introducing `Project` to
`BindingContext`
^KT-66449 Fixed
This commit is contained in:
committed by
Space Team
parent
a552238874
commit
d352cc9d96
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.cfg.pseudocode;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.cfg.ControlFlowProcessor;
|
||||
@@ -95,6 +96,12 @@ public class PseudocodeUtil {
|
||||
public boolean wantsDiagnostics() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Project getProject() {
|
||||
return bindingContext.getProject();
|
||||
}
|
||||
};
|
||||
return new ControlFlowProcessor(mockTrace, languageVersionSettings).generatePseudocode(declaration);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user