Line | Branch | Exec | Source |
---|---|---|---|
1 | // Copyright (c) 2021-2025 ChilliBits. All rights reserved. | ||
2 | |||
3 | #include "ScopeHandle.h" | ||
4 | |||
5 | #include "CompilerPass.h" | ||
6 | #include <ast/ASTNodes.h> | ||
7 | #include <irgenerator/IRGenerator.h> | ||
8 | #include <symboltablebuilder/Scope.h> | ||
9 | |||
10 | namespace spice::compiler { | ||
11 | |||
12 | 8045 | ScopeHandle::ScopeHandle(CompilerPass *pass, Scope *childScope, const ScopeType &scopeType) | |
13 | 16090 | : DeferredLogic([=]() { pass->changeToParentScope(scopeType); }) { | |
14 |
1/2✓ Branch 0 (5→6) taken 8045 times.
✗ Branch 1 (5→7) not taken.
|
8045 | pass->changeToScope(childScope, scopeType); |
15 | 8045 | } | |
16 | |||
17 | 8005 | ScopeHandle::ScopeHandle(CompilerPass *pass, const std::string &childScopeId, const ScopeType &scopeType) | |
18 | 8005 | : ScopeHandle(pass, pass->currentScope->getChildScope(childScopeId), scopeType) {} | |
19 | |||
20 | 7316 | ScopeHandle::ScopeHandle(IRGenerator *generator, Scope *childScope, const ScopeType &scopeType, const ASTNode *node) | |
21 | 21948 | : DeferredLogic([=]() { | |
22 | 7316 | generator->changeToParentScope(scopeType); | |
23 | 7316 | generator->diGenerator.popLexicalBlock(); | |
24 | 7316 | }) { | |
25 |
1/2✗ Branch 0 (5→6) not taken.
✓ Branch 1 (5→7) taken 7316 times.
|
7316 | assert(scopeType != ScopeType::FUNC_PROC_BODY); // Functions/procedures manage scopes manually |
26 |
1/2✓ Branch 0 (7→8) taken 7316 times.
✗ Branch 1 (7→10) not taken.
|
7316 | generator->changeToScope(childScope, scopeType); |
27 |
1/2✓ Branch 0 (8→9) taken 7316 times.
✗ Branch 1 (8→10) not taken.
|
7316 | generator->diGenerator.pushLexicalBlock(node); |
28 | 7316 | } | |
29 | |||
30 | 7316 | ScopeHandle::ScopeHandle(IRGenerator *generator, const std::string &childScopeId, const ScopeType &scopeType, const ASTNode *node) | |
31 | 7316 | : ScopeHandle(generator, generator->currentScope->getChildScope(childScopeId), scopeType, node) {} | |
32 | |||
33 | } // namespace spice::compiler | ||
34 |