diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/gnu/c/GCCLanguage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/gnu/c/GCCLanguage.java index 1b5b57e2a01..581fd8c0805 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/gnu/c/GCCLanguage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/gnu/c/GCCLanguage.java @@ -49,10 +49,10 @@ public class GCCLanguage extends AbstractCLikeLanguage { } @Override - @SuppressWarnings("rawtypes") - public Object getAdapter(Class adapter) { - if (adapter == IPDOMLinkageFactory.class) { - return new PDOMCLinkageFactory(); + @SuppressWarnings("unchecked") + public T getAdapter(Class adapter) { + if (adapter.isAssignableFrom(IPDOMLinkageFactory.class)) { + return (T) new PDOMCLinkageFactory(); } return super.getAdapter(adapter); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/gnu/cpp/GPPLanguage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/gnu/cpp/GPPLanguage.java index 8db04ebf060..9e10667b4f8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/gnu/cpp/GPPLanguage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/gnu/cpp/GPPLanguage.java @@ -53,10 +53,10 @@ public class GPPLanguage extends AbstractCLikeLanguage { } @Override - @SuppressWarnings("rawtypes") - public Object getAdapter(Class adapter) { - if (adapter == IPDOMLinkageFactory.class) { - return new PDOMCPPLinkageFactory(); + @SuppressWarnings("unchecked") + public T getAdapter(Class adapter) { + if (adapter.isAssignableFrom(IPDOMLinkageFactory.class)) { + return (T) new PDOMCPPLinkageFactory(); } return super.getAdapter(adapter); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/AbstractCLikeLanguage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/AbstractCLikeLanguage.java index d572e73149e..de179dbc5fa 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/AbstractCLikeLanguage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/AbstractCLikeLanguage.java @@ -313,10 +313,10 @@ public abstract class AbstractCLikeLanguage extends AbstractLanguage implements } @Override - @SuppressWarnings("rawtypes") - public Object getAdapter(Class adapter) { - if (ICLanguageKeywords.class.equals(adapter)) - return getCLanguageKeywords(); + @SuppressWarnings("unchecked") + public T getAdapter(Class adapter) { + if (adapter.isAssignableFrom(ICLanguageKeywords.class)) + return (T) getCLanguageKeywords(); return super.getAdapter(adapter); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/CPPTypedefClone.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/CPPTypedefClone.java index 4f3428d02ba..bf69f18a61f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/CPPTypedefClone.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/CPPTypedefClone.java @@ -61,8 +61,7 @@ public class CPPTypedefClone implements ITypedef, ITypeContainer, IIndexType, IC } @Override - @SuppressWarnings("rawtypes") - public Object getAdapter(Class adapter) { + public T getAdapter(Class adapter) { return delegate.getAdapter(adapter); }