mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-23 17:05:26 +02:00
Bug 462348 - Follow-up to handle nested classes properly
Change-Id: Ia9103237a55ded5e0cacc1a31798da737fe0c8cc Signed-off-by: Nathan Ridge <zeratul976@hotmail.com>
This commit is contained in:
parent
198b722894
commit
2710dbd206
2 changed files with 19 additions and 3 deletions
|
@ -8771,7 +8771,21 @@ public class AST2TemplateTests extends AST2TestBase {
|
|||
//
|
||||
// using type = TypeTemplate<Size_tTemplate<packSize()>>;
|
||||
// };
|
||||
public void testAmbiguityResolutionOrder_462348() throws Exception {
|
||||
public void testAmbiguityResolutionOrder_462348a() throws Exception {
|
||||
parseAndCheckBindings();
|
||||
}
|
||||
|
||||
// template <typename> struct TypeTemplate {};
|
||||
// template <int> struct Size_tTemplate {};
|
||||
//
|
||||
// template <typename... ParameterPack> struct Test {
|
||||
// static constexpr int packSize() { return sizeof...(ParameterPack); }
|
||||
//
|
||||
// struct nested {
|
||||
// using type = TypeTemplate<Size_tTemplate<packSize()>>;
|
||||
// };
|
||||
// };
|
||||
public void testAmbiguityResolutionOrder_462348b() throws Exception {
|
||||
parseAndCheckBindings();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ package org.eclipse.cdt.internal.core.dom.parser.cpp;
|
|||
import java.util.ArrayDeque;
|
||||
import java.util.Deque;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.ASTNodeProperty;
|
||||
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
|
||||
|
@ -223,8 +224,9 @@ final class CPPASTAmbiguityResolver extends ASTVisitor {
|
|||
* If 'node' has been deferred for later processing, process it now.
|
||||
*/
|
||||
public void resolvePendingAmbiguities(IASTNode node) {
|
||||
if (!fDeferredNodes.isEmpty()) {
|
||||
Deque<IASTNode> deferred = fDeferredNodes.getLast();
|
||||
Iterator<Deque<IASTNode>> iterator = fDeferredNodes.descendingIterator();
|
||||
while (iterator.hasNext()) {
|
||||
Deque<IASTNode> deferred = iterator.next();
|
||||
for (IASTNode deferredNode : deferred) {
|
||||
if (deferredNode == node) {
|
||||
int deferFunctions = fDeferFunctions;
|
||||
|
|
Loading…
Add table
Reference in a new issue