Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 58699 Details for
Bug 72824
[Content Assist] Content Assist erases code
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
proposed patch
patch72824v1.txt (text/plain), 8.61 KB, created by
Bryan Wilkinson
on 2007-02-09 16:10:10 EST
(
hide
)
Description:
proposed patch
Filename:
MIME Type:
Creator:
Bryan Wilkinson
Created:
2007-02-09 16:10:10 EST
Size:
8.61 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.cdt.core >Index: parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java,v >retrieving revision 1.41 >diff -u -r1.41 PDOMCPPClassType.java >--- parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java 2 Feb 2007 20:49:17 -0000 1.41 >+++ parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassType.java 9 Feb 2007 21:04:04 -0000 >@@ -414,8 +414,7 @@ > } > > public boolean visit(IPDOMNode node) throws CoreException { >- if (node instanceof PDOMNamedNode && node instanceof IBinding >- && !(node instanceof ICPPConstructor)) { >+ if (node instanceof PDOMNamedNode && node instanceof IBinding) { > char[] n= ((PDOMNamedNode) node).getDBName().getChars(); > if ((fPrefixLookup && CharArrayUtils.equals(n, 0, fName.length, fName, false)) > || (!fPrefixLookup && CharArrayUtils.equals(n, fName))) { >Index: parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java,v >retrieving revision 1.117 >diff -u -r1.117 GNUCPPSourceParser.java >--- parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java 6 Feb 2007 15:00:26 -0000 1.117 >+++ parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java 9 Feb 2007 21:04:04 -0000 >@@ -3806,7 +3806,7 @@ > clause > .setPropertyInParent(IASTInitializerList.NESTED_INITIALIZER); > } >- if (LT(1) == IToken.tRBRACE) >+ if (LT(1) == IToken.tRBRACE || LT(1) == IToken.tEOC) > break; > consume(IToken.tCOMMA); > } >Index: parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java,v >retrieving revision 1.38 >diff -u -r1.38 CPPClassScope.java >--- parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java 29 Jan 2007 10:27:45 -0000 1.38 >+++ parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java 9 Feb 2007 21:04:04 -0000 >@@ -315,11 +315,19 @@ > IASTName [] ns = ((ICPPASTQualifiedName)compName).getNames(); > compName = ns[ ns.length - 1 ]; > } >+ >+ IBinding[] results = null; >+ > if((prefixLookup && CharArrayUtils.equals(compName.toCharArray(), 0, n.length, n, false)) > || (!prefixLookup && CharArrayUtils.equals(compName.toCharArray(), n))) { >- return (IBinding[]) ArrayUtil.addAll( IBinding.class, null, getConstructors( bindings, true ) ); >+ results = (IBinding[]) ArrayUtil.addAll( IBinding.class, null, getConstructors( bindings, true ) ); >+ if (!prefixLookup) { >+ return results; >+ } > } >- return super.find( name, prefixLookup ); >+ >+ results = (IBinding[]) ArrayUtil.addAll( IBinding.class, results, super.find( name, prefixLookup )); >+ return results != null ? results : IBinding.EMPTY_BINDING_ARRAY; > } > > public static boolean isConstructorReference( IASTName name ){ >Index: parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java,v >retrieving revision 1.24 >diff -u -r1.24 CPPASTQualifiedName.java >--- parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java 8 Feb 2007 14:02:29 -0000 1.24 >+++ parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java 9 Feb 2007 21:04:04 -0000 >@@ -21,12 +21,14 @@ > import org.eclipse.cdt.core.dom.ast.IASTNameOwner; > import org.eclipse.cdt.core.dom.ast.IASTNode; > import org.eclipse.cdt.core.dom.ast.IBinding; >+import org.eclipse.cdt.core.dom.ast.IEnumerator; > import org.eclipse.cdt.core.dom.ast.IField; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConversionName; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTOperatorName; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType; >+import org.eclipse.cdt.core.dom.ast.cpp.ICPPMember; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPMethod; > import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace; > import org.eclipse.cdt.core.parser.util.ArrayUtil; >@@ -314,44 +316,41 @@ > > private IBinding[] findClassScopeBindings(ICPPClassType classType, > char[] name, boolean isPrefix) { >- List bindings = new ArrayList(); >- >- try { >- IField[] fields = classType.getFields(); >- for (int i = 0; i < fields.length; i++) { >- if (fields[i].isStatic()) { >- char[] potential = fields[i].getNameCharArray(); >- if (nameMatches(potential, name, isPrefix)) { >- bindings.add(fields[i]); >- } >- } >- } >- } catch (DOMException e) { >- } >+ List filtered = new ArrayList(); > > try { >- ICPPMethod[] methods = classType.getDeclaredMethods(); >- for (int i = 0; i < methods.length; i++) { >- char[] potential = methods[i].getNameCharArray(); >+ ICPPClassType[] nested = classType.getNestedClasses(); >+ for (int i = 0; i < nested.length; i++) { >+ char[] potential = nested[i].getNameCharArray(); > if (nameMatches(potential, name, isPrefix)) { >- bindings.add(methods[i]); >+ filtered.add(nested[i]); > } > } > } catch (DOMException e) { > } > > try { >- ICPPClassType[] nested = classType.getNestedClasses(); >- for (int i = 0; i < nested.length; i++) { >- char[] potential = nested[i].getNameCharArray(); >- if (nameMatches(potential, name, isPrefix)) { >- bindings.add(nested[i]); >- } >+ IBinding[] bindings = classType.getCompositeScope().find(new String(name), isPrefix); >+ for (int i = 0; i < bindings.length; i++) { >+ if (bindings[i] instanceof ICPPMember) { >+ ICPPMember member = (ICPPMember) bindings[i]; >+ if (!classType.isSameType(member.getClassOwner())) continue; >+ >+ if (member instanceof IField) { >+ IField field = (IField) member; >+ if (!field.isStatic()) continue; >+ } else if (member instanceof ICPPMethod) { >+ ICPPMethod method = (ICPPMethod) member; >+ if (method.isImplicit()) continue; >+ } >+ } else if (!(bindings[i] instanceof IEnumerator)) continue; >+ >+ filtered.add(bindings[i]); > } >- } catch (DOMException e) { >+ } catch(DOMException e) { > } > >- return (IBinding[]) bindings.toArray(new IBinding[bindings.size()]); >+ return (IBinding[]) filtered.toArray(new IBinding[filtered.size()]); > } > > private IBinding[] findNamespaceScopeBindings(ICPPNamespace namespace, >#P org.eclipse.cdt.ui.tests >Index: ui/org/eclipse/cdt/ui/tests/text/contentassist/ContentAssistTests.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt-core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/ContentAssistTests.java,v >retrieving revision 1.20 >diff -u -r1.20 ContentAssistTests.java >--- ui/org/eclipse/cdt/ui/tests/text/contentassist/ContentAssistTests.java 6 Feb 2007 15:00:24 -0000 1.20 >+++ ui/org/eclipse/cdt/ui/tests/text/contentassist/ContentAssistTests.java 9 Feb 2007 21:04:05 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2004, 2006 IBM Corporation and others. >+ * Copyright (c) 2004, 2007 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -193,7 +193,7 @@ > assertEquals( "veryLongName : int", results[0].getDisplayString() ); //$NON-NLS-1$ > } > >- public void _testBug72824() throws Exception { >+ public void testBug72824() throws Exception { > StringWriter writer = new StringWriter(); > writer.write( "class Strategy { \n"); //$NON-NLS-1$ > writer.write( "public : \n"); //$NON-NLS-1$
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
bjorn.freeman-benson
:
iplog+
Actions:
View
|
Diff
Attachments on
bug 72824
: 58699