diff options
| author | bors <bors@rust-lang.org> | 2021-03-24 04:13:27 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-03-24 04:13:27 +0000 |
| commit | 5b33de3340c7b36646af46303a30f7066b4bd7db (patch) | |
| tree | 1350840ab7e5d4c312507ab81aad245ff328fa5a /compiler/rustc_passes | |
| parent | db492ecd5ba6bd82205612cebb9034710653f0c2 (diff) | |
| parent | 33370fd9829c5bb843b117d11cc7e948f4b824f6 (diff) | |
| download | rust-5b33de3340c7b36646af46303a30f7066b4bd7db.tar.gz rust-5b33de3340c7b36646af46303a30f7066b4bd7db.zip | |
Auto merge of #75384 - JulianKnodt:cg_def, r=varkor,lcnr
implement `feature(const_generics_defaults)` Implements const generics defaults `struct Example<const N: usize=3>`, as well as a query for getting the default of a given const-parameter's def id. There are some remaining FIXME's but they were specified as not blocking for merging this PR. This also puts the defaults behind the unstable feature gate `#![feature(const_generics_defaults)]`. ~~This currently creates a field which is always false on `GenericParamDefKind` for future use when consts are permitted to have defaults. I'm not sure if this is exactly what is best for adding default parameters, but I mimicked the style of type defaults, so hopefully this is ok.~~ r? `@lcnr`
Diffstat (limited to 'compiler/rustc_passes')
| -rw-r--r-- | compiler/rustc_passes/src/stability.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/compiler/rustc_passes/src/stability.rs b/compiler/rustc_passes/src/stability.rs index dd9cb51c858..8a6ac843534 100644 --- a/compiler/rustc_passes/src/stability.rs +++ b/compiler/rustc_passes/src/stability.rs @@ -507,10 +507,9 @@ impl<'a, 'tcx> Visitor<'tcx> for Annotator<'a, 'tcx> { fn visit_generic_param(&mut self, p: &'tcx hir::GenericParam<'tcx>) { let kind = match &p.kind { - // FIXME(const_generics_defaults) - hir::GenericParamKind::Type { default, .. } if default.is_some() => { - AnnotationKind::Container - } + // Allow stability attributes on default generic arguments. + hir::GenericParamKind::Type { default: Some(_), .. } + | hir::GenericParamKind::Const { default: Some(_), .. } => AnnotationKind::Container, _ => AnnotationKind::Prohibited, }; |
