From 8d037108eb0216e178855bb2ba22a09154454ea9 Mon Sep 17 00:00:00 2001 From: Hugo Lima Date: Mon, 8 Feb 2010 09:36:00 -0200 Subject: Fix AbstractMetaFunction::implicitConversions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Public ctors added by the user with 1 value-type parameter are always added to the implicity conversion list. - If the ctor visibility of an function was modified from public to private, the function isn't added to the result. Reviewed by Renato Araújo --- abstractmetalang.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'abstractmetalang.cpp') diff --git a/abstractmetalang.cpp b/abstractmetalang.cpp index 2724d6ce4..94114e3e9 100644 --- a/abstractmetalang.cpp +++ b/abstractmetalang.cpp @@ -1104,13 +1104,14 @@ AbstractMetaFunctionList AbstractMetaClass::implicitConversions() const { AbstractMetaFunctionList list = queryFunctions(Constructors); AbstractMetaFunctionList returned; + if (!hasCloneOperator()) + return returned; foreach (AbstractMetaFunction *f, list) { if ((f->actualMinimumArgumentCount() == 1 || f->arguments().size() == 1) && !f->isExplicit() && !f->isCopyConstructor() && !f->isModifiedRemoved() - && !f->isUserAdded() - && hasCloneOperator()) { + && (f->originalAttributes() & Public)) { returned += f; } } -- cgit v1.2.3