private CsmFunction getFunctionDeclaration(CsmFunctionDefinition fd){ if (resolver.isRecursionOnResolving(Resolver3.INFINITE_RECURSION)) { return null; } return fd.getDeclaration(); }
private CsmFunction _getFunctionDeclaration(CsmFunction fun) { assert (fun != null) : "must be not null"; CsmFunction funDecl = fun; if (CsmKindUtilities.isFunctionDefinition(funDecl)) { funDecl = ((CsmFunctionDefinition) funDecl).getDeclaration(); } return funDecl; }
private CsmFunction initDeclaration() { if (CsmKindUtilities.isFunctionDefinition(function)) { CsmFunction f = ((CsmFunctionDefinition) function).getDeclaration(); if (f != null) { return f; } } return function; }
@Override public CsmFunction getDeclaration() { if (CsmKindUtilities.isFunctionDefinition(declaration)) { return ((CsmFunctionDefinition)declaration).getDeclaration(); } return this; } }
private CsmFunction getFunctionDeclaration(CsmFunction definition){ if (definition != null) { if (CsmKindUtilities.isFunctionDefinition(definition)) { return ((CsmFunctionDefinition)definition).getDeclaration(); } } return definition; }
private List<CsmFunction> filterFunctionDefinitions(List funs) { List<CsmFunction> out = new ArrayList<CsmFunction>(); if (funs != null && funs.size() > 0) { for (Iterator it = funs.iterator(); it.hasNext();) { CsmObject fun = (CsmObject) it.next(); if (!CsmKindUtilities.isFunctionDefinition(fun) || ((CsmFunctionDefinition) fun).getDeclaration() == fun) { out.add((CsmFunction) fun); } } } return out; }
CsmFunction fun = def.getDeclaration(); if (fun != null && fun != decl){ PersistentKey funKey = PersistentKey.createKey(fun);
private boolean updateFunction(CsmOffsetableDeclaration decl){ if (CsmKindUtilities.isFunctionDeclaration(decl)) { // try to find definition and remove definition from view CsmFunction fun = (CsmFunction) decl; CsmFunctionDefinition def = fun.getDefinition(); if (def != null && def != decl){ PersistentKey defKey = PersistentKey.createKey(def); if (myKeys.containsKey(defKey)) { myKeys.remove(defKey); myChanges.remove(defKey); childrenUpdater.unregister(myProject,defKey); update = true; return true; } } } else if (CsmKindUtilities.isFunctionDefinition(decl)) { // try to find declaration and remove definition from view CsmFunctionDefinition def = (CsmFunctionDefinition) decl; CsmFunction fun = def.getDeclaration(); if (fun != null && fun != decl){ PersistentKey funKey = PersistentKey.createKey(fun); if (myKeys.containsKey(funKey)) { return removeDeclaration(decl); } } } return false; }
private void removeFunctionDefinition(final CsmOffsetableDeclaration decl) { CsmFunctionDefinition def = (CsmFunctionDefinition) decl; CsmFunction fun = def.getDeclaration(); if (fun != null && fun != decl){ CsmFile file = fun.getContainingFile(); if (file != null && file.isValid()){ CsmOffsetableDeclaration other = (CsmOffsetableDeclaration) file.getProject().findDeclaration(fun.getUniqueName()); if (other != null) { PersistentKey otherKey = PersistentKey.createKey(other); if (!myKeys.containsKey(otherKey)) { myKeys.put(otherKey,getSortedName(other)); myChanges.remove(otherKey); return; } } } } CsmFile file = def.getContainingFile(); if (file != null && file.isValid()){ CsmOffsetableDeclaration other = (CsmOffsetableDeclaration) file.getProject().findDeclaration(def.getUniqueName()); if (other != null) { PersistentKey otherKey = PersistentKey.createKey(other); if (!myKeys.containsKey(otherKey)) { myKeys.put(otherKey,getSortedName(other)); myChanges.remove(otherKey); } } } }
if (friendDecl.equals(((CsmFunctionDefinition)ref).getDeclaration())){ return true;
private boolean isInDeclaration(CsmFunction func, CsmFile csmFile, int offset) { CsmFunctionDefinition def; CsmFunction decl; if (CsmKindUtilities.isFunctionDefinition(func)) { def = (CsmFunctionDefinition) func; decl = def.getDeclaration(); } else { decl = func; def = func.getDefinition(); } if (def != null) { if (csmFile.equals(def.getContainingFile()) && (def.getStartOffset() <= offset && offset <= def.getBody().getStartOffset())) { return true; } } if (decl != null) { // just declaration if (csmFile.equals(decl.getContainingFile()) && (decl.getStartOffset() <= offset && offset <= decl.getEndOffset())) { return true; } } return false; }
CsmObject scope; if (CsmKindUtilities.isFunctionDefinition(decl)){ CsmFunction func = ((CsmFunctionDefinition)decl).getDeclaration(); if (func != null){ decl = func;
d.getKind() == CsmDeclaration.Kind.FUNCTION_FRIEND_DEFINITION)) { CsmFunctionDefinition def = (CsmFunctionDefinition) d; CsmFunction func = def.getDeclaration(); if (func != null) { d = func;
private void visitDeclarations(Set<CsmClass> classes, Collection<CsmOffsetableDeclaration> decls, final int caretOffset) { for(CsmOffsetableDeclaration decl : decls) { if (!isApplicable) { return; } if (CsmKindUtilities.isNamespaceDefinition(decl)) { if (decl.getStartOffset() <= caretOffset && caretOffset <= decl.getEndOffset()) { visitDeclarations(classes, ((CsmNamespaceDefinition)decl).getDeclarations(), caretOffset); } } else { if (decl.getStartOffset() <= caretOffset && caretOffset <= decl.getEndOffset()) { isApplicable = false; } if (CsmKindUtilities.isMethodDefinition(decl)) { CsmFunction declaration = ((CsmFunctionDefinition)decl).getDeclaration(); if (CsmKindUtilities.isFunctionDeclaration(declaration) && CsmKindUtilities.isClassMember(declaration)) { CsmMember method = (CsmMember) declaration; CsmClass cls = method.getContainingClass(); if (cls != null) { classes.add(cls); } } } } } }
d.getKind() == CsmDeclaration.Kind.FUNCTION_FRIEND_DEFINITION) { CsmFunctionDefinition definition = (CsmFunctionDefinition) d; CsmFunction func = definition.getDeclaration(); if( func == null || func == definition ) { return true;
offset <= definition.getBody().getStartOffset())) { if (definition.getDeclaration() != null) { item = definition.getDeclaration(); } else if (csmObject.equals(definition)) { item = (CsmOffsetable) csmObject; offset <= definition.getBody().getStartOffset())) { if (definition.getDeclaration() != null) { item = definition.getDeclaration(); } else { item = definition;
CsmFunction decl = null; if (CsmKindUtilities.isFunctionDefinition(csmObject)) { decl = ((CsmFunctionDefinition) csmObject).getDeclaration(); } else if (CsmKindUtilities.isFriendMethod(csmObject)) { decl = ((CsmFriendFunction) csmObject).getReferencedFunction();
d.getKind() == CsmDeclaration.Kind.FUNCTION_FRIEND_DEFINITION) { CsmFunctionDefinition definition = (CsmFunctionDefinition) d; CsmFunction func = definition.getDeclaration(); if( func == null || func == definition ) { return new GlobalFuncNode(definition);
} else if (CsmKindUtilities.isFunctionDefinition(obj)) { CsmFunctionDefinition fun = (CsmFunctionDefinition) obj; CsmFunction decl = fun.getDeclaration(); if (CsmKindUtilities.isClassMember(decl)) { mod |= CsmUtilities.getMemberModifiers((CsmMember) decl);