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); + } } }