From f0302cdffee3a34fdd8818d48efcf8b8a6b78ac3 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 27 Apr 2017 15:45:14 +0300 Subject: [PATCH] workarounds to make compilable with groovy 2.5 and jdk9 compiler --- .../impl/test/TestStubHierarchyAction.java | 2 +- .../codeInspection/ex/QuickFixAction.java | 2 +- .../ui/InspectionResultsView.java | 2 +- .../application/impl/ApplicationImplTest.java | 11 ++++------- .../impl/FileDocumentManagerImplTest.java | 2 +- .../vfs/impl/VirtualFilePointerTest.java | 2 +- .../groovy/dsl/toplevel/scopes/Scope.groovy | 18 +++++++++++++----- .../groovy/compiler/DebuggerMethods.groovy | 8 +++++--- .../compiler/GroovyResourceCheckerTest.groovy | 8 +++++--- .../groovy/lang/GroovyLiveTemplatesTest.groovy | 4 ++-- 10 files changed, 34 insertions(+), 25 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/stubsHierarchy/impl/test/TestStubHierarchyAction.java b/java/java-impl/src/com/intellij/psi/stubsHierarchy/impl/test/TestStubHierarchyAction.java index d5af5482bd4f..bc2b0c8f350a 100644 --- a/java/java-impl/src/com/intellij/psi/stubsHierarchy/impl/test/TestStubHierarchyAction.java +++ b/java/java-impl/src/com/intellij/psi/stubsHierarchy/impl/test/TestStubHierarchyAction.java @@ -51,7 +51,7 @@ public class TestStubHierarchyAction extends InheritanceAction { public void actionPerformed(AnActionEvent e) { final Project project = e.getData(CommonDataKeys.PROJECT); if (project != null) { - ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> ReadAction.run(new TestHierarchy(project)::run), + ProgressManager.getInstance().runProcessWithProgressSynchronously((Runnable)() -> ReadAction.run(new TestHierarchy(project)::run), "Testing Hierarchy", true, project); } } diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ex/QuickFixAction.java b/platform/lang-impl/src/com/intellij/codeInspection/ex/QuickFixAction.java index 194a5750ce29..a6ab45081f6b 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ex/QuickFixAction.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ex/QuickFixAction.java @@ -121,7 +121,7 @@ public class QuickFixAction extends AnAction implements CustomComponentAction { try { Ref descriptors = Ref.create(); Set readOnlyFiles = new THashSet<>(); - if (!ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> ReadAction.run(() -> { + if (!ProgressManager.getInstance().runProcessWithProgressSynchronously((Runnable)() -> ReadAction.run(() -> { final ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator(); indicator.setText("Checking problem descriptors..."); descriptors.set(tree.getSelectedDescriptors(true, readOnlyFiles, false, false)); diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java index 730c94678c28..25accd099333 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java @@ -718,7 +718,7 @@ public class InspectionResultsView extends JPanel implements Disposable, Occuren } public void addProblemDescriptors(InspectionToolWrapper wrapper, RefEntity refElement, CommonProblemDescriptor[] descriptors) { - myTreeUpdater.submit(() -> ReadAction.run(() -> { + myTreeUpdater.submit((Runnable)() -> ReadAction.run(() -> { if (!isDisposed()) { ApplicationManager.getApplication().assertReadAccessAllowed(); synchronized (myTreeStructureUpdateLock) { diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/ApplicationImplTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/ApplicationImplTest.java index d1039b6cf87a..220aa520d447 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/ApplicationImplTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/ApplicationImplTest.java @@ -30,10 +30,7 @@ import com.intellij.openapi.util.EmptyRunnable; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.ThrowableComputable; import com.intellij.testFramework.*; -import com.intellij.util.ArrayUtil; -import com.intellij.util.ConcurrencyUtil; -import com.intellij.util.ExceptionUtil; -import com.intellij.util.TimeoutUtil; +import com.intellij.util.*; import com.intellij.util.concurrency.Semaphore; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.UIUtil; @@ -576,14 +573,14 @@ public class ApplicationImplTest extends LightPlatformTestCase { log.add("write started"); app.executeSuspendingWriteAction(ourProject, "", () -> { app.invokeAndWait(() -> - futures.add(app.executeOnPooledThread(() -> ReadAction.run(() -> log.add("foreign read"))))); + futures.add(app.executeOnPooledThread((Runnable)() -> ReadAction.run((ThrowableRunnable)() -> log.add("foreign read"))))); mayStartForeignRead.up(); TimeoutUtil.sleep(50); ReadAction.run(() -> log.add("progress read")); app.invokeAndWait(() -> WriteAction.run(() -> log.add("nested write"))); - waitForFuture(app.executeOnPooledThread(() -> ReadAction.run(() -> log.add("forked read")))); + waitForFuture(app.executeOnPooledThread((Runnable)() -> ReadAction.run((ThrowableRunnable)() -> log.add("forked read")))); }); log.add("write finished"); }); @@ -610,7 +607,7 @@ public class ApplicationImplTest extends LightPlatformTestCase { assertTrue(app.hasWriteAction(actionClass)); app.executeSuspendingWriteAction(ourProject, "", () -> ReadAction.run(() -> { assertTrue(app.hasWriteAction(actionClass)); - waitForFuture(app.executeOnPooledThread(() -> ReadAction.run(() -> assertTrue(app.hasWriteAction(actionClass))))); + waitForFuture(app.executeOnPooledThread((Runnable)() -> ReadAction.run((ThrowableRunnable)() -> assertTrue(app.hasWriteAction(actionClass))))); })); }); } diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImplTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImplTest.java index 279202495e38..06bba218d7cd 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImplTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImplTest.java @@ -663,7 +663,7 @@ public class FileDocumentManagerImplTest extends PlatformTestCase { for (VirtualFile file : files) { assertNull(fdm.getCachedDocument(file)); for (int i = 0; i < 30; i++) { - futures.add(ApplicationManager.getApplication().executeOnPooledThread(() -> ReadAction.run(() -> { + futures.add(ApplicationManager.getApplication().executeOnPooledThread((Runnable)() -> ReadAction.run(() -> { Document document = fdm.getDocument(file); assertEquals(file, fdm.getFile(document)); }))); diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/vfs/impl/VirtualFilePointerTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/vfs/impl/VirtualFilePointerTest.java index 211fe67ed447..414deaf4cc3f 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/vfs/impl/VirtualFilePointerTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/vfs/impl/VirtualFilePointerTest.java @@ -983,7 +983,7 @@ public class VirtualFilePointerTest extends PlatformTestCase { LOG.info("i = " + i); assertTrue(file.createNewFile()); refreshVFS(); - Future future = ApplicationManager.getApplication().executeOnPooledThread(() -> ReadAction.run(() -> { + Future future = ApplicationManager.getApplication().executeOnPooledThread((Runnable)() -> ReadAction.run(() -> { for (int k=0;k<100;k++) { vTemp.getChildren(); } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dsl/toplevel/scopes/Scope.groovy b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dsl/toplevel/scopes/Scope.groovy index ecb8a9d0c49d..3af9fc2cd71a 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dsl/toplevel/scopes/Scope.groovy +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dsl/toplevel/scopes/Scope.groovy @@ -15,6 +15,9 @@ */ package org.jetbrains.plugins.groovy.dsl.toplevel.scopes +import com.intellij.patterns.ElementPattern +import com.intellij.patterns.PsiClassPattern +import com.intellij.patterns.PsiJavaPatterns import com.intellij.psi.SyntheticElement import groovy.transform.CompileStatic import org.jetbrains.plugins.groovy.dsl.toplevel.* @@ -24,12 +27,10 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrCall import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames import static com.intellij.patterns.PlatformPatterns.* -import static com.intellij.patterns.PsiJavaPatterns.psiClass import static com.intellij.patterns.StandardPatterns.* import static org.jetbrains.plugins.groovy.lang.psi.patterns.GrAnnotationPattern.annotation import static org.jetbrains.plugins.groovy.lang.psi.patterns.GroovyPatterns.groovyScript import static org.jetbrains.plugins.groovy.lang.psi.patterns.GroovyPatterns.methodCall - /** * @author ilyas */ @@ -51,8 +52,8 @@ class ClassScope extends Scope { if (namePattern) { def match = string().matches(namePattern) result << new PlaceContextFilter(psiElement().inside(or( - psiClass().withQualifiedName(match), - psiClass().withName(match)) + PsiJavaPatterns.psiClass().withQualifiedName(match), + PsiJavaPatterns.psiClass().withName(match)) )) } return result @@ -137,12 +138,19 @@ class ScriptScope extends Scope { // Process unqualified references only if (!args.ctype) { - result << ClassContextFilter.fromClassPattern(psiClass().and(instanceOf(SyntheticElement))) + ElementPattern synt = instanceOf(SyntheticElement) + + PsiClassPattern psiClass = PsiJavaPatterns.psiClass() + ElementPattern pattern = doAnd(psiClass, synt) + result << ClassContextFilter.fromClassPattern(pattern) } return result } + private PsiClassPattern doAnd(PsiClassPattern psiClass, ElementPattern synt) { + psiClass.and(synt) + } } @CompileStatic diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/DebuggerMethods.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/DebuggerMethods.groovy index 9c800081dc04..0988fbadc884 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/DebuggerMethods.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/DebuggerMethods.groovy @@ -25,6 +25,7 @@ import com.intellij.debugger.engine.evaluation.CodeFragmentKind import com.intellij.debugger.engine.evaluation.EvaluateException import com.intellij.debugger.engine.evaluation.EvaluationContextImpl import com.intellij.debugger.engine.evaluation.TextWithImportsImpl +import com.intellij.debugger.engine.events.DebuggerCommandImpl import com.intellij.debugger.engine.events.DebuggerContextCommandImpl import com.intellij.debugger.impl.DebuggerContextImpl import com.intellij.debugger.impl.DebuggerContextUtil @@ -108,9 +109,10 @@ trait DebuggerMethods extends CompilerMethods { semaphore.down() def process = debugProcess // wait for all events processed - process.managerThread.schedule { - semaphore.up() - } + DebuggerCommandImpl cl = { + semaphore.up() + } + process.managerThread.schedule cl def finished = semaphore.waitFor(ourTimeout) assert finished: 'Too long debugger actions' diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyResourceCheckerTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyResourceCheckerTest.groovy index 649349f65b90..84ee7ea16bff 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyResourceCheckerTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyResourceCheckerTest.groovy @@ -23,7 +23,9 @@ import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.roots.ModuleRootModificationUtil import com.intellij.testFramework.PsiTestUtil import groovy.transform.CompileStatic +import org.jetbrains.jps.model.java.JavaResourceRootProperties import org.jetbrains.jps.model.java.JavaResourceRootType +import org.jetbrains.jps.model.module.JpsModuleSourceRootType /** * @author peter */ @@ -35,7 +37,7 @@ class GroovyResourceCheckerTest extends GroovyCompilerTestCase { PsiTestUtil.removeAllRoots(myModule, ModuleRootManager.getInstance(myModule).sdk) addGroovyLibrary(myModule) PsiTestUtil.addSourceRoot(myModule, myFixture.tempDirFixture.findOrCreateDir('src')) - PsiTestUtil.addSourceRoot(myModule, myFixture.tempDirFixture.findOrCreateDir('res'), JavaResourceRootType.RESOURCE) + PsiTestUtil.addSourceRoot(myModule, myFixture.tempDirFixture.findOrCreateDir('res'), (JpsModuleSourceRootType)JavaResourceRootType.RESOURCE) } private List checkResources() { @@ -58,7 +60,7 @@ class GroovyResourceCheckerTest extends GroovyCompilerTestCase { ModuleRootModificationUtil.addDependency(myModule, depModule) addGroovyLibrary(depModule) PsiTestUtil.addSourceRoot(depModule, myFixture.tempDirFixture.findOrCreateDir('dependent/src')) - PsiTestUtil.addSourceRoot(depModule, myFixture.tempDirFixture.findOrCreateDir('dependent/res'), JavaResourceRootType.RESOURCE) + PsiTestUtil.addSourceRoot(depModule, myFixture.tempDirFixture.findOrCreateDir('dependent/res'), (JpsModuleSourceRootType)JavaResourceRootType.RESOURCE) myFixture.addFileToProject('src/a.groovy', 'class SrcClass {}') myFixture.addFileToProject('res/b.groovy', 'interface ThisResource {}') @@ -81,7 +83,7 @@ class GroovyResourceCheckerTest extends GroovyCompilerTestCase { Module depModule = addModule("dependent", false) ModuleRootModificationUtil.addDependency(depModule, myModule) addGroovyLibrary(depModule) - PsiTestUtil.addSourceRoot(depModule, myFixture.tempDirFixture.findOrCreateDir('dependent/res'), JavaResourceRootType.RESOURCE) + PsiTestUtil.addSourceRoot(depModule, myFixture.tempDirFixture.findOrCreateDir('dependent/res'), (JpsModuleSourceRootType)JavaResourceRootType.RESOURCE) myFixture.addFileToProject('res/Util.groovy', '@groovy.transform.CompileStatic class C1 {{ println Xxx1.name }}') myFixture.addFileToProject('dependent/res/Usage.groovy', '@groovy.transform.CompileStatic class C2 {{ println Xxx2.name }}') diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyLiveTemplatesTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyLiveTemplatesTest.groovy index 48487dfc01e7..43721a78f6f2 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyLiveTemplatesTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyLiveTemplatesTest.groovy @@ -28,7 +28,7 @@ import org.jetbrains.plugins.groovy.util.TestUtils /** * @author peter */ -class GroovyLiveTemplatesTest extends LightCodeInsightFixtureTestCase { +public class GroovyLiveTemplatesTest extends LightCodeInsightFixtureTestCase { @Override protected String getBasePath() { return TestUtils.getTestDataPath() + "liveTemplates/" @@ -66,7 +66,7 @@ void usage(int num, boolean someBoolean, List args){ ''' } - static void expandTemplate(final Editor editor) { + public static void expandTemplate(final Editor editor) { new ListTemplatesAction().actionPerformedImpl(editor.getProject(), editor) ((LookupImpl)LookupManager.getActiveLookup(editor)).finishLookup(Lookup.NORMAL_SELECT_CHAR) }