From 6cbccc92b757e4b52fb75416e8bb589e981ed237 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Fri, 25 Jan 2013 22:57:29 -0800 Subject: [PATCH] rustc: In lint, forbid structural records unless legacy_records is on --- src/librustc/middle/lint.rs | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs index 515666445e3a..f1188dce7414 100644 --- a/src/librustc/middle/lint.rs +++ b/src/librustc/middle/lint.rs @@ -213,7 +213,7 @@ fn get_lint_dict() -> lint_dict { (~"structural_records", @{lint: structural_records, desc: "use of any structural records", - default: allow}), + default: deny}), (~"legacy modes", @{lint: legacy_modes, @@ -663,21 +663,23 @@ fn check_item_deprecated_self(cx: ty::ctxt, item: @ast::item) { } fn check_item_structural_records(cx: ty::ctxt, it: @ast::item) { - let visit = item_stopping_visitor( - visit::mk_simple_visitor(@visit::SimpleVisitor { - visit_expr: |e: @ast::expr| { - match e.node { - ast::expr_rec(*) => - cx.sess.span_lint( - structural_records, e.id, it.id, - e.span, - ~"structural records are deprecated"), - _ => () - } - }, - .. *visit::default_simple_visitor() - })); - visit::visit_item(it, (), visit); + if !cx.legacy_records { + let visit = item_stopping_visitor( + visit::mk_simple_visitor(@visit::SimpleVisitor { + visit_expr: |e: @ast::expr| { + match e.node { + ast::expr_rec(*) => + cx.sess.span_lint( + structural_records, e.id, it.id, + e.span, + ~"structural records are deprecated"), + _ => () + } + }, + .. *visit::default_simple_visitor() + })); + visit::visit_item(it, (), visit); + } } fn check_item_ctypes(cx: ty::ctxt, it: @ast::item) {