Package com.intellij.psi

Examples of com.intellij.psi.PsiReference.resolve()


          // do not check external expressions
          return;
        }
        else if (element instanceof BnfRefOrTokenImpl) {
          PsiReference reference = element.getReference();
          Object resolve = reference == null ? null : reference.resolve();
          final String text = element.getText();
          if (resolve == null && !tokens.contains(text) && isTokenTextSuspicious(text)) {
            problemsHolder.registerProblem(element, "'"+text+"' token looks like a reference to a missing rule", new CreateRuleFromTokenFix(text));
          }
        }
View Full Code Here


        assertCorrectUsageOf(def);
        for (PsiElement element : refSet) {
            PsiReference reference = element.getContainingFile().findReferenceAt(element.getTextOffset());
            assertNotNull(reference);
            PsiElement resolve = reference.resolve();
            assertNotNull(resolve);
            assertEquals(def.getTextOffset(), resolve.getNavigationElement().getTextOffset());
        }
    }
View Full Code Here

    PsiReference ref1 = element1.getReference();
    if (ref1 != null) {
      PsiReference ref2 = element2.getReference();
      if (ref2 == null) return false;
      PsiElement resolved1 = ref1.resolve();
      PsiElement resolved2 = ref2.resolve();
      if (!Comparing.equal(resolved1, resolved2)
          && (resolvedElementsComparator == null || resolvedElementsComparator.compare(resolved1, resolved2) != 0)) return false;
    }
    return true;
View Full Code Here

    @Override
    public void visitElement(PsiElement element) {
      if (element instanceof ErlangQVar) {
        PsiReference reference = element.getReference();
        PsiElement resolve = reference != null ? reference.resolve() : null;
        if (resolve instanceof ErlangNamedElement) {
          myComponentNames.add((ErlangNamedElement) resolve);
        }
        else {
          myComponentNames.add((ErlangNamedElement) element);
View Full Code Here

  }

  @NotNull
  private PsiFile getPsiFile() {
    PsiReference reference = myModuleRef != null ? myModuleRef.getReference() : null;
    PsiElement resolve = reference != null ? reference.resolve() : null;
    PsiFile moduleRefContainingFile = resolve != null ? resolve.getContainingFile() : null;
    return moduleRefContainingFile != null ? moduleRefContainingFile : myElement.getContainingFile();
  }

  @NotNull
View Full Code Here

        ErlangFunctionCallExpression erlFunctionCall = erlGlobalFunctionCall.getFunctionCallExpression();
        String functionName = erlFunctionCall.getName();
        int arity = erlFunctionCall.getArgumentList().getExpressionList().size();
        if (ErlangBifTable.isBif(moduleName, functionName, arity)) {
          PsiReference psiReference = moduleRef.getReference();
          PsiElement tentativeErlangModule = psiReference != null ? psiReference.resolve() : null;
          if (tentativeErlangModule instanceof ErlangModule) {
            VirtualFile virtualFile = getVirtualFile(tentativeErlangModule);
            if (virtualFile != null) {
              return new ErlangSdkFunctionDocProvider(project, functionName, arity, virtualFile);
            }
View Full Code Here

    List<Pair<String, String >> namesAndNames = new LinkedList<Pair<String, String>>();

    for (ErlangBehaviour behaviour : file.getBehaviours()) {
      ErlangModuleRef moduleRef = behaviour.getModuleRef();
      PsiReference reference = moduleRef != null ? moduleRef.getReference() : null;
      PsiElement resolve = reference != null ? reference.resolve() : null;

      if (resolve instanceof ErlangModule) {
        PsiFile containingFile = resolve.getContainingFile();
        if (containingFile instanceof ErlangFile) {
          Map<String, ErlangCallbackSpec> callbackMap = ((ErlangFile) containingFile).getCallbackMap();
View Full Code Here

    for (ErlangSpecification spec : file.getSpecifications()) {
      //supported functions without modules only for now
      ErlangFunTypeSigs signature = spec.getSignature();
      if (signature != null) {
        PsiReference reference = signature.getReference();
        if (reference != null && reference.resolve() == null) {
          problemsHolder.registerProblem(spec, "Specification for undefined function '" + signature.getSpecFun().getText() + "'");
        }
      }
    }
  }
View Full Code Here

                                             @NotNull LocalInspectionToolSession session) {
    return new ErlangVisitor() {
      @Override
      public void visitFunctionCallExpression(@NotNull ErlangFunctionCallExpression o) {
        PsiReference reference = o.getReference();
        if (reference instanceof ErlangFunctionReferenceImpl && reference.resolve() == null) {
          if (o.getQAtom().getMacros() != null) return;
          ErlangFunctionReferenceImpl r = (ErlangFunctionReferenceImpl) reference;

          String name = r.getName();
          int arity = r.getArity();
View Full Code Here

        inspect(o, o.getQAtom(), o.getReference());
      }

      private void inspect(PsiElement what, ErlangQAtom target, @Nullable PsiReference reference) {
        if (PsiTreeUtil.getParentOfType(what, ErlangCallbackSpec.class) != null || target.getMacros() != null ||
          !(reference instanceof ErlangFunctionReferenceImpl) || reference.resolve() != null) {
          return;
        }

        ErlangFunctionReferenceImpl r = (ErlangFunctionReferenceImpl) reference;
        if (r.getArity() < 0) return; //there is no need to inspect incomplete/erroneous code
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.