Search in sources :

Example 1 with Stub

use of org.elixir_lang.psi.stub.call.Stub in project intellij-elixir by KronicDeth.

the class ElixirPsiImplUtil method resolvedFinalArity.

@Contract(pure = true)
@NotNull
public static int resolvedFinalArity(@NotNull final org.elixir_lang.psi.call.StubBased<Stub> stubBased) {
    Stub stub = stubBased.getStub();
    Integer resolvedFinalArity;
    if (stub != null) {
        resolvedFinalArity = stub.resolvedFinalArity();
    } else {
        resolvedFinalArity = resolvedFinalArity((Call) stubBased);
    }
    if (resolvedFinalArity == null) {
        resolvedFinalArity = 0;
    }
    return resolvedFinalArity;
}
Also used : BigInteger(java.math.BigInteger) Call(org.elixir_lang.psi.call.Call) CallDefinitionClause.enclosingModularMacroCall(org.elixir_lang.structure_view.element.CallDefinitionClause.enclosingModularMacroCall) Stub(org.elixir_lang.psi.stub.call.Stub) Contract(org.jetbrains.annotations.Contract) NotNull(org.jetbrains.annotations.NotNull)

Example 2 with Stub

use of org.elixir_lang.psi.stub.call.Stub in project intellij-elixir by KronicDeth.

the class ElixirPsiImplUtil method resolvedModuleName.

/**
     * Similar to {@link moduleName}, but takes into account `alias`es and `import`s.
     *
     * @param element
     * @param newName
     * @return
     */
@NotNull
public static String resolvedModuleName(@NotNull final Unqualified unqualified) {
    Call unqualifiedCall = (Call) unqualified;
    Stub stub = null;
    if (unqualifiedCall instanceof org.elixir_lang.psi.call.StubBased) {
        org.elixir_lang.psi.call.StubBased<Stub> unqualifiedNamed = (org.elixir_lang.psi.call.StubBased<Stub>) unqualifiedCall;
        stub = unqualifiedNamed.getStub();
    }
    String resolvedModuleName;
    if (stub != null) {
        resolvedModuleName = stub.resolvedModuleName();
    } else {
        // TODO handle `import`s
        resolvedModuleName = KERNEL;
    }
    //noinspection ConstantConditions
    return resolvedModuleName;
}
Also used : Call(org.elixir_lang.psi.call.Call) CallDefinitionClause.enclosingModularMacroCall(org.elixir_lang.structure_view.element.CallDefinitionClause.enclosingModularMacroCall) org.elixir_lang.psi(org.elixir_lang.psi) com.intellij.psi(com.intellij.psi) Stub(org.elixir_lang.psi.stub.call.Stub) StubBased(org.elixir_lang.psi.call.StubBased) NotNull(org.jetbrains.annotations.NotNull)

Example 3 with Stub

use of org.elixir_lang.psi.stub.call.Stub in project intellij-elixir by KronicDeth.

the class ElixirPsiImplUtil method resolvedFunctionName.

@Contract(pure = true)
@NotNull
public static String resolvedFunctionName(@NotNull final org.elixir_lang.psi.call.StubBased<Stub> stubBased) {
    Stub stub = stubBased.getStub();
    String resolvedFunctionName;
    if (stub != null) {
        resolvedFunctionName = stub.resolvedFunctionName();
    } else {
        resolvedFunctionName = resolvedFunctionName((Call) stubBased);
    }
    //noinspection ConstantConditions
    return resolvedFunctionName;
}
Also used : Call(org.elixir_lang.psi.call.Call) CallDefinitionClause.enclosingModularMacroCall(org.elixir_lang.structure_view.element.CallDefinitionClause.enclosingModularMacroCall) Stub(org.elixir_lang.psi.stub.call.Stub) Contract(org.jetbrains.annotations.Contract) NotNull(org.jetbrains.annotations.NotNull)

Example 4 with Stub

use of org.elixir_lang.psi.stub.call.Stub in project intellij-elixir by KronicDeth.

the class ElixirPsiImplUtil method resolvedFunctionName.

@Nullable
public static String resolvedFunctionName(@NotNull final UnqualifiedNoArgumentsCall<Stub> unqualifiedNoArgumentsCall) {
    Stub stub = unqualifiedNoArgumentsCall.getStub();
    String resolvedFunctionName;
    if (stub != null) {
        resolvedFunctionName = stub.resolvedFunctionName();
    } else {
        // TODO handle `import`s and determine whether actually local variable
        resolvedFunctionName = unqualifiedNoArgumentsCall.functionName();
    }
    return resolvedFunctionName;
}
Also used : Stub(org.elixir_lang.psi.stub.call.Stub) Nullable(org.jetbrains.annotations.Nullable)

Example 5 with Stub

use of org.elixir_lang.psi.stub.call.Stub in project intellij-elixir by KronicDeth.

the class ElixirPsiImplUtil method hasDoBlockOrKeyword.

public static boolean hasDoBlockOrKeyword(@NotNull final StubBased<Stub> stubBased) {
    Stub stub = stubBased.getStub();
    boolean has;
    if (stub != null) {
        has = stub.hasDoBlockOrKeyword();
    } else {
        has = hasDoBlockOrKeyword((Call) stubBased);
    }
    return has;
}
Also used : Call(org.elixir_lang.psi.call.Call) CallDefinitionClause.enclosingModularMacroCall(org.elixir_lang.structure_view.element.CallDefinitionClause.enclosingModularMacroCall) Stub(org.elixir_lang.psi.stub.call.Stub)

Aggregations

Stub (org.elixir_lang.psi.stub.call.Stub)6 Call (org.elixir_lang.psi.call.Call)4 CallDefinitionClause.enclosingModularMacroCall (org.elixir_lang.structure_view.element.CallDefinitionClause.enclosingModularMacroCall)4 NotNull (org.jetbrains.annotations.NotNull)4 com.intellij.psi (com.intellij.psi)2 org.elixir_lang.psi (org.elixir_lang.psi)2 StubBased (org.elixir_lang.psi.call.StubBased)2 Contract (org.jetbrains.annotations.Contract)2 BigInteger (java.math.BigInteger)1 Nullable (org.jetbrains.annotations.Nullable)1