Skip to content

Commit 10a4737

Browse files
committed
Warn when compiling shared crates that don't have name/vers link attributes
Closes #614
1 parent 6f8bc40 commit 10a4737

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/comp/back/link.rs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -340,15 +340,25 @@ fn build_link_meta(&session::session sess, &ast::crate c,
340340
ret truncated_sha1_result(sha);
341341
}
342342

343+
fn warn_missing(&session::session sess, str name, str default) {
344+
if (!sess.get_opts().shared) { ret; }
345+
sess.warn(#fmt("missing crate link meta '%s', using '%s' as default",
346+
name, default));
347+
}
348+
343349
fn crate_meta_name(&session::session sess, &ast::crate crate,
344350
&str output, &provided_metas metas) -> str {
345351
ret alt (metas.name) {
346352
case (some(?v)) { v }
347353
case (none) {
348-
auto os = str::split(fs::basename(output), '.' as u8);
349-
assert (vec::len(os) >= 2u);
350-
vec::pop(os);
351-
str::connect(os, ".")
354+
auto name = {
355+
auto os = str::split(fs::basename(output), '.' as u8);
356+
assert (vec::len(os) >= 2u);
357+
vec::pop(os);
358+
str::connect(os, ".")
359+
};
360+
warn_missing(sess, "name", name);
361+
name
352362
}
353363
};
354364
}
@@ -357,7 +367,11 @@ fn build_link_meta(&session::session sess, &ast::crate c,
357367
&provided_metas metas) -> str {
358368
ret alt (metas.vers) {
359369
case (some(?v)) { v }
360-
case (none) { "0.0" }
370+
case (none) {
371+
auto vers = "0.0";
372+
warn_missing(sess, "vers", vers);
373+
vers
374+
}
361375
};
362376
}
363377

0 commit comments

Comments
 (0)