From e0a5b65fd9213f77eabf95fcd25b591e3d7966c0 Mon Sep 17 00:00:00 2001 From: Hugo Lima Date: Fri, 30 Oct 2009 18:29:19 -0200 Subject: Added convenience method AbstractMetaFunction::injectedCodeSnips. It returns all code snips in a function. --- abstractmetalang.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'abstractmetalang.cpp') diff --git a/abstractmetalang.cpp b/abstractmetalang.cpp index 351abea06..68f6adec9 100644 --- a/abstractmetalang.cpp +++ b/abstractmetalang.cpp @@ -697,6 +697,21 @@ bool AbstractMetaFunction::hasInjectedCode() const return false; } +CodeSnipList AbstractMetaFunction::injectedCodeSnips(CodeSnip::Position position, TypeSystem::Language language) const +{ + CodeSnipList result; + foreach (const FunctionModification mod, modifications(ownerClass())) { + if (mod.isCodeInjection()) { + QList::const_iterator it = mod.snips.constBegin(); + for (;it != mod.snips.constEnd(); ++it) { + if ((it->language & language) && (it->position == position || position == CodeSnip::Any)) + result << *it; + } + } + } + return result; +} + bool AbstractMetaFunction::hasSignatureModifications() const { foreach (const FunctionModification mod, modifications(ownerClass())) { -- cgit v1.2.3