]> git.lizzy.rs Git - rust.git/commitdiff
Forbid creation of lang item from user code
authorggomez <guillaume1.gomez@gmail.com>
Tue, 15 Mar 2016 14:49:08 +0000 (15:49 +0100)
committerggomez <guillaume1.gomez@gmail.com>
Tue, 15 Mar 2016 14:49:08 +0000 (15:49 +0100)
src/librustc/diagnostics.rs
src/librustc/middle/lang_items.rs

index 92db527ef9803ac3b0e1f8b52a994f113a0de5c1..004495bb91699127030111267f0041f575a1c562 100644 (file)
@@ -2007,4 +2007,5 @@ impl Foo {
     E0490, // a value of type `..` is borrowed for too long
     E0491, // in type `..`, reference has a longer lifetime than the data it...
     E0495, // cannot infer an appropriate lifetime due to conflicting requirements
+    E0522, // creating new item lang is forbidden
 }
index c432095ff0697a43c07a970d4c4989b4b734439c..b16ba9a2190245528f12dc794f0199aa1f965ec8 100644 (file)
@@ -158,6 +158,12 @@ fn visit_item(&mut self, item: &hir::Item) {
 
             if let Some(item_index) = item_index {
                 self.collect_item(item_index, self.ast_map.local_def_id(item.id))
+            } else {
+                let item_def_id = self.ast_map.local_def_id(item.id);
+                let span = self.ast_map.span_if_local(item_def_id).unwrap();
+                span_err!(self.session, span, E0522,
+                          "creating new item lang is forbidden: `{}`.",
+                          &value[..]);
             }
         }
     }