summaryrefslogtreecommitdiff
path: root/src/expand/lang_item.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/expand/lang_item.cpp')
-rw-r--r--src/expand/lang_item.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/expand/lang_item.cpp b/src/expand/lang_item.cpp
index 3df3a54f..a86cdd62 100644
--- a/src/expand/lang_item.cpp
+++ b/src/expand/lang_item.cpp
@@ -74,6 +74,21 @@ void handle_lang_item(AST::Crate& crate, const AST::Path& path, const ::std::str
else if( name == "debug_trait" ) { /* TODO: Poke derive() with this */ }
+ // Structs
+ else if( name == "non_zero" ) { }
+ else if( name == "phantom_data" ) { }
+ else if( name == "range_full" ) { }
+ else if( name == "range" ) { }
+ else if( name == "range_from" ) { }
+ else if( name == "range_to" ) { }
+ else if( name == "unsafe_cell" ) { }
+
+ // Functions
+ else if( name == "panic" ) { }
+ else if( name == "panic_bounds_check" ) { }
+ else if( name == "panic_fmt" ) { }
+ else if( name == "str_eq" ) { }
+
else {
throw CompileError::Generic(FMT("Unknown lang item '" << name << "'"));
}
@@ -90,7 +105,13 @@ public:
{
TU_MATCH_DEF(::AST::Item, (i), (e),
(
- // TODO: Error
+ TODO(Span(), "Unknown item type with #[lang] attached at " << path);
+ ),
+ (Function,
+ handle_lang_item(crate, path, attr.string(), AST::ITEM_FN);
+ ),
+ (Struct,
+ handle_lang_item(crate, path, attr.string(), AST::ITEM_STRUCT);
),
(Trait,
handle_lang_item(crate, path, attr.string(), AST::ITEM_TRAIT);