diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-09-01 13:35:40 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-09 19:10:09 -0300 |
commit | 2d170a0b8b1519befc4cdad57a0a46ccf8d16e0a (patch) | |
tree | bd7b63fd5bc1385412f4dea1f3a10cd5a17f599a /abstractmetalang.cpp | |
parent | 869b35c10ef573771532c6f2cb017dbfab315e61 (diff) |
Fixed function modification propagation.
Now all modifications on base function will be propagate until a new modification was found.
Reviewer: Hugo Parente Lima <hugo.pl@gmail.com>
Lauro Moura <lauro.neto@openbossa.org>
Diffstat (limited to 'abstractmetalang.cpp')
-rw-r--r-- | abstractmetalang.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/abstractmetalang.cpp b/abstractmetalang.cpp index fe6c6b372..da48a315f 100644 --- a/abstractmetalang.cpp +++ b/abstractmetalang.cpp @@ -690,8 +690,9 @@ FunctionModificationList AbstractMetaFunction::modifications(const AbstractMetaC FunctionModificationList mods; while (implementor) { mods += implementor->typeEntry()->functionModifications(minimalSignature()); - if (implementor == implementor->baseClass() || implementor == implementingClass()) - break; + if ((implementor == implementor->baseClass()) || + (implementor == implementingClass() && (mods.size() > 0))) + break; implementor = implementor->baseClass(); } return mods; |