diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/ClassInnerStuffCache.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/ClassInnerStuffCache.java index 544925856a52..b770f5839835 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/ClassInnerStuffCache.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/ClassInnerStuffCache.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -139,11 +139,8 @@ public class ClassInnerStuffCache { @Nullable @Override public Result compute() { - PsiElementFactory factory = JavaPsiFacade.getInstance(myClass.getProject()).getElementFactory(); String text = "public static " + myClass.getName() + "[] values() { }"; - PsiMethod physicalMethod = factory.createMethodFromText(text, myClass); - PsiMethod method = new LightMethod(myClass.getManager(), physicalMethod, myClass); - return new Result(method, OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTracker); + return new Result(getSyntheticMethod(text), OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTracker); } }); } @@ -154,11 +151,8 @@ public class ClassInnerStuffCache { @Nullable @Override public Result compute() { - PsiElementFactory factory = JavaPsiFacade.getInstance(myClass.getProject()).getElementFactory(); String text = "public static " + myClass.getName() + " valueOf(java.lang.String name) throws java.lang.IllegalArgumentException { }"; - PsiMethod physicalMethod = factory.createMethodFromText(text, myClass); - PsiMethod method = new LightMethod(myClass.getManager(), physicalMethod, myClass); - return new Result(method, OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTracker); + return new Result(getSyntheticMethod(text), OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTracker); } }); } @@ -236,6 +230,12 @@ public class ClassInnerStuffCache { return cachedInners; } + private PsiMethod getSyntheticMethod(String text) { + PsiElementFactory factory = JavaPsiFacade.getInstance(myClass.getProject()).getElementFactory(); + PsiMethod method = factory.createMethodFromText(text, myClass); + return new LightMethod(myClass.getManager(), method, myClass); + } + public void dropCaches() { myTracker.incModificationCount(); }