void FunctionAnalyzer::visitClass(const ClassDefPtr& node) { SymbolScope* scope = symbolRegistry->getCurrentScope(); SymbolPtr sym = scope->getForwardDeclaration(node->getIdentifier()->getName()); TypePtr type = static_pointer_cast<Type>(sym); ScopeGuard guard(symbolRegistry, type->getScope()); SCOPED_SET(ctx->currentType, type); semanticAnalyzer->visitImplementation(node, this, true); }