1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 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* inlineFunctionContainerScope* containerScopeconst Span& spanconst boost::uuids::uuid& moduleId);
21 private:
22     BoundCompileUnit& boundCompileUnit;
23     std::unordered_map<FunctionSymbol*FunctionSymbol*> inlineFunctionMap;
24 };
25 
26 } } // namespace cmajor::binder
27 
28 #endif // CMAJOR_BINDER_INLINE_FUNCTION_REPOSITORY_INCLUDED