From 628e0329b259dfd307cd87dd0cf807b06dd04288 Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Sun, 22 Dec 2013 04:01:46 -0500 Subject: [PATCH] Bug 326750 - Field with same name as class Change-Id: I6170ad204506d9eca3a0016930ad6506ba56e9cd Signed-off-by: Nathan Ridge Reviewed-on: https://git.eclipse.org/r/20147 Tested-by: Hudson CI Reviewed-by: Sergey Prigogin IP-Clean: Sergey Prigogin Tested-by: Sergey Prigogin --- .../cdt/core/parser/tests/ast2/AST2CPPTests.java | 12 ++++++++++++ .../internal/core/dom/parser/cpp/CPPClassScope.java | 2 -- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java index 88ebf62b96b..db5ab1a869f 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java @@ -10467,4 +10467,16 @@ public class AST2CPPTests extends AST2TestBase { public void testBuiltInOperatorFunctionType_423396() throws Exception { parseAndCheckBindings(); } + + // struct S { + // int S; + // }; + // void tint(int); + // void test() { + // S s; + // tint(s.S); + // } + public void testFieldWithSameNameAsClass_326750() throws Exception { + parseAndCheckBindings(); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java index 3a11bcc11d2..ac9e42786ef 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java @@ -257,8 +257,6 @@ public class CPPClassScope extends CPPScope implements ICPPClassScope { } //9.2 ... The class-name is also inserted into the scope of the class itself result = ArrayUtil.append(IBinding.class, result, compName.resolveBinding()); - if (!prefixLookup) - return ArrayUtil.trim(IBinding.class, result); } result = ArrayUtil.addAll(IBinding.class, result, super.getBindings(lookup)); return ArrayUtil.trim(IBinding.class, result);