Skip to content

Commit 11024ea

Browse files
committed
rustc: Only strip out the main function when generating test executable, not lib
1 parent b808eab commit 11024ea

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/librustc/front/test.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,15 @@ fn strip_test_functions(crate: @ast::crate) -> @ast::crate {
7171
fn fold_mod(cx: test_ctxt, m: ast::_mod, fld: fold::ast_fold) -> ast::_mod {
7272

7373
// Remove any defined main function from the AST so it doesn't clash with
74-
// the one we're going to add.
74+
// the one we're going to add. Only if compiling an executable.
7575

7676
// FIXME (#2403): This is sloppy. Instead we should have some mechanism to
7777
// indicate to the translation pass which function we want to be main.
7878
fn nomain(cx: test_ctxt, item: @ast::item) -> Option<@ast::item> {
7979
match item.node {
8080
ast::item_fn(*) => {
81-
if item.ident == cx.sess.ident_of(~"main") {
81+
if item.ident == cx.sess.ident_of(~"main")
82+
&& !cx.sess.building_library {
8283
option::None
8384
} else { option::Some(item) }
8485
}

0 commit comments

Comments
 (0)