testData/generator/UtilMethods.PSI.expected.java (101 lines of code) (raw):
// ---- FooTypes.java -----------------
//header.txt
package test;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.PsiElement;
import com.intellij.lang.ASTNode;
import test.stub.FooParserDefinition;
import test.psi.impl.*;
public interface FooTypes {
IElementType ELEMENT_1 = FooParserDefinition.createType("ELEMENT_1");
class Factory {
public static PsiElement createElement(ASTNode node) {
IElementType type = node.getElementType();
if (type == ELEMENT_1) {
return new Element1Impl(node);
}
throw new AssertionError("Unknown element type: " + type);
}
}
}
// ---- Element1.java -----------------
//header.txt
package test.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
import org.intellij.grammar.test.UtilMethods.X;
import org.intellij.grammar.test.UtilMethods.Y;
import org.intellij.grammar.test.UtilMethods.Z;
public interface Element1 extends PsiElement {
<T extends X & Y> void foo0(T p1) throws Z, RuntimeException;
<T> void foo1(T p1);
<T, K> void foo2(T p1, K p2);
<T extends X, K extends Y> void foo3(T p1, K p2);
<@Nls @NonNls T extends @NonNls @Nls X & @Nls @NonNls Y, @Nls @NonNls K> @Nls String foo4(@Nls @NonNls T p1, @Nls @NonNls K p2);
<@Nls @NonNls T, @Nls @NonNls K extends @NonNls @Nls X & @Nls @NonNls Y> @Nls String foo5(@Nls @NonNls T p1, @Nls @NonNls K p2);
@NotNull @Nls List<? super String> @Nullable @Unmodifiable [][] foo6(@NotNull @Nls List<? super String> @Nullable @Unmodifiable [][] p1);
}
// ---- Element1Impl.java -----------------
//header.txt
package test.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import test.psi.MyPsiTreeUtil;
import static test.FooTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import test.psi.*;
import org.intellij.grammar.test.UtilMethods;
import org.intellij.grammar.test.UtilMethods.X;
import org.intellij.grammar.test.UtilMethods.Y;
import org.intellij.grammar.test.UtilMethods.Z;
public class Element1Impl extends ASTWrapperPsiElement implements Element1 {
public Element1Impl(@NotNull ASTNode node) {
super(node);
}
public void accept(@NotNull Visitor visitor) {
visitor.visitElement1(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof Visitor) accept((Visitor)visitor);
else super.accept(visitor);
}
@Override
public <T extends X & Y> void foo0(T p1) throws Z, RuntimeException {
UtilMethods.foo0(this, p1);
}
@Override
public <T> void foo1(T p1) {
UtilMethods.foo1(this, p1);
}
@Override
public <T, K> void foo2(T p1, K p2) {
UtilMethods.foo2(this, p1, p2);
}
@Override
public <T extends X, K extends Y> void foo3(T p1, K p2) {
UtilMethods.foo3(this, p1, p2);
}
@Override
public <@Nls @NonNls T extends @NonNls @Nls X & @Nls @NonNls Y, @Nls @NonNls K> @Nls String foo4(@Nls @NonNls T p1, @Nls @NonNls K p2) {
return UtilMethods.foo4(this, p1, p2);
}
@Override
public <@Nls @NonNls T, @Nls @NonNls K extends @NonNls @Nls X & @Nls @NonNls Y> @Nls String foo5(@Nls @NonNls T p1, @Nls @NonNls K p2) {
return UtilMethods.foo5(this, p1, p2);
}
@Override
public @NotNull @Nls List<? super String> @Nullable @Unmodifiable [][] foo6(@NotNull @Nls List<? super String> @Nullable @Unmodifiable [][] p1) {
return UtilMethods.foo6(this, p1);
}
}
// ---- Visitor.java -----------------
//header.txt
package test.psi;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.PsiElement;
public class Visitor extends PsiElementVisitor {
public void visitElement1(@NotNull Element1 o) {
visitPsiElement(o);
}
public void visitPsiElement(@NotNull PsiElement o) {
visitElement(o);
}
}