Skip to content

Commit a2e4ab2

Browse files
Forbid creation of lang item from user code
1 parent 4db8b5b commit a2e4ab2

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/librustc/diagnostics.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2007,4 +2007,5 @@ register_diagnostics! {
20072007
E0490, // a value of type `..` is borrowed for too long
20082008
E0491, // in type `..`, reference has a longer lifetime than the data it...
20092009
E0495, // cannot infer an appropriate lifetime due to conflicting requirements
2010+
E0522, // creating new item lang is forbidden
20102011
}

src/librustc/middle/lang_items.rs

+6
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,12 @@ impl<'a, 'v, 'tcx> Visitor<'v> for LanguageItemCollector<'a, 'tcx> {
158158

159159
if let Some(item_index) = item_index {
160160
self.collect_item(item_index, self.ast_map.local_def_id(item.id))
161+
} else {
162+
let item_def_id = self.ast_map.local_def_id(item.id);
163+
let span = self.ast_map.span_if_local(item_def_id).unwrap();
164+
span_err!(self.session, span, E0522,
165+
"creating new item lang is forbidden: `{}`.",
166+
&value[..]);
161167
}
162168
}
163169
}

0 commit comments

Comments
 (0)