Modules | Files | Inheritance Tree | Inheritance Graph | Name Index | Config
module Synopsis::Linker::Unduplicator
class Unduplicator
Files: Synopsis/Linker/Unduplicator.py
Unduplicator-inheritance

Visitor that removes duplicate declarations


Operations Summary:
 __init__(self) [Source]
 execute(self, ast) [Source]
 lookup(self, name)
look whether the current scope already contains a declaration with the given name [Source]
 append(self, declaration)
append declaration to the current scope [Source]
 push(self, scope)
push new scope on the stack [Source]
 pop(self)
restore the previous scope [Source]
 top(self) [Source]
 top_dict(self) [Source]
 linkType(self, type)
Returns the same or new proxy type [Source]
 visitBaseType(self, type) [Source]
 visitUnknown(self, type) [Source]
 visitDeclared(self, type) [Source]
 visitTemplate(self, type) [Source]
 visitModifier(self, type) [Source]
 visitArray(self, type) [Source]
 visitParametrized(self, type) [Source]
 visitFunctionType(self, type) [Source]
 visitSourceFile(self, file)
Resolves any duplicates in the list of declarations from this file [Source]
 visitModule(self, module) [Source]
 merge_comments(self, dest, src)
Merges the src comments into dest. [Source]
 visitMetaModule(self, module) [Source]
 addDeclaration(self, decl)
Adds a declaration to the current (top) scope. [Source]
 visitNamed(self, decl) [Source]
 visitFunction(self, func) [Source]
 visitVariable(self, var) [Source]
 visitTypedef(self, tdef) [Source]
 visitClass(self, clas) [Source]
 visitInheritance(self, parent) [Source]
 visitParameter(self, param) [Source]
 visitConst(self, const) [Source]

Operation Details:
  merge_comments(self, dest, src)

Merges the src comments into dest. Merge is just an append, unless src already exists inside dest!


  addDeclaration(self, decl)

Adds a declaration to the current (top) scope. If there is already a Forward declaration, then this replaces it unless this is also a Forward.