// TODO: Visit block expression
}
+void
+UnsafeChecker::visit (InlineAsm &expr)
+{
+ if (unsafe_context.is_in_context ())
+ return;
+
+ rust_error_at (
+ expr.get_locus (), ErrorCode::E0133,
+ "use of inline assembly is unsafe and requires unsafe function or block");
+}
+
void
UnsafeChecker::visit (TypeParam &)
{}
virtual void visit (MatchExpr &expr) override;
virtual void visit (AwaitExpr &expr) override;
virtual void visit (AsyncBlockExpr &expr) override;
+ virtual void visit (InlineAsm &expr);
virtual void visit (TypeParam ¶m) override;
virtual void visit (ConstGenericParam ¶m) override;
virtual void visit (LifetimeWhereClauseItem &item) override;
std::vector<location_t> line_spans;
- void accept_vis (HIRExpressionVisitor &vis) override{};
+ void accept_vis (HIRExpressionVisitor &vis) override;
- void accept_vis (HIRFullVisitor &vis) override{};
+ void accept_vis (HIRFullVisitor &vis) override;
std::string as_string () const override { return "InlineAsm HIR Node"; }
// <http://www.gnu.org/licenses/>.
#include "rust-ast-full.h"
+#include "rust-hir-expr.h"
#include "rust-hir-full.h"
#include "rust-hir-visitor.h"
#include "rust-diagnostics.h"
vis.visit (*this);
}
+void
+InlineAsm::accept_vis (HIRExpressionVisitor &vis)
+{}
+
+void
+InlineAsm::accept_vis (HIRFullVisitor &vis)
+{}
+
void
BorrowExpr::accept_vis (HIRExpressionVisitor &vis)
{