about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/librustc/diagnostics.rs1
-rw-r--r--src/librustc/middle/lang_items.rs6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/librustc/diagnostics.rs b/src/librustc/diagnostics.rs
index 92db527ef98..004495bb916 100644
--- a/src/librustc/diagnostics.rs
+++ b/src/librustc/diagnostics.rs
@@ -2007,4 +2007,5 @@ register_diagnostics! {
     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
 }
diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs
index c432095ff06..b16ba9a2190 100644
--- a/src/librustc/middle/lang_items.rs
+++ b/src/librustc/middle/lang_items.rs
@@ -158,6 +158,12 @@ impl<'a, 'v, 'tcx> Visitor<'v> for LanguageItemCollector<'a, 'tcx> {
 
             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[..]);
             }
         }
     }