about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2019-10-31 18:49:22 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2019-10-31 19:08:12 +0200
commit56d7bb2133c82ec73fa17d9b02872feb4bf09c63 (patch)
tree43b98bf8affbd606601c14b472108225cf339090 /src
parentb05d36228ef95f4d628b7f8338ecca3b320806e4 (diff)
downloadrust-56d7bb2133c82ec73fa17d9b02872feb4bf09c63.tar.gz
rust-56d7bb2133c82ec73fa17d9b02872feb4bf09c63.zip
Revert "pre-expansion gate associated_type_bounds"
This reverts commit c17a1fd7d0ef0f1f546445d0c8bdb11be55e4be7.
Diffstat (limited to 'src')
-rw-r--r--src/libsyntax/feature_gate/check.rs15
-rw-r--r--src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs4
-rw-r--r--src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr11
3 files changed, 15 insertions, 15 deletions
diff --git a/src/libsyntax/feature_gate/check.rs b/src/libsyntax/feature_gate/check.rs
index 184a38dfaed..a4fc6114b98 100644
--- a/src/libsyntax/feature_gate/check.rs
+++ b/src/libsyntax/feature_gate/check.rs
@@ -3,7 +3,10 @@ use super::accepted::ACCEPTED_FEATURES;
 use super::removed::{REMOVED_FEATURES, STABLE_REMOVED_FEATURES};
 use super::builtin_attrs::{AttributeGate, BUILTIN_ATTRIBUTE_MAP};
 
-use crate::ast::{self, NodeId, GenericParam, GenericParamKind, PatKind, RangeEnd, VariantData};
+use crate::ast::{
+    self, AssocTyConstraint, AssocTyConstraintKind, NodeId, GenericParam, GenericParamKind,
+    PatKind, RangeEnd, VariantData,
+};
 use crate::attr::{self, check_builtin_attribute};
 use crate::source_map::Spanned;
 use crate::edition::{ALL_EDITIONS, Edition};
@@ -604,6 +607,16 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
         visit::walk_generic_param(self, param)
     }
 
+    fn visit_assoc_ty_constraint(&mut self, constraint: &'a AssocTyConstraint) {
+        match constraint.kind {
+            AssocTyConstraintKind::Bound { .. } =>
+                gate_feature_post!(&self, associated_type_bounds, constraint.span,
+                    "associated type bounds are unstable"),
+            _ => {}
+        }
+        visit::walk_assoc_ty_constraint(self, constraint)
+    }
+
     fn visit_trait_item(&mut self, ti: &'a ast::TraitItem) {
         match ti.kind {
             ast::TraitItemKind::Method(ref sig, ref block) => {
diff --git a/src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs b/src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs
index 00737d8428b..0faa9090f4e 100644
--- a/src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs
+++ b/src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs
@@ -70,7 +70,3 @@ fn main() {
     // FIXME: uncomment when `impl_trait_in_bindings` feature is fixed.
     // let _: &dyn Tr1<As1: Copy> = &S1;
 }
-
-macro_rules! accept_path { ($p:path) => {} }
-accept_path!(Iterator<Item: Ord>);
-//~^ ERROR associated type bounds are unstable
diff --git a/src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr b/src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr
index a7ab7614d7b..84af2a0163a 100644
--- a/src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr
+++ b/src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr
@@ -115,15 +115,6 @@ LL |     let _: impl Tr1<As1: Copy> = S1;
    = note: for more information, see https://github.com/rust-lang/rust/issues/52662
    = help: add `#![feature(associated_type_bounds)]` to the crate attributes to enable
 
-error[E0658]: associated type bounds are unstable
-  --> $DIR/feature-gate-associated_type_bounds.rs:75:23
-   |
-LL | accept_path!(Iterator<Item: Ord>);
-   |                       ^^^^^^^^^
-   |
-   = note: for more information, see https://github.com/rust-lang/rust/issues/52662
-   = help: add `#![feature(associated_type_bounds)]` to the crate attributes to enable
-
 error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
   --> $DIR/feature-gate-associated_type_bounds.rs:54:14
    |
@@ -148,7 +139,7 @@ LL |     let _: impl Tr1<As1: Copy> = S1;
    |
    = help: add `#![feature(impl_trait_in_bindings)]` to the crate attributes to enable
 
-error: aborting due to 17 previous errors
+error: aborting due to 16 previous errors
 
 Some errors have detailed explanations: E0562, E0658.
 For more information about an error, try `rustc --explain E0562`.