package org.elixir_lang.psi.call.arguments.star; import com.intellij.psi.PsiElement; import org.elixir_lang.psi.ElixirMatchedParenthesesArguments; import org.elixir_lang.psi.call.Call; import org.elixir_lang.psi.call.arguments.Star; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; /** * A call with one or two sets of parentheses containing arguments inside a {@code matchedParenthesesArguments} * * {@code <...> matchedParenthesesArguments} */ public interface Parentheses extends Star { @Contract(pure = true) @NotNull ElixirMatchedParenthesesArguments getMatchedParenthesesArguments(); /** * Unlike with a base {@link Call}, {@link Parentheses#primaryArguments} are {@code @NotNull} because the first set * of parentheses has to be there or it wouldn't be a {@link Parentheses} */ @Contract(pure = true) @Override @NotNull PsiElement[] primaryArguments(); }