diff options
Diffstat (limited to 'abstractmetalang.cpp')
-rw-r--r-- | abstractmetalang.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
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<CodeSnip>::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())) { |