mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-28 01:34:21 +00:00
try enabling typeof for fun error messages
This commit is contained in:
parent
9a35232611
commit
2ac171f94c
@ -2277,9 +2277,9 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||||||
let array_ty = tcx.mk_ty(ty::Array(self.ast_ty_to_ty(&ty), length));
|
let array_ty = tcx.mk_ty(ty::Array(self.ast_ty_to_ty(&ty), length));
|
||||||
self.normalize_ty(ast_ty.span, array_ty)
|
self.normalize_ty(ast_ty.span, array_ty)
|
||||||
}
|
}
|
||||||
hir::TyKind::Typeof(ref _e) => {
|
hir::TyKind::Typeof(ref e) => {
|
||||||
tcx.sess.emit_err(TypeofReservedKeywordUsed { span: ast_ty.span });
|
tcx.sess.emit_err(TypeofReservedKeywordUsed { span: ast_ty.span });
|
||||||
tcx.ty_error()
|
tcx.type_of(e.hir_id.owner)
|
||||||
}
|
}
|
||||||
hir::TyKind::Infer => {
|
hir::TyKind::Infer => {
|
||||||
// Infer also appears as the type of arguments or return
|
// Infer also appears as the type of arguments or return
|
||||||
|
@ -417,12 +417,16 @@ pub(super) fn type_of(tcx: TyCtxt<'_>, def_id: DefId) -> Ty<'_> {
|
|||||||
let parent_node = tcx.hir().get(tcx.hir().get_parent_node(hir_id));
|
let parent_node = tcx.hir().get(tcx.hir().get_parent_node(hir_id));
|
||||||
match parent_node {
|
match parent_node {
|
||||||
Node::Ty(&Ty { kind: TyKind::Array(_, ref constant), .. })
|
Node::Ty(&Ty { kind: TyKind::Array(_, ref constant), .. })
|
||||||
| Node::Ty(&Ty { kind: TyKind::Typeof(ref constant), .. })
|
|
||||||
| Node::Expr(&Expr { kind: ExprKind::Repeat(_, ref constant), .. })
|
| Node::Expr(&Expr { kind: ExprKind::Repeat(_, ref constant), .. })
|
||||||
if constant.hir_id == hir_id =>
|
if constant.hir_id == hir_id =>
|
||||||
{
|
{
|
||||||
tcx.types.usize
|
tcx.types.usize
|
||||||
}
|
}
|
||||||
|
Node::Ty(&Ty { kind: TyKind::Typeof(ref constant), .. })
|
||||||
|
if constant.hir_id == hir_id =>
|
||||||
|
{
|
||||||
|
tcx.typeck(def_id).node_type(constant.hir_id)
|
||||||
|
}
|
||||||
|
|
||||||
Node::Expr(&Expr { kind: ExprKind::ConstBlock(ref anon_const), .. })
|
Node::Expr(&Expr { kind: ExprKind::ConstBlock(ref anon_const), .. })
|
||||||
if anon_const.hir_id == hir_id =>
|
if anon_const.hir_id == hir_id =>
|
||||||
|
Loading…
Reference in New Issue
Block a user