mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Fix for 199598: [content assist] enumeration missing from proposals in qualified name (Patch by Ed Swartz)
This commit is contained in:
parent
da553be6cd
commit
f767541c12
3 changed files with 19 additions and 5 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2004, 2007 IBM Corporation and others.
|
* Copyright (c) 2004, 2008 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -23,6 +23,7 @@ import org.eclipse.cdt.core.dom.ast.IASTNode;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
||||||
import org.eclipse.cdt.core.dom.ast.IBinding;
|
import org.eclipse.cdt.core.dom.ast.IBinding;
|
||||||
import org.eclipse.cdt.core.dom.ast.IEnumerator;
|
import org.eclipse.cdt.core.dom.ast.IEnumerator;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IEnumeration;
|
||||||
import org.eclipse.cdt.core.dom.ast.IField;
|
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.ICPPASTConversionName;
|
||||||
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTOperatorName;
|
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTOperatorName;
|
||||||
|
@ -301,7 +302,7 @@ public class CPPASTQualifiedName extends CPPASTNode implements
|
||||||
} else if (bindings[i] instanceof ICPPClassType) {
|
} else if (bindings[i] instanceof ICPPClassType) {
|
||||||
ICPPClassType type = (ICPPClassType) bindings[i];
|
ICPPClassType type = (ICPPClassType) bindings[i];
|
||||||
if (type.isSameType(classType)) continue;
|
if (type.isSameType(classType)) continue;
|
||||||
} else if (!(bindings[i] instanceof IEnumerator) || isDeclaration) {
|
} else if (!(bindings[i] instanceof IEnumerator || bindings[i] instanceof IEnumeration) || isDeclaration) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2004, 2007 IBM Corporation and others.
|
* Copyright (c) 2004, 2008 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -221,10 +221,13 @@ public class ContentAssistTests extends BaseUITestCase {
|
||||||
cu = importFile( "strategy.cpp", c2 ); //$NON-NLS-1$
|
cu = importFile( "strategy.cpp", c2 ); //$NON-NLS-1$
|
||||||
|
|
||||||
results = getResults( cu, c2.indexOf( "::" ) + 2 ); //$NON-NLS-1$
|
results = getResults( cu, c2.indexOf( "::" ) + 2 ); //$NON-NLS-1$
|
||||||
assertEquals( 3, results.length );
|
assertEquals( 4, results.length );
|
||||||
assertEquals( "CHEAT", results[0].getDisplayString() ); //$NON-NLS-1$
|
assertEquals( "CHEAT", results[0].getDisplayString() ); //$NON-NLS-1$
|
||||||
assertEquals( "IDIOT", results[1].getDisplayString() ); //$NON-NLS-1$
|
assertEquals( "IDIOT", results[1].getDisplayString() ); //$NON-NLS-1$
|
||||||
assertEquals( "NORMAL", results[2].getDisplayString() ); //$NON-NLS-1$
|
assertEquals( "NORMAL", results[2].getDisplayString() ); //$NON-NLS-1$
|
||||||
|
// "_Ability" is here due to fix for bug 199598
|
||||||
|
// Difficult to differentiate between declaration and expression context
|
||||||
|
assertEquals( "_Ability", results[3].getDisplayString() ); //$NON-NLS-1$
|
||||||
|
|
||||||
// in a method definition context, constructors and methods should be proposed
|
// in a method definition context, constructors and methods should be proposed
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2006, 2007 Wind River Systems, Inc. and others.
|
* Copyright (c) 2006, 2008 Wind River Systems, Inc. and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -885,6 +885,16 @@ public class CompletionTests extends AbstractContentAssistTest {
|
||||||
assertCompletionResults(fCursorOffset, expected, AbstractContentAssistTest.COMPARE_REP_STRINGS);
|
assertCompletionResults(fCursorOffset, expected, AbstractContentAssistTest.COMPARE_REP_STRINGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// void test() {
|
||||||
|
// C1::/*cursor*/
|
||||||
|
public void testEnumInClass_bug199598() throws Exception {
|
||||||
|
// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=199598
|
||||||
|
final String[] expected= {
|
||||||
|
"E2", "e21", "e22"
|
||||||
|
};
|
||||||
|
assertCompletionResults(fCursorOffset, expected, AbstractContentAssistTest.COMPARE_ID_STRINGS);
|
||||||
|
}
|
||||||
|
|
||||||
// class Union/*cursor*/
|
// class Union/*cursor*/
|
||||||
public void testElaboratedTypeSpecifierNotClass2_bug208710() throws Exception {
|
public void testElaboratedTypeSpecifierNotClass2_bug208710() throws Exception {
|
||||||
final String[] expected= new String[0];
|
final String[] expected= new String[0];
|
||||||
|
|
Loading…
Add table
Reference in a new issue