diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/GroovyPsiElementFactory.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/GroovyPsiElementFactory.java index 6b585f1f8f10..76a29cac4bf7 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/GroovyPsiElementFactory.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/GroovyPsiElementFactory.java @@ -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); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/blocks/GrClosableBlock.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/blocks/GrClosableBlock.java index b2e7dc6a1c0c..4038bfc725e3 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/blocks/GrClosableBlock.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/blocks/GrClosableBlock.java @@ -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); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java index b7226da10d49..4889163acc71 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java @@ -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 ourTypesCalculator = new Function() { + private static final Function ourTypesCalculator = new NullableFunction() { public PsiType fun(GrClosableBlock block) { return GroovyPsiManager.inferType(block, new MethodTypeInferencer(block)); }