From d11105a29b8b63c32193271276978a43de3b8018 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Fri, 11 Nov 2005 03:21:43 +0000 Subject: [PATCH] Start of Scope2 and cleaned up ASTNode a little. --- .../org/eclipse/cdt/core/dom/ast/IScope2.java | 2 ++ .../internal/core/dom/parser/c/CASTName.java | 24 +++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope2.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope2.java index 947d8ea3f70..f43048be1d3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope2.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope2.java @@ -16,4 +16,6 @@ package org.eclipse.cdt.core.dom.ast; */ public interface IScope2 { + public IBinding getBinding(IASTName name); + } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTName.java index 80d7b969c59..d57e65aacf3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTName.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTName.java @@ -35,21 +35,25 @@ public class CASTName extends CASTNode implements IASTName { this.name = name; } - /** - * - */ public CASTName() { name = EMPTY_CHAR_ARRAY; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTName#resolveBinding() - */ + private static boolean inited = false; + private static boolean useScope2 = false; + public IBinding resolveBinding() { - if (binding == null) - CVisitor.createBinding(this); + if (binding == null) { + if (!inited) { + useScope2 = System.getProperty("doug.useScope2") != null ? true : false; + inited = true; + } + + if (useScope2) + binding = getScope(this, getPropertyInParent()).getBinding(this); + else + CVisitor.createBinding(this); + } return binding; }