DefaultResolver::visit (arg);
}
-void
-Late::visit (AST::ClosureExprInner &closure)
+template <class Closure>
+static void
+add_captures (Closure &closure, NameResolutionContext &ctx)
{
auto vals = ctx.values.peek ().get_values ();
for (auto &val : vals)
ctx.mappings.add_capture (closure.get_node_id (),
val.second.get_node_id ());
}
+}
+void
+Late::visit (AST::ClosureExprInner &closure)
+{
+ add_captures (closure, ctx);
+ DefaultResolver::visit (closure);
+}
+
+void
+Late::visit (AST::ClosureExprInnerTyped &closure)
+{
+ add_captures (closure, ctx);
DefaultResolver::visit (closure);
}
void visit (AST::GenericArgs &) override;
void visit (AST::GenericArg &);
void visit (AST::ClosureExprInner &) override;
+ void visit (AST::ClosureExprInnerTyped &) override;
private:
/* Setup Rust's builtin types (u8, i32, !...) in the resolver */