From b4d65483edfeb782388b24a5df489a20072af50a Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Sun, 6 Apr 2014 18:23:12 -0400 Subject: [PATCH] Bug 432059 - Fix an "unsafe method call" error Change-Id: I513a922c9ef6a55c33f5767830aabecaba9da396 Signed-off-by: Nathan Ridge Reviewed-on: https://git.eclipse.org/r/24512 Tested-by: Hudson CI Reviewed-by: Sergey Prigogin IP-Clean: Sergey Prigogin Tested-by: Sergey Prigogin --- .../cdt/internal/core/dom/parser/cpp/ClassTypeHelper.java | 5 ++++- .../cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ClassTypeHelper.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ClassTypeHelper.java index bcfcff91e39..a8111ee3ed5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ClassTypeHelper.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ClassTypeHelper.java @@ -354,7 +354,10 @@ public class ClassTypeHelper { } public static ICPPMethod[] getImplicitMethods(ICPPClassType classType, IASTNode point) { - IScope scope = classType.getCompositeScope(); + return getImplicitMethods(classType.getCompositeScope(), point); + } + + public static ICPPMethod[] getImplicitMethods(IScope scope, IASTNode point) { if (scope instanceof ICPPClassSpecializationScope) { return ((ICPPClassSpecializationScope) scope).getImplicitMethods(point); } else if (scope instanceof ICPPClassScope) { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java index 48b114c94db..452733fd3f6 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java @@ -648,7 +648,7 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants { if (type instanceof ICPPClassType) { ArrayUtil.addAll(old, ClassTypeHelper.getImplicitMethods((ICPPClassType) type, point)); } - ICPPMethod[] implicit= ((ICPPClassScope) scope).getImplicitMethods(); + ICPPMethod[] implicit= ClassTypeHelper.getImplicitMethods(scope, point); for (ICPPMethod method : implicit) { if (!(method instanceof IProblemBinding)) { PDOMBinding pdomBinding= adaptBinding(method);