From c20748bf307af3c7a18c170fcde17eaf0aeb534e Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Mon, 29 Jul 2013 20:26:07 -0700 Subject: [PATCH] Bug 45203. Fixed accounting of already processed bindings. --- .../includes/BindingClassifier.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java index cba5e2d688f..818c3a30c45 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java @@ -288,9 +288,17 @@ public class BindingClassifier { } if (canForwardDeclare(requiredBinding)) { - fBindingsToDeclare.add(requiredBinding); + if (requiredBinding == binding) { + fBindingsToDeclare.add(requiredBinding); + } else { + declareBinding(requiredBinding); + } } else { - fBindingsToDefine.add(requiredBinding); + if (requiredBinding == binding) { + fBindingsToDefine.add(requiredBinding); + } else { + defineBinding(requiredBinding); + } } } } @@ -360,7 +368,11 @@ public class BindingClassifier { List requiredBindings = getRequiredBindings(binding); for (IBinding requiredBinding : requiredBindings) { fBindingsToDeclare.remove(requiredBinding); - fBindingsToDefine.add(requiredBinding); + if (requiredBinding == binding) { + fBindingsToDefine.add(requiredBinding); + } else { + defineBinding(requiredBinding); + } } }