about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2014-09-19 12:30:07 -0700
committerPatrick Walton <pcwalton@mimiga.net>2014-09-22 20:05:45 -0700
commite9ad12c0cae5c43ada6641c7dc840a0fbe5010a2 (patch)
tree21b3e62d447bda4ccda606894edb66ca965bccee /src/libcore
parent43fd619819b334b8548dca98797bd4c8078636cb (diff)
librustc: Forbid private types in public APIs.
This breaks code like:

    struct Foo {
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

Change this code to:

    pub struct Foo {    // note `pub`
        ...
    }

    pub fn make_foo() -> Foo {
        ...
    }

The `visible_private_types` lint has been removed, since it is now an
error to attempt to expose a private type in a public API. In its place
a `#[feature(visible_private_types)]` gate has been added.

Closes #16463.

RFC #48.

[breaking-change]
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/any.rs2
-rw-r--r--src/libcore/iter.rs1
2 files changed, 1 insertions, 2 deletions
diff --git a/src/libcore/any.rs b/src/libcore/any.rs
index 625b89b3bae..fb70cb5b752 100644
--- a/src/libcore/any.rs
+++ b/src/libcore/any.rs
@@ -94,7 +94,7 @@ pub enum Void { }
 pub trait Any: AnyPrivate {}
 
 /// An inner trait to ensure that only this module can call `get_type_id()`.
-trait AnyPrivate {
+pub trait AnyPrivate {
     /// Get the `TypeId` of `self`
     fn get_type_id(&self) -> TypeId;
 }
diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs
index 6bee0573fac..f84c5eec452 100644
--- a/src/libcore/iter.rs
+++ b/src/libcore/iter.rs
@@ -2178,7 +2178,6 @@ pub type Iterate<'a, T> = Unfold<'a, T, IterateState<'a, T>>;
 
 /// Creates a new iterator that produces an infinite sequence of
 /// repeated applications of the given function `f`.
-#[allow(visible_private_types)]
 pub fn iterate<'a, T: Clone>(seed: T, f: |T|: 'a -> T) -> Iterate<'a, T> {
     Unfold::new((f, Some(seed), true), |st| {
         let &(ref mut f, ref mut val, ref mut first) = st;