Skip to content

UFCS form bypasses privacy checks in cross-crate scenario #21202

Closed
@nikomatsakis

Description

@nikomatsakis

Crate 1:

#![crate_type="rlib"]

pub mod A {
    pub struct Foo;
    impl Foo {
        fn foo(&self) { }
    }
}

Crate 2:

extern crate crate1;

use crate1::A;

mod B {
    use crate1::A::Foo;
    fn bar(f: Foo) {
        Foo::foo(&f);
    }
}

fn main() { }

This builds for me. It does not if the crates are concatenated. In some cases, I've seen link failures, though I don't with this example.

cc @alexcrichton

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions