From 42b44b21b11ded0a7dbbe196b1c9d338ef33b614 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 10 Jun 2013 13:00:38 -0700 Subject: [PATCH 1/2] Rename all files with the 'rc' extension --- Makefile.in | 16 ++++++++-------- mk/tools.mk | 14 +++++++------- .../{compiletest.rc => compiletest.rs} | 0 src/libextra/{std.rc => extra.rs} | 0 src/librust/{rust.rc => rust.rs} | 0 src/librustc/{rustc.rc => rustc.rs} | 0 src/librustdoc/{rustdoc.rc => rustdoc.rs} | 0 src/librusti/{rusti.rc => rusti.rs} | 0 src/librustpkg/{rustpkg.rc => rustpkg.rs} | 0 src/libstd/{core.rc => std.rs} | 0 src/libsyntax/{syntax.rc => syntax.rs} | 0 11 files changed, 15 insertions(+), 15 deletions(-) rename src/compiletest/{compiletest.rc => compiletest.rs} (100%) rename src/libextra/{std.rc => extra.rs} (100%) rename src/librust/{rust.rc => rust.rs} (100%) rename src/librustc/{rustc.rc => rustc.rs} (100%) rename src/librustdoc/{rustdoc.rc => rustdoc.rs} (100%) rename src/librusti/{rusti.rc => rusti.rs} (100%) rename src/librustpkg/{rustpkg.rc => rustpkg.rs} (100%) rename src/libstd/{core.rc => std.rs} (100%) rename src/libsyntax/{syntax.rc => syntax.rs} (100%) diff --git a/Makefile.in b/Makefile.in index baae56c4f40..fa6c7806581 100644 --- a/Makefile.in +++ b/Makefile.in @@ -239,29 +239,29 @@ $(foreach target,$(CFG_TARGET_TRIPLES),\ # Standard library variables ###################################################################### -STDLIB_CRATE := $(S)src/libstd/core.rc +STDLIB_CRATE := $(S)src/libstd/std.rs STDLIB_INPUTS := $(wildcard $(addprefix $(S)src/libstd/, \ - core.rc *.rs */*.rs */*/*rs */*/*/*rs)) + *.rs */*.rs */*/*rs */*/*/*rs)) ###################################################################### # Extra library variables ###################################################################### -EXTRALIB_CRATE := $(S)src/libextra/std.rc +EXTRALIB_CRATE := $(S)src/libextra/extra.rs EXTRALIB_INPUTS := $(wildcard $(addprefix $(S)src/libextra/, \ - std.rc *.rs */*.rs)) + *.rs */*.rs)) ###################################################################### # rustc crate variables ###################################################################### -COMPILER_CRATE := $(S)src/librustc/rustc.rc +COMPILER_CRATE := $(S)src/librustc/rustc.rs COMPILER_INPUTS := $(wildcard $(addprefix $(S)src/librustc/, \ - rustc.rc *.rs */*.rs */*/*.rs */*/*/*.rs)) + *.rs */*.rs */*/*.rs */*/*/*.rs)) -LIBSYNTAX_CRATE := $(S)src/libsyntax/syntax.rc +LIBSYNTAX_CRATE := $(S)src/libsyntax/syntax.rs LIBSYNTAX_INPUTS := $(wildcard $(addprefix $(S)src/libsyntax/, \ - syntax.rc *.rs */*.rs */*/*.rs)) + *.rs */*.rs */*/*.rs)) DRIVER_CRATE := $(S)src/driver/driver.rs diff --git a/mk/tools.mk b/mk/tools.mk index 8319d8d4e48..7b50441b3c7 100644 --- a/mk/tools.mk +++ b/mk/tools.mk @@ -12,23 +12,23 @@ # and host architectures # The test runner that runs the cfail/rfail/rpass and bxench tests -COMPILETEST_CRATE := $(S)src/compiletest/compiletest.rc -COMPILETEST_INPUTS := $(wildcard $(S)src/compiletest/*rs) +COMPILETEST_CRATE := $(S)src/compiletest/compiletest.rs +COMPILETEST_INPUTS := $(wildcard $(S)src/compiletest/*.rs) # Rustpkg, the package manager and build system -RUSTPKG_LIB := $(S)src/librustpkg/rustpkg.rc -RUSTPKG_INPUTS := $(wildcard $(S)src/librustpkg/*rs) +RUSTPKG_LIB := $(S)src/librustpkg/rustpkg.rs +RUSTPKG_INPUTS := $(wildcard $(S)src/librustpkg/*.rs) # Rustdoc, the documentation tool -RUSTDOC_LIB := $(S)src/librustdoc/rustdoc.rc +RUSTDOC_LIB := $(S)src/librustdoc/rustdoc.rs RUSTDOC_INPUTS := $(wildcard $(S)src/librustdoc/*.rs) # Rusti, the JIT REPL -RUSTI_LIB := $(S)src/librusti/rusti.rc +RUSTI_LIB := $(S)src/librusti/rusti.rs RUSTI_INPUTS := $(wildcard $(S)src/librusti/*.rs) # Rust, the convenience tool -RUST_LIB := $(S)src/librust/rust.rc +RUST_LIB := $(S)src/librust/rust.rs RUST_INPUTS := $(wildcard $(S)src/librust/*.rs) # FIXME: These are only built for the host arch. Eventually we'll diff --git a/src/compiletest/compiletest.rc b/src/compiletest/compiletest.rs similarity index 100% rename from src/compiletest/compiletest.rc rename to src/compiletest/compiletest.rs diff --git a/src/libextra/std.rc b/src/libextra/extra.rs similarity index 100% rename from src/libextra/std.rc rename to src/libextra/extra.rs diff --git a/src/librust/rust.rc b/src/librust/rust.rs similarity index 100% rename from src/librust/rust.rc rename to src/librust/rust.rs diff --git a/src/librustc/rustc.rc b/src/librustc/rustc.rs similarity index 100% rename from src/librustc/rustc.rc rename to src/librustc/rustc.rs diff --git a/src/librustdoc/rustdoc.rc b/src/librustdoc/rustdoc.rs similarity index 100% rename from src/librustdoc/rustdoc.rc rename to src/librustdoc/rustdoc.rs diff --git a/src/librusti/rusti.rc b/src/librusti/rusti.rs similarity index 100% rename from src/librusti/rusti.rc rename to src/librusti/rusti.rs diff --git a/src/librustpkg/rustpkg.rc b/src/librustpkg/rustpkg.rs similarity index 100% rename from src/librustpkg/rustpkg.rc rename to src/librustpkg/rustpkg.rs diff --git a/src/libstd/core.rc b/src/libstd/std.rs similarity index 100% rename from src/libstd/core.rc rename to src/libstd/std.rs diff --git a/src/libsyntax/syntax.rc b/src/libsyntax/syntax.rs similarity index 100% rename from src/libsyntax/syntax.rc rename to src/libsyntax/syntax.rs From 92424f0670723e417a96a96310a6ad871994c6b7 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Sat, 15 Jun 2013 20:58:11 -0700 Subject: [PATCH 2/2] Add the `warnings` lint attribute --- src/librustc/middle/lint.rs | 14 +++++++-- src/test/compile-fail/lint-change-warnings.rs | 30 +++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 src/test/compile-fail/lint-change-warnings.rs diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs index 17ff5930078..5c36ab7750c 100644 --- a/src/librustc/middle/lint.rs +++ b/src/librustc/middle/lint.rs @@ -96,6 +96,8 @@ pub enum lint { missing_doc, unreachable_code, + + warnings, } pub fn level_to_str(lv: level) -> &'static str { @@ -280,6 +282,13 @@ enum LintSource { desc: "detects unreachable code", default: warn }), + + ("warnings", + LintSpec { + lint: warnings, + desc: "mass-change the level for lints which produce warnings", + default: warn + }), ]; /* @@ -362,10 +371,11 @@ fn lint_to_str(&self, lint: lint) -> &'static str { fn span_lint(&self, lint: lint, span: span, msg: &str) { let (level, src) = match self.curr.find(&(lint as uint)) { + None => { return } + Some(&(warn, src)) => (self.get_level(warnings), src), Some(&pair) => pair, - None => { return; } }; - if level == allow { return; } + if level == allow { return } let mut note = None; let msg = match src { diff --git a/src/test/compile-fail/lint-change-warnings.rs b/src/test/compile-fail/lint-change-warnings.rs new file mode 100644 index 00000000000..977abc4dc0d --- /dev/null +++ b/src/test/compile-fail/lint-change-warnings.rs @@ -0,0 +1,30 @@ +// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[deny(warnings)]; + +fn main() { + while true {} //~ ERROR: infinite +} + +#[allow(warnings)] +fn foo() { + while true {} +} + +#[warn(warnings)] +fn bar() { + while true {} //~ WARNING: infinite +} + +#[forbid(warnings)] +fn baz() { + while true {} //~ ERROR: warnings +}