From 15871a7458feee550c9ba65db802ed0fb5db2ae7 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Mon, 28 Jan 2013 18:34:32 -0800 Subject: [PATCH] rustc: Check struct field types when heap memory lint checks are enabled --- src/librustc/middle/lint.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs index f1188dce741..0ee7e7ef370 100644 --- a/src/librustc/middle/lint.rs +++ b/src/librustc/middle/lint.rs @@ -786,6 +786,18 @@ fn check_type(cx: ty::ctxt, _ => () } + // If it's a struct, we also have to check the fields' types + match it.node { + ast::item_struct(struct_def, _) => { + for struct_def.fields.each |struct_field| { + check_type(cx, struct_field.node.id, it.id, + struct_field.span, + ty::node_id_to_type(cx, struct_field.node.id)); + } + } + _ => () + } + let visit = item_stopping_visitor( visit::mk_simple_visitor(@visit::SimpleVisitor { visit_expr: |e: @ast::expr| { -- GitLab