From 8320a3a048717f2a09ba5e5cddb2b634047da647 Mon Sep 17 00:00:00 2001 From: William Throwe Date: Mon, 24 Aug 2015 14:33:22 -0400 Subject: [PATCH] Remove #[start] as well as #[main] in --test Fixes #11766. --- src/libsyntax/test.rs | 15 ++++++--------- src/test/run-pass/test-runner-hides-start.rs | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 src/test/run-pass/test-runner-hides-start.rs diff --git a/src/libsyntax/test.rs b/src/libsyntax/test.rs index 9975e25f4930..7fb8cdde3117 100644 --- a/src/libsyntax/test.rs +++ b/src/libsyntax/test.rs @@ -202,8 +202,8 @@ impl fold::Folder for EntryPointCleaner { let folded = fold::noop_fold_item(i, self).expect_one("noop did something"); self.depth -= 1; - // Remove any #[main] from the AST so it doesn't clash with - // the one we're going to add, but mark it as + // Remove any #[main] or #[start] from the AST so it doesn't + // clash with the one we're going to add, but mark it as // #[allow(dead_code)] to avoid printing warnings. let folded = match entry::entry_point_type(&*folded, self.depth) { EntryPointType::MainNamed | @@ -221,13 +221,10 @@ impl fold::Folder for EntryPointCleaner { ast::Item { id: id, ident: ident, - attrs: attrs.into_iter().filter_map(|attr| { - if !attr.check_name("main") { - Some(attr) - } else { - None - } - }) + attrs: attrs.into_iter() + .filter(|attr| { + !attr.check_name("main") && !attr.check_name("start") + }) .chain(iter::once(allow_dead_code)) .collect(), node: node, diff --git a/src/test/run-pass/test-runner-hides-start.rs b/src/test/run-pass/test-runner-hides-start.rs new file mode 100644 index 000000000000..fc94b19ada1f --- /dev/null +++ b/src/test/run-pass/test-runner-hides-start.rs @@ -0,0 +1,16 @@ +// Copyright 2015 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. + +// compile-flags: --test + +#![feature(start)] + +#[start] +fn start(_: isize, _: *const *const u8) -> isize { panic!(); }