package org.elixir_lang.psi.call.arguments.star;
import com.intellij.psi.PsiElement;
import org.elixir_lang.psi.call.Call;
import org.elixir_lang.psi.call.arguments.None;
import org.elixir_lang.psi.call.arguments.Star;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* A call with no parentheses around the arguments
*
* {@code <...> noParenthesesOneArgument}
*/
public interface NoParentheses extends Star {
/**
* Unlike with a base {@link Call}, {@link NoParentheses#primaryArguments} are {@code @NotNull} because the first
* set of arguments has to be there or it would be a {@link None}
*/
@Contract(pure = true)
@Override
@NotNull
PsiElement[] primaryArguments();
/**
* @return Always {@code null} because without parentheses, there is no way to separate sets of arguments.
*/
@Contract(pure = true, value = "-> null")
@Override
@Nullable
PsiElement[] secondaryArguments();
}