Skip to content

Erroneous E0603, public field cannot be re-exported on beta/nightly #56247

Closed
@drbawb

Description

@drbawb

I am seeing a regression in the following versions of rustc:

  • rustc 1.32.0-nightly (6acbb5b65 2018-11-25)
  • rustc 1.31.0-beta.17 (1a4f1f398 2018-11-25)

I am trying to use the crate resvg which in turn relies on svgdom. The compiler fails to finish building svgdom (v0.13) with the following error:

error[E0603]: struct `ParseOptions` is private
  --> /Users/drbawb/.cargo/registry/src/github.com-1ecc6299db9ec823/svgdom-0.13.0/src/lib.rs:88:17
   |
88 | pub use parser::ParseOptions;
   |                 ^^^^^^^^^^^^

error: aborting due to previous error

For more information about this error, try `rustc --explain E0603`.
error: Could not compile `svgdom`.
warning: build failed, waiting for other jobs to finish...
error: build failed

The struct definition which is being re-exported is indeed marked public, and has been since the initial commit of svgdom. However in parser/mod.rs there is a public re-export of this type via glob which later seems to be shadowed by a private import.

I'm reporting this since this crate compiles without error on my copy of the stable release train: rustc 1.30.1 (1433507eb 2018-11-07). I've created a minimal reproduction of the issue on the playground.

Please let me know if I can provide any further details.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-visibilityArea: Visibility / privacyregression-from-stable-to-betaPerformance or correctness regression from stable to beta.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions