Preliminary declaration visitor: do not create if already exists

This commit is contained in:
Mikhail Glukhikh
2015-10-28 19:21:53 +03:00
parent 44e56c4b93
commit 932985f0c1
@@ -43,10 +43,9 @@ class PreliminaryDeclarationVisitor(val declaration: KtDeclaration): AssignedVar
fun createForDeclaration(declaration: KtDeclaration, trace: BindingTrace) {
// TODO: find top-most declaration (but not class!!!)
// TODO: check if already exists
val visitor = PreliminaryDeclarationVisitor(declaration)
if (trace.get(BindingContext.PRELIMINARY_VISITOR, declaration) != null) return
// Can this declaration be synthetic? If yes, it would be better not to record it
trace.record(BindingContext.PRELIMINARY_VISITOR, declaration, visitor);
trace.record(BindingContext.PRELIMINARY_VISITOR, declaration, PreliminaryDeclarationVisitor(declaration));
}
fun getVisitorByVariable(variableDescriptor: VariableDescriptor, bindingContext: BindingContext): PreliminaryDeclarationVisitor? {