1
Fork 0

auto merge of #7371 : alexcrichton/rust/trying, r=cmr

This is an attempt at a smaller request than #7113, it's just the first two commits
This commit is contained in:
bors 2013-06-25 10:47:01 -07:00
commit 032dcc57e8
13 changed files with 57 additions and 17 deletions

View file

@ -239,29 +239,29 @@ $(foreach target,$(CFG_TARGET_TRIPLES),\
# Standard library variables # Standard library variables
###################################################################### ######################################################################
STDLIB_CRATE := $(S)src/libstd/core.rc STDLIB_CRATE := $(S)src/libstd/std.rs
STDLIB_INPUTS := $(wildcard $(addprefix $(S)src/libstd/, \ STDLIB_INPUTS := $(wildcard $(addprefix $(S)src/libstd/, \
core.rc *.rs */*.rs */*/*rs */*/*/*rs)) *.rs */*.rs */*/*rs */*/*/*rs))
###################################################################### ######################################################################
# Extra library variables # Extra library variables
###################################################################### ######################################################################
EXTRALIB_CRATE := $(S)src/libextra/std.rc EXTRALIB_CRATE := $(S)src/libextra/extra.rs
EXTRALIB_INPUTS := $(wildcard $(addprefix $(S)src/libextra/, \ EXTRALIB_INPUTS := $(wildcard $(addprefix $(S)src/libextra/, \
std.rc *.rs */*.rs)) *.rs */*.rs))
###################################################################### ######################################################################
# rustc crate variables # rustc crate variables
###################################################################### ######################################################################
COMPILER_CRATE := $(S)src/librustc/rustc.rc COMPILER_CRATE := $(S)src/librustc/rustc.rs
COMPILER_INPUTS := $(wildcard $(addprefix $(S)src/librustc/, \ 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/, \ LIBSYNTAX_INPUTS := $(wildcard $(addprefix $(S)src/libsyntax/, \
syntax.rc *.rs */*.rs */*/*.rs)) *.rs */*.rs */*/*.rs))
DRIVER_CRATE := $(S)src/driver/driver.rs DRIVER_CRATE := $(S)src/driver/driver.rs

View file

@ -12,23 +12,23 @@
# and host architectures # and host architectures
# The test runner that runs the cfail/rfail/rpass and bxench tests # The test runner that runs the cfail/rfail/rpass and bxench tests
COMPILETEST_CRATE := $(S)src/compiletest/compiletest.rc COMPILETEST_CRATE := $(S)src/compiletest/compiletest.rs
COMPILETEST_INPUTS := $(wildcard $(S)src/compiletest/*rs) COMPILETEST_INPUTS := $(wildcard $(S)src/compiletest/*.rs)
# Rustpkg, the package manager and build system # Rustpkg, the package manager and build system
RUSTPKG_LIB := $(S)src/librustpkg/rustpkg.rc RUSTPKG_LIB := $(S)src/librustpkg/rustpkg.rs
RUSTPKG_INPUTS := $(wildcard $(S)src/librustpkg/*rs) RUSTPKG_INPUTS := $(wildcard $(S)src/librustpkg/*.rs)
# Rustdoc, the documentation tool # 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) RUSTDOC_INPUTS := $(wildcard $(S)src/librustdoc/*.rs)
# Rusti, the JIT REPL # 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) RUSTI_INPUTS := $(wildcard $(S)src/librusti/*.rs)
# Rust, the convenience tool # 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) RUST_INPUTS := $(wildcard $(S)src/librust/*.rs)
# FIXME: These are only built for the host arch. Eventually we'll # FIXME: These are only built for the host arch. Eventually we'll

View file

@ -96,6 +96,8 @@ pub enum lint {
missing_doc, missing_doc,
unreachable_code, unreachable_code,
warnings,
} }
pub fn level_to_str(lv: level) -> &'static str { pub fn level_to_str(lv: level) -> &'static str {
@ -280,6 +282,13 @@ static lint_table: &'static [(&'static str, LintSpec)] = &[
desc: "detects unreachable code", desc: "detects unreachable code",
default: warn default: warn
}), }),
("warnings",
LintSpec {
lint: warnings,
desc: "mass-change the level for lints which produce warnings",
default: warn
}),
]; ];
/* /*
@ -362,10 +371,11 @@ impl Context {
fn span_lint(&self, lint: lint, span: span, msg: &str) { fn span_lint(&self, lint: lint, span: span, msg: &str) {
let (level, src) = match self.curr.find(&(lint as uint)) { let (level, src) = match self.curr.find(&(lint as uint)) {
None => { return }
Some(&(warn, src)) => (self.get_level(warnings), src),
Some(&pair) => pair, Some(&pair) => pair,
None => { return; }
}; };
if level == allow { return; } if level == allow { return }
let mut note = None; let mut note = None;
let msg = match src { let msg = match src {

View file

@ -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 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, 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
}