diff --git a/colorSchemes/src/colorSchemes/Darcula.xml b/colorSchemes/src/colorSchemes/Darcula.xml
index cfe201f76f99..f7980c907373 100644
--- a/colorSchemes/src/colorSchemes/Darcula.xml
+++ b/colorSchemes/src/colorSchemes/Darcula.xml
@@ -39,7 +39,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -477,6 +507,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2510,7 +2570,7 @@
-
+
@@ -2860,7 +2920,7 @@
-
+
diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java
index 021dc3790fd4..d05766095eb3 100644
--- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java
+++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java
@@ -1305,9 +1305,25 @@ public class HighlightUtil extends HighlightUtilBase {
return HighlightClassUtil.reportIllegalEnclosingUsage(expr, null, aClass, expr);
}
+ if (expr instanceof PsiThisExpression && PsiTreeUtil.getParentOfType(expr, PsiMethod.class) == null) {
+ if (aClass.isInterface()) {
+ return thisNotFoundInInterfaceInfo(expr);
+ }
+
+ if (aClass instanceof PsiAnonymousClass && PsiTreeUtil.isAncestor(((PsiAnonymousClass)aClass).getArgumentList(), expr, true)) {
+ final PsiClass parentClass = PsiTreeUtil.getParentOfType(aClass, PsiClass.class, true);
+ if (parentClass != null && parentClass.isInterface()) {
+ return thisNotFoundInInterfaceInfo(expr);
+ }
+ }
+ }
return null;
}
+ private static HighlightInfo thisNotFoundInInterfaceInfo(PsiExpression expr) {
+ return HighlightInfo.createHighlightInfo(HighlightInfoType.ERROR, expr, "Cannot find symbol variable this");
+ }
+
private static boolean resolvesToImmediateSuperInterface(@NotNull PsiExpression expr,
@Nullable PsiJavaCodeReferenceElement qualifier,
@NotNull PsiClass aClass) {
diff --git a/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java b/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java
index 94af436c4b42..70f44b0645aa 100644
--- a/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java
+++ b/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java
@@ -134,6 +134,7 @@ public class MethodParameterInfoHandler implements ParameterInfoHandlerWithTabAc
for (int i = 0; i < candidates.length; i++) {
CandidateInfo candidate = (CandidateInfo)candidates[i];
PsiMethod method = (PsiMethod)candidate.getElement();
+ if (!method.isValid()) continue;
PsiSubstitutor substitutor = getCandidateInfoSubstitutor(candidate);
assert substitutor != null;
diff --git a/java/java-impl/src/com/intellij/testIntegration/createTest/CreateTestDialog.java b/java/java-impl/src/com/intellij/testIntegration/createTest/CreateTestDialog.java
index d6b34eddeb2c..ac604a13516d 100644
--- a/java/java-impl/src/com/intellij/testIntegration/createTest/CreateTestDialog.java
+++ b/java/java-impl/src/com/intellij/testIntegration/createTest/CreateTestDialog.java
@@ -475,7 +475,10 @@ public class CreateTestDialog extends DialogWrapper {
for (SourceFolder f : e.getSourceFolders()) {
final VirtualFile file = f.getFile();
if (file != null && f.isTestSource()) {
- dirs.add(PsiManager.getInstance(myProject).findDirectory(file));
+ final PsiDirectory dir = PsiManager.getInstance(myProject).findDirectory(file);
+ if (dir != null) {
+ dirs.add(dir);
+ }
}
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ThisInInterface.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ThisInInterface.java
new file mode 100644
index 000000000000..e32d0da7501c
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/ThisInInterface.java
@@ -0,0 +1,8 @@
+class C implements A {
+ C(A a) {}
+}
+
+interface A {
+ A a = new C(this);
+ A a1 = new C(this){};
+}
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java
index 646805fc7031..99b1ebcd6de2 100644
--- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java
@@ -359,4 +359,5 @@ public class LightAdvHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testUnsupportedFeatures() throws Exception { doTest(false, false); }
public void testThisBeforeSuper() throws Exception { doTest(false, false); }
public void testExplicitConstructorInvocation() throws Exception { doTest(false, false); }
+ public void testThisInInterface() throws Exception { doTest(false, false); }
}
diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java
index 9a1ea72d8792..7304517b1f63 100644
--- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java
+++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java
@@ -602,14 +602,14 @@ public class IncProjectBuilder {
onChunkBuildComplete(context, chunk);
- if (doneSomething && GENERATE_CLASSPATH_INDEX) {
- myAsyncTasks.add(SharedThreadPool.getInstance().executeOnPooledThread(new Runnable() {
- @Override
- public void run() {
- createClasspathIndex(chunk);
- }
- }));
- }
+ //if (doneSomething && GENERATE_CLASSPATH_INDEX) {
+ // myAsyncTasks.add(SharedThreadPool.getInstance().executeOnPooledThread(new Runnable() {
+ // @Override
+ // public void run() {
+ // createClasspathIndex(chunk);
+ // }
+ // }));
+ //}
}
catch (ProjectBuildException e) {
throw e;
diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildDataManager.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildDataManager.java
index 75289b8fede0..f2c6def0276e 100644
--- a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildDataManager.java
+++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildDataManager.java
@@ -20,7 +20,7 @@ import java.util.Map;
* Date: 10/7/11
*/
public class BuildDataManager implements StorageOwner {
- private static final int VERSION = 17;
+ private static final int VERSION = 18;
private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.incremental.storage.BuildDataManager");
private static final String SRC_TO_FORM_STORAGE = "src-form";
private static final String MAPPINGS_STORAGE = "mappings";
diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/ArrangementConditionInfo.java b/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/ArrangementRuleInfo.java
similarity index 69%
rename from platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/ArrangementConditionInfo.java
rename to platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/ArrangementRuleInfo.java
index 94b688681af3..d551093e8233 100644
--- a/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/ArrangementConditionInfo.java
+++ b/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/ArrangementRuleInfo.java
@@ -15,10 +15,14 @@
*/
package com.intellij.psi.codeStyle.arrangement;
+import com.intellij.psi.codeStyle.arrangement.match.ArrangementMatchRule;
+import com.intellij.psi.codeStyle.arrangement.match.StdArrangementEntryMatcher;
+import com.intellij.psi.codeStyle.arrangement.match.StdArrangementMatchRule;
import com.intellij.psi.codeStyle.arrangement.model.ArrangementAtomMatchCondition;
import com.intellij.psi.codeStyle.arrangement.model.ArrangementCompositeMatchCondition;
import com.intellij.psi.codeStyle.arrangement.model.ArrangementMatchCondition;
import com.intellij.psi.codeStyle.arrangement.model.ArrangementSettingType;
+import com.intellij.psi.codeStyle.arrangement.order.ArrangementEntryOrderType;
import com.intellij.util.containers.ContainerUtilRt;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -30,11 +34,13 @@ import java.util.Set;
* @author Denis Zhdanov
* @since 10/31/12 12:30 PM
*/
-public class ArrangementConditionInfo {
+public class ArrangementRuleInfo {
@NotNull private final Set myAtomConditions = ContainerUtilRt.newHashSet();
@NotNull private final Set
-
+
@@ -467,6 +467,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -477,6 +507,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2510,7 +2570,7 @@
-
+
@@ -2860,7 +2920,7 @@
-
+