This commit is contained in:
Maxim Medvedev
2011-04-29 17:57:16 +04:00
parent 429258ab9b
commit 8a4c2dab1e
3 changed files with 11 additions and 7 deletions
@@ -110,7 +110,7 @@ public abstract class GroovyPsiElementFactory {
public abstract GrVariableDeclaration createFieldDeclaration(String[] modifiers, String identifier, GrExpression initializer, PsiType type);
public abstract GrVariableDeclaration createFieldDeclarationFromText(String text);
public abstract GrVariableDeclaration createVariableDeclaration(String[] modifiers, @Nullable GrExpression initializer, PsiType type, String... identifiers);
public abstract GrVariableDeclaration createVariableDeclaration(@Nullable String[] modifiers, @Nullable GrExpression initializer, PsiType type, String... identifiers);
public abstract GrEnumConstant createEnumConstantFromText(String text);
@@ -18,6 +18,7 @@ package org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrParametersOwner;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
@@ -33,6 +34,7 @@ public interface GrClosableBlock extends GrExpression, GrCodeBlock, GrParameters
String OWNER_NAME = "owner";
String IT_PARAMETER_NAME = "it";
@NotNull
GrParameterList getParameterList();
void addParameter(GrParameter parameter);
@@ -23,6 +23,7 @@ import com.intellij.psi.tree.IElementType;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.Function;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.NullableFunction;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes;
@@ -118,10 +119,7 @@ public class GrClosableBlockImpl extends GrBlockImpl implements GrClosableBlock
public GrParameter[] getParameters() {
if (hasParametersSection()) {
GrParameterListImpl parameterList = getParameterList();
if (parameterList != null) {
return parameterList.getParameters();
}
return parameterList.getParameters();
}
return GrParameter.EMPTY_ARRAY;
@@ -138,8 +136,12 @@ public class GrClosableBlockImpl extends GrBlockImpl implements GrClosableBlock
return findPsiChildByType(GroovyTokenTypes.mCLOSABLE_BLOCK_OP);
}
@NotNull
public GrParameterListImpl getParameterList() {
return findChildByClass(GrParameterListImpl.class);
final GrParameterListImpl childByClass = findChildByClass(GrParameterListImpl.class);
assert childByClass != null;
return childByClass;
}
public void addParameter(GrParameter parameter) {
@@ -212,7 +214,7 @@ public class GrClosableBlockImpl extends GrBlockImpl implements GrClosableBlock
return PsiImplUtil.replaceExpression(this, newExpr, removeUnnecessaryParentheses);
}
private static final Function<GrClosableBlock, PsiType> ourTypesCalculator = new Function<GrClosableBlock, PsiType>() {
private static final Function<GrClosableBlock, PsiType> ourTypesCalculator = new NullableFunction<GrClosableBlock, PsiType>() {
public PsiType fun(GrClosableBlock block) {
return GroovyPsiManager.inferType(block, new MethodTypeInferencer(block));
}