summaryrefslogtreecommitdiffstats
path: root/src/test/ui/traits/item-privacy.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/traits/item-privacy.stderr')
-rw-r--r--src/test/ui/traits/item-privacy.stderr180
1 files changed, 180 insertions, 0 deletions
diff --git a/src/test/ui/traits/item-privacy.stderr b/src/test/ui/traits/item-privacy.stderr
new file mode 100644
index 000000000..7f78b37ba
--- /dev/null
+++ b/src/test/ui/traits/item-privacy.stderr
@@ -0,0 +1,180 @@
+error[E0599]: no method named `a` found for struct `S` in the current scope
+ --> $DIR/item-privacy.rs:67:7
+ |
+LL | struct S;
+ | -------- method `a` not found for this struct
+...
+LL | S.a();
+ | ^ method not found in `S`
+ |
+ = help: items from traits can only be used if the trait is implemented and in scope
+note: `method::A` defines an item `a`, perhaps you need to implement it
+ --> $DIR/item-privacy.rs:6:5
+ |
+LL | trait A {
+ | ^^^^^^^
+
+error[E0599]: no method named `b` found for struct `S` in the current scope
+ --> $DIR/item-privacy.rs:68:7
+ |
+LL | struct S;
+ | -------- method `b` not found for this struct
+...
+LL | fn b(&self) { }
+ | - the method is available for `S` here
+...
+LL | S.b();
+ | ^ method not found in `S`
+ |
+ = help: items from traits can only be used if the trait is in scope
+help: the following trait is implemented but not in scope; perhaps add a `use` for it:
+ |
+LL | use method::B;
+ |
+
+error[E0624]: associated function `a` is private
+ --> $DIR/item-privacy.rs:72:7
+ |
+LL | fn a(&self) { }
+ | ----------- private associated function defined here
+...
+LL | c.a();
+ | ^ private associated function
+
+error[E0599]: no function or associated item named `a` found for struct `S` in the current scope
+ --> $DIR/item-privacy.rs:78:8
+ |
+LL | struct S;
+ | -------- function or associated item `a` not found for this struct
+...
+LL | S::a(&S);
+ | ^ function or associated item not found in `S`
+ |
+ = help: items from traits can only be used if the trait is implemented and in scope
+note: `method::A` defines an item `a`, perhaps you need to implement it
+ --> $DIR/item-privacy.rs:6:5
+ |
+LL | trait A {
+ | ^^^^^^^
+
+error[E0599]: no function or associated item named `b` found for struct `S` in the current scope
+ --> $DIR/item-privacy.rs:80:8
+ |
+LL | struct S;
+ | -------- function or associated item `b` not found for this struct
+...
+LL | S::b(&S);
+ | ^ function or associated item not found in `S`
+ |
+ = help: items from traits can only be used if the trait is in scope
+help: the following trait is implemented but not in scope; perhaps add a `use` for it:
+ |
+LL | use method::B;
+ |
+
+error[E0624]: associated function `a` is private
+ --> $DIR/item-privacy.rs:84:14
+ |
+LL | fn a(&self) { }
+ | ----------- private associated function defined here
+...
+LL | <dyn C>::a(&S);
+ | ^ private associated function
+
+error[E0599]: no associated item named `A` found for struct `S` in the current scope
+ --> $DIR/item-privacy.rs:97:8
+ |
+LL | struct S;
+ | -------- associated item `A` not found for this struct
+...
+LL | S::A;
+ | ^ associated item not found in `S`
+ |
+ = help: items from traits can only be used if the trait is implemented and in scope
+note: `assoc_const::A` defines an item `A`, perhaps you need to implement it
+ --> $DIR/item-privacy.rs:24:5
+ |
+LL | trait A {
+ | ^^^^^^^
+
+error[E0599]: no associated item named `B` found for struct `S` in the current scope
+ --> $DIR/item-privacy.rs:98:8
+ |
+LL | struct S;
+ | -------- associated item `B` not found for this struct
+...
+LL | S::B;
+ | ^ associated item not found in `S`
+ |
+ = help: items from traits can only be used if the trait is in scope
+help: the following trait is implemented but not in scope; perhaps add a `use` for it:
+ |
+LL | use assoc_const::B;
+ |
+
+error[E0624]: associated constant `A` is private
+ --> $DIR/item-privacy.rs:101:14
+ |
+LL | const A: u8 = 0;
+ | ----------- private associated constant defined here
+...
+LL | <dyn C>::A;
+ | ^ private associated constant
+
+error[E0038]: the trait `assoc_const::C` cannot be made into an object
+ --> $DIR/item-privacy.rs:101:6
+ |
+LL | <dyn C>::A;
+ | ^^^^^ `assoc_const::C` cannot be made into an object
+ |
+note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
+ --> $DIR/item-privacy.rs:25:15
+ |
+LL | const A: u8 = 0;
+ | ^ ...because it contains this associated `const`
+...
+LL | const B: u8 = 0;
+ | ^ ...because it contains this associated `const`
+...
+LL | pub trait C: A + B {
+ | - this trait cannot be made into an object...
+LL | const C: u8 = 0;
+ | ^ ...because it contains this associated `const`
+ = help: consider moving `C` to another trait
+ = help: consider moving `A` to another trait
+ = help: consider moving `B` to another trait
+
+error[E0223]: ambiguous associated type
+ --> $DIR/item-privacy.rs:115:12
+ |
+LL | let _: S::A;
+ | ^^^^ help: use fully-qualified syntax: `<S as Trait>::A`
+
+error[E0223]: ambiguous associated type
+ --> $DIR/item-privacy.rs:116:12
+ |
+LL | let _: S::B;
+ | ^^^^ help: use fully-qualified syntax: `<S as Trait>::B`
+
+error[E0223]: ambiguous associated type
+ --> $DIR/item-privacy.rs:117:12
+ |
+LL | let _: S::C;
+ | ^^^^ help: use fully-qualified syntax: `<S as Trait>::C`
+
+error: associated type `A` is private
+ --> $DIR/item-privacy.rs:119:12
+ |
+LL | let _: T::A;
+ | ^^^^ private associated type
+
+error: associated type `A` is private
+ --> $DIR/item-privacy.rs:128:9
+ |
+LL | A = u8,
+ | ^^^^^^ private associated type
+
+error: aborting due to 15 previous errors
+
+Some errors have detailed explanations: E0038, E0223, E0599, E0624.
+For more information about an error, try `rustc --explain E0038`.