1
2
3
4
5
6 #ifndef CMAJOR_BINDER_INLINE_FUNCTION_REPOSITORY_INCLUDED
7 #define CMAJOR_BINDER_INLINE_FUNCTION_REPOSITORY_INCLUDED
8 #include <cmajor/symbols/FunctionSymbol.hpp>
9
10 namespace cmajor { namespace binder {
11
12 using namespace cmajor::symbols;
13
14 class BoundCompileUnit;
15
16 class InlineFunctionRepository
17 {
18 public:
19 InlineFunctionRepository(BoundCompileUnit& boundCompileUnit_);
20 FunctionSymbol* Instantiate(FunctionSymbol* inlineFunction, ContainerScope* containerScope, const Span& span, const boost::uuids::uuid& moduleId);
21 private:
22 BoundCompileUnit& boundCompileUnit;
23 std::unordered_map<FunctionSymbol*, FunctionSymbol*> inlineFunctionMap;
24 };
25
26 } }
27
28 #endif // CMAJOR_BINDER_INLINE_FUNCTION_REPOSITORY_INCLUDED