mirror of
https://github.com/rust-lang/rust.git
synced 2025-01-09 22:37:34 +00:00
Convert tyvar_behind_raw_pointer to hard error for the 2018 epoch
This commit is contained in:
parent
2cff123416
commit
d0ab8f03bb
@ -326,13 +326,19 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
|
|||||||
if reached_raw_pointer
|
if reached_raw_pointer
|
||||||
&& !self.tcx.sess.features.borrow().arbitrary_self_types {
|
&& !self.tcx.sess.features.borrow().arbitrary_self_types {
|
||||||
// this case used to be allowed by the compiler,
|
// this case used to be allowed by the compiler,
|
||||||
// so we do a future-compat lint here
|
// so we do a future-compat lint here for the 2015 epoch
|
||||||
// (see https://github.com/rust-lang/rust/issues/46906)
|
// (see https://github.com/rust-lang/rust/issues/46906)
|
||||||
self.tcx.lint_node(
|
if self.tcx.sess.rust_2018() {
|
||||||
lint::builtin::TYVAR_BEHIND_RAW_POINTER,
|
span_err!(self.tcx.sess, span, E0908,
|
||||||
scope_expr_id,
|
"the type of this value must be known \
|
||||||
span,
|
to call a method on a raw pointer on it");
|
||||||
&format!("the type of this value must be known in this context"));
|
} else {
|
||||||
|
self.tcx.lint_node(
|
||||||
|
lint::builtin::TYVAR_BEHIND_RAW_POINTER,
|
||||||
|
scope_expr_id,
|
||||||
|
span,
|
||||||
|
&format!("the type of this value must be known in this context"));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
let t = self.structurally_resolved_type(span, final_ty);
|
let t = self.structurally_resolved_type(span, final_ty);
|
||||||
assert_eq!(t, self.tcx.types.err);
|
assert_eq!(t, self.tcx.types.err);
|
||||||
|
@ -4777,4 +4777,5 @@ register_diagnostics! {
|
|||||||
E0641, // cannot cast to/from a pointer with an unknown kind
|
E0641, // cannot cast to/from a pointer with an unknown kind
|
||||||
E0645, // trait aliases not finished
|
E0645, // trait aliases not finished
|
||||||
E0907, // type inside generator must be known in this context
|
E0907, // type inside generator must be known in this context
|
||||||
|
E0908, // methods on raw pointers can only be called if the pointer type is fully known
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user