@@ -105,11 +105,7 @@ class SwiftDispatcher {
105105 return *l;
106106 }
107107 waitingForNewLabel = e;
108- if constexpr (std::is_pointer_v<E>) {
109- visit (*e, std::forward<Args>(args)...);
110- } else {
111- visit (e, std::forward<Args>(args)...);
112- }
108+ visit (e, std::forward<Args>(args)...);
113109 // TODO when everything is moved to structured C++ classes, this should be moved to createEntry
114110 if (auto l = store.get (e)) {
115111 if constexpr (IsLocatable<E>) {
@@ -332,18 +328,15 @@ class SwiftDispatcher {
332328 return ret;
333329 }
334330
335- // TODO: for const correctness these should consistently be `const` (and maybe const references
336- // as we don't expect `nullptr` here. However `swift::ASTVisitor` and `swift::TypeVisitor` do not
337- // accept const pointers
338- virtual void visit (const swift::Decl& decl) = 0;
339- virtual void visit (const swift::Stmt& stmt) = 0;
340- virtual void visit (const swift::StmtCondition& cond) = 0;
341- virtual void visit (const swift::StmtConditionElement& cond) = 0;
342- virtual void visit (const swift::CaseLabelItem& item) = 0;
343- virtual void visit (const swift::Expr& expr) = 0;
344- virtual void visit (const swift::Pattern& pattern) = 0;
345- virtual void visit (const swift::TypeRepr& typeRepr, swift::Type type) = 0;
346- virtual void visit (const swift::TypeBase& type) = 0;
331+ virtual void visit (const swift::Decl* decl) = 0;
332+ virtual void visit (const swift::Stmt* stmt) = 0;
333+ virtual void visit (const swift::StmtCondition* cond) = 0;
334+ virtual void visit (const swift::StmtConditionElement* cond) = 0;
335+ virtual void visit (const swift::CaseLabelItem* item) = 0;
336+ virtual void visit (const swift::Expr* expr) = 0;
337+ virtual void visit (const swift::Pattern* pattern) = 0;
338+ virtual void visit (const swift::TypeRepr* typeRepr, swift::Type type) = 0;
339+ virtual void visit (const swift::TypeBase* type) = 0;
347340
348341 void visit (const std::filesystem::path& file) {
349342 auto entry = createEntry (file, file.string ());
0 commit comments