warning: a method with this name may be added to the standard library in the future
  --> $DIR/inference_unstable.rs:16:20
   |
LL |     assert_eq!('x'.ipu_flatten(), 1);
   |                    ^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
   = help: call with fully qualified syntax `inference_unstable_itertools::IpuItertools::ipu_flatten(...)` to keep using the current method
   = note: `#[warn(unstable_name_collisions)]` on by default
help: add `#![feature(ipu_flatten)]` to the crate attributes to enable `inference_unstable_iterator::IpuIterator::ipu_flatten`
   |
LL + #![feature(ipu_flatten)]
   |

warning: a method with this name may be added to the standard library in the future
  --> $DIR/inference_unstable.rs:19:20
   |
LL |     assert_eq!('x'.ipu_by_value_vs_by_ref(), 1);
   |                    ^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
   = help: call with fully qualified syntax `inference_unstable_itertools::IpuItertools::ipu_by_value_vs_by_ref(...)` to keep using the current method
help: add `#![feature(ipu_flatten)]` to the crate attributes to enable `inference_unstable_iterator::IpuIterator::ipu_by_value_vs_by_ref`
   |
LL + #![feature(ipu_flatten)]
   |

warning: a method with this name may be added to the standard library in the future
  --> $DIR/inference_unstable.rs:22:20
   |
LL |     assert_eq!('x'.ipu_by_ref_vs_by_ref_mut(), 1);
   |                    ^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
   = help: call with fully qualified syntax `inference_unstable_itertools::IpuItertools::ipu_by_ref_vs_by_ref_mut(...)` to keep using the current method
help: add `#![feature(ipu_flatten)]` to the crate attributes to enable `inference_unstable_iterator::IpuIterator::ipu_by_ref_vs_by_ref_mut`
   |
LL + #![feature(ipu_flatten)]
   |

warning: a method with this name may be added to the standard library in the future
  --> $DIR/inference_unstable.rs:25:40
   |
LL |     assert_eq!((&mut 'x' as *mut char).ipu_by_mut_ptr_vs_by_const_ptr(), 1);
   |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
   = help: call with fully qualified syntax `inference_unstable_itertools::IpuItertools::ipu_by_mut_ptr_vs_by_const_ptr(...)` to keep using the current method
help: add `#![feature(ipu_flatten)]` to the crate attributes to enable `inference_unstable_iterator::IpuIterator::ipu_by_mut_ptr_vs_by_const_ptr`
   |
LL + #![feature(ipu_flatten)]
   |

warning: an associated constant with this name may be added to the standard library in the future
  --> $DIR/inference_unstable.rs:28:16
   |
LL |     assert_eq!(char::C, 1);
   |                ^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
LL |     assert_eq!(<char as IpuItertools>::C, 1);
   |                ~~~~~~~~~~~~~~~~~~~~~~~~~
help: add `#![feature(assoc_const_ipu_iter)]` to the crate attributes to enable `inference_unstable_iterator::IpuIterator::C`
   |
LL + #![feature(assoc_const_ipu_iter)]
   |

warning: 5 warnings emitted

