Skip to content

Commit

Permalink
Rollup merge of #61333 - varkor:apit-const-param-ice, r=estebank
Browse files Browse the repository at this point in the history
Fix ICE with APIT in a function with a const parameter

Fixes #60953.
  • Loading branch information
Centril authored May 30, 2019
2 parents 311f811 + 998ef68 commit 6f65198
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/librustc/hir/lowering.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1083,6 +1083,18 @@ impl<'a> LoweringContext<'a> {
.chain(in_band_defs)
.collect();

// FIXME(const_generics): the compiler doesn't always cope with
// unsorted generic parameters at the moment, so we make sure
// that they're ordered correctly here for now. (When we chain
// the `in_band_defs`, we might make the order unsorted.)
lowered_generics.params.sort_by_key(|param| {
match param.kind {
hir::GenericParamKind::Lifetime { .. } => ParamKindOrd::Lifetime,
hir::GenericParamKind::Type { .. } => ParamKindOrd::Type,
hir::GenericParamKind::Const { .. } => ParamKindOrd::Const,
}
});

(lowered_generics, res)
}

Expand Down
10 changes: 10 additions & 0 deletions src/test/ui/const-generics/apit-with-const-param.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// run-pass

#![feature(const_generics)]
//~^ WARN the feature `const_generics` is incomplete and may cause the compiler to crash

trait Trait {}

fn f<const N: usize>(_: impl Trait) {}

fn main() {}
6 changes: 6 additions & 0 deletions src/test/ui/const-generics/apit-with-const-param.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
warning: the feature `const_generics` is incomplete and may cause the compiler to crash
--> $DIR/apit-with-const-param.rs:3:12
|
LL | #![feature(const_generics)]
| ^^^^^^^^^^^^^^

0 comments on commit 6f65198

Please sign in to comment.