DefaultASTVisitor::visit (AST::TraitItemType &item)
{
visit_outer_attrs (item);
+ for (auto &generic : item.get_generic_params ())
+ visit (generic);
for (auto &bound : item.get_type_param_bounds ())
visit (bound);
}
namespace Rust {
-/**
- * Whether or not an attribute is a derive attribute
- */
-bool is_derive (AST::Attribute &attr);
-
/**
* Whether or not an attribute is builtin
*/
continue;
}
- auto param = static_cast<AST::FunctionParam &> (*p);
+ auto ¶m = static_cast<AST::FunctionParam &> (*p);
auto translated_pattern = std::unique_ptr<HIR::Pattern> (
ASTLoweringPattern::translate (param.get_pattern ()));
label_scope (Scope (mappings.get_current_crate ())),
macro_scope (Scope (mappings.get_current_crate ())),
global_type_node_id (UNKNOWN_NODEID), unit_ty_node_id (UNKNOWN_NODEID)
-{
- generate_builtins ();
-}
+{}
Resolver *
Resolver::get ()
Mappings::get_next_node_id ()
{
auto it = nodeIdIter;
+ if (UNLIKELY (it > MAX_NODEID))
+ rust_fatal_error (UNKNOWN_LOCATION, "out of node ids");
nodeIdIter++;
return it;
}
#define UNKNOWN_CRATENUM ((uint32_t) (UINT32_MAX))
#define UNKNOWN_NODEID ((uint32_t) (UINT32_MAX))
+#define MAX_NODEID (UNKNOWN_NODEID - 1)
#define UNKNOWN_HIRID ((uint32_t) (UINT32_MAX))
#define UNKNOWN_LOCAL_DEFID ((uint32_t) (0))
#define UNKNOWN_DEFID (DefId{0, 0})