}
BoundPolarity polarity = impl_block.is_exclam ()
- ? BoundPolarity::RegularBound
- : BoundPolarity::NegativeBound;
+ ? BoundPolarity::NegativeBound
+ : BoundPolarity::RegularBound;
HIR::ImplBlock *hir_impl_block = new HIR::ImplBlock (
mapping, std::move (impl_items), std::move (generic_params),
std::unique_ptr<HIR::Type> (impl_type),
bool impl_block_missing_trait_items
= !specified_bound.is_error ()
&& trait_reference->size () != trait_item_refs.size ();
- if (impl_block_missing_trait_items)
+ if (impl_block_missing_trait_items
+ && impl_block.get_polarity () == BoundPolarity::RegularBound)
{
// filter the missing impl_items
std::vector<std::reference_wrapper<const TraitItemReference>>
--- /dev/null
+#![feature(negative_impls)]
+
+#[lang = "sized"]
+pub trait Sized {}
+
+pub trait Deref {}
+
+pub trait DerefMut: Deref {
+ type Target;
+
+ /// Mutably dereferences the value.
+ #[stable(feature = "rust1", since = "1.0.0")]
+ fn deref_mut(&mut self) -> &mut Self::Target;
+}
+
+impl<T: ?Sized> !DerefMut for &T {}
box_syntax_feature_gate.rs
dropck_eyepatch_feature_gate.rs
inline_asm_parse_output_operand.rs
+issue-3030.rs
\ No newline at end of file