fix stub generator for scripts

This commit is contained in:
Max Medvedev
2012-11-08 14:50:53 +04:00
parent e8e484ce70
commit b667e35b3b
2 changed files with 14 additions and 29 deletions
@@ -40,6 +40,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrRe
import org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement;
import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GroovyScriptClass;
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyConstantExpressionEvaluator;
import org.jetbrains.plugins.groovy.lang.resolve.ast.DelegatedMethod;
@@ -297,7 +298,10 @@ public class StubGenerator implements ClassItemGenerator {
}
methods.add(method);
}
boolean isClass = !typeDefinition.isInterface() && !typeDefinition.isAnnotationType() && !typeDefinition.isEnum();
boolean isClass = !typeDefinition.isInterface() &&
!typeDefinition.isAnnotationType() &&
!typeDefinition.isEnum() &&
!(typeDefinition instanceof GroovyScriptClass);
if (isClass) {
final Collection<MethodSignature> toOverride = OverrideImplementUtil.getMethodSignaturesToOverride(typeDefinition);
for (MethodSignature signature : toOverride) {
@@ -324,20 +328,8 @@ public class StubGenerator implements ClassItemGenerator {
methods.add(mirrorMethod(typeDefinition, resolved, baseClass, signature.getSubstitutor()));
}
/*final PsiElementFactory factory = JavaPsiFacade.getInstance(myProject).getElementFactory();
methods.add(factory.createMethodFromText("public groovy.lang.MetaClass getMetaClass() {}", null));
methods.add(factory.createMethodFromText("public void setMetaClass(groovy.lang.MetaClass mc) {}", null));
methods.add(factory.createMethodFromText("public Object invokeMethod(String name, Object args) {}", null));
methods.add(factory.createMethodFromText("public Object getProperty(String propertyName) {}", null));
methods.add(factory.createMethodFromText("public void setProperty(String propertyName, Object newValue) {}", null));*/
}
/*if (typeDefinition instanceof GrTypeDefinition) {
for (PsiMethod delegatedMethod : GrClassImplUtil.getDelegatedMethods((GrTypeDefinition)typeDefinition)) {
methods.add(delegatedMethod);
}
}*/
return methods;
}
@@ -1,23 +1,16 @@
package org.jetbrains.plugins.groovy.compiler;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiFile;
import org.jetbrains.plugins.groovy.LightGroovyTestCase;
import org.jetbrains.plugins.groovy.refactoring.convertToJava.GroovyToJavaGenerator;
import org.jetbrains.plugins.groovy.util.TestUtils;
import java.util.List;
package org.jetbrains.plugins.groovy.compiler
import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiFile
import org.jetbrains.plugins.groovy.LightGroovyTestCase
import org.jetbrains.plugins.groovy.refactoring.convertToJava.GroovyToJavaGenerator
import org.jetbrains.plugins.groovy.util.TestUtils
/**
* User: Dmitry.Krasilschikov
* Date: 06.06.2007
*/
public class GeneratorTest extends LightGroovyTestCase {
@Override
protected String getBasePath() {
return TestUtils.getTestDataPath() + "groovy/stubGenerator";
}
final String basePath = TestUtils.testDataPath + "groovy/stubGenerator"
public void testArrayType1() throws Throwable { doTest(); }
public void testAtInterface() throws Throwable { doTest(); }
@@ -128,10 +121,10 @@ public class GeneratorTest extends LightGroovyTestCase {
public void doTest() {
final String relTestPath = getTestName(true) + ".test";
final List<String> data = TestUtils.readInput(getTestDataPath() + "/" + relTestPath);
final List<String> data = TestUtils.readInput("$testDataPath/$relTestPath");
final String testName = StringUtil.trimEnd(relTestPath, ".test");
PsiFile psiFile = TestUtils.createPseudoPhysicalFile(getProject(), testName + ".groovy", data.get(0));
PsiFile psiFile = TestUtils.createPseudoPhysicalFile(project, testName + ".groovy", data.get(0));
final StringBuilder builder = GroovyToJavaGenerator.generateStubs(psiFile);
assertEquals(data.get(1).trim(), builder.toString().trim());