From 10a4737d34e4b5112daaa80455ac671b87006c6b Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 5 Jul 2011 11:58:44 -0700 Subject: [PATCH] Warn when compiling shared crates that don't have name/vers link attributes Closes #614 --- src/comp/back/link.rs | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/comp/back/link.rs b/src/comp/back/link.rs index 12ada918edb8..a0bb27d3280f 100644 --- a/src/comp/back/link.rs +++ b/src/comp/back/link.rs @@ -340,15 +340,25 @@ fn build_link_meta(&session::session sess, &ast::crate c, ret truncated_sha1_result(sha); } + fn warn_missing(&session::session sess, str name, str default) { + if (!sess.get_opts().shared) { ret; } + sess.warn(#fmt("missing crate link meta '%s', using '%s' as default", + name, default)); + } + fn crate_meta_name(&session::session sess, &ast::crate crate, &str output, &provided_metas metas) -> str { ret alt (metas.name) { case (some(?v)) { v } case (none) { - auto os = str::split(fs::basename(output), '.' as u8); - assert (vec::len(os) >= 2u); - vec::pop(os); - str::connect(os, ".") + auto name = { + auto os = str::split(fs::basename(output), '.' as u8); + assert (vec::len(os) >= 2u); + vec::pop(os); + str::connect(os, ".") + }; + warn_missing(sess, "name", name); + name } }; } @@ -357,7 +367,11 @@ fn build_link_meta(&session::session sess, &ast::crate c, &provided_metas metas) -> str { ret alt (metas.vers) { case (some(?v)) { v } - case (none) { "0.0" } + case (none) { + auto vers = "0.0"; + warn_missing(sess, "vers", vers); + vers + } }; }