diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPImplicitMethod.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPImplicitMethod.java index d6ef1f47f4f..5846785e2b3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPImplicitMethod.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPImplicitMethod.java @@ -28,6 +28,7 @@ import org.eclipse.cdt.core.dom.ast.IScope; import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisiblityLabel; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope; import org.eclipse.cdt.core.parser.util.CharArrayUtils; @@ -92,6 +93,22 @@ public class CPPImplicitMethod extends CPPMethod { return scope; } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.dom.ast.IFunction#getFunctionScope() + */ + public IScope getFunctionScope() { + return null; + } + + public int getVisibility() throws DOMException { + IASTDeclaration decl = getPrimaryDeclaration(); + if( decl == null ) { + //12.1-5, 12.8-10 Implicitl constructors and assignment operators are public + return ICPPASTVisiblityLabel.v_public; + } + return super.getVisibility(); + } + public IBinding resolveParameter( IASTParameterDeclaration param ){ IASTName name = param.getDeclarator().getName(); IParameter binding = (IParameter) name.getBinding();