Skip to content

Commit ab13b10

Browse files
committed
feat: limit -extern priv: to libraries
1 parent db0c5c1 commit ab13b10

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

src/cargo/core/compiler/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,6 +1434,7 @@ pub fn extern_args(
14341434
.require(Feature::public_dependency())
14351435
.is_ok()
14361436
&& !dep.public
1437+
&& unit.target.is_lib()
14371438
{
14381439
opts.push("priv");
14391440
*unstable_opts = true;

tests/testsuite/pub_priv.rs

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -278,9 +278,14 @@ fn allow_priv_in_tests() {
278278

279279
p.cargo("check --tests --message-format=short")
280280
.masquerade_as_nightly_cargo(&["public-dependency"])
281-
.with_stderr_contains(
281+
.with_stderr(
282282
"\
283-
tests/mod.rs:3:13: warning: type `FromPriv` from private dependency 'priv_dep' in public interface
283+
[UPDATING] `[..]` index
284+
[DOWNLOADING] crates ...
285+
[DOWNLOADED] priv_dep v0.1.0 ([..])
286+
[CHECKING] priv_dep v0.1.0
287+
[CHECKING] foo v0.0.1 ([CWD])
288+
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
284289
",
285290
)
286291
.run()
@@ -317,9 +322,14 @@ fn allow_priv_in_benchs() {
317322

318323
p.cargo("check --benches --message-format=short")
319324
.masquerade_as_nightly_cargo(&["public-dependency"])
320-
.with_stderr_contains(
325+
.with_stderr(
321326
"\
322-
benches/mod.rs:3:13: warning: type `FromPriv` from private dependency 'priv_dep' in public interface
327+
[UPDATING] `[..]` index
328+
[DOWNLOADING] crates ...
329+
[DOWNLOADED] priv_dep v0.1.0 ([..])
330+
[CHECKING] priv_dep v0.1.0
331+
[CHECKING] foo v0.0.1 ([CWD])
332+
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
323333
",
324334
)
325335
.run()
@@ -357,9 +367,14 @@ fn allow_priv_in_bins() {
357367

358368
p.cargo("check --bins --message-format=short")
359369
.masquerade_as_nightly_cargo(&["public-dependency"])
360-
.with_stderr_contains(
370+
.with_stderr(
361371
"\
362-
src/main.rs:3:13: warning: type `FromPriv` from private dependency 'priv_dep' in public interface
372+
[UPDATING] `[..]` index
373+
[DOWNLOADING] crates ...
374+
[DOWNLOADED] priv_dep v0.1.0 ([..])
375+
[CHECKING] priv_dep v0.1.0
376+
[CHECKING] foo v0.0.1 ([CWD])
377+
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
363378
",
364379
)
365380
.run()
@@ -397,9 +412,14 @@ fn allow_priv_in_examples() {
397412

398413
p.cargo("check --examples --message-format=short")
399414
.masquerade_as_nightly_cargo(&["public-dependency"])
400-
.with_stderr_contains(
415+
.with_stderr(
401416
"\
402-
examples/lib.rs:3:13: warning: type `FromPriv` from private dependency 'priv_dep' in public interface
417+
[UPDATING] `[..]` index
418+
[DOWNLOADING] crates ...
419+
[DOWNLOADED] priv_dep v0.1.0 ([..])
420+
[CHECKING] priv_dep v0.1.0
421+
[CHECKING] foo v0.0.1 ([CWD])
422+
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
403423
",
404424
)
405425
.run()

0 commit comments

Comments
 (0)