about summary refs log tree commit diff
path: root/tests/pretty/hir-fn-params.rs
blob: 5ace5289d08d7d7234ee68e568446b136ad4c230 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//@ pretty-compare-only
//@ pretty-mode:hir
//@ pp-exact:hir-fn-params.pp

// This tests the pretty-printing of various kinds of function parameters.

//---------------------------------------------------------------------------
// Normal functions and methods.

fn normal_fn(_: u32, a: u32) {}

struct S;
impl S {
    fn method(_: u32, a: u32) {}
}

//---------------------------------------------------------------------------
// More exotic forms, which get a different pretty-printing path. In the past,
// anonymous params and `_` params printed incorrectly, e.g. `fn(u32, _: u32)`
// was printed as `fn(: u32, : u32)`.
//
// Ideally we would also test invalid patterns, e.g. `fn(1: u32, &a: u32)`,
// because they had similar problems. But the pretty-printing tests currently
// can't contain compile errors.

fn bare_fn(x: fn(u32, _: u32, a: u32)) {}

extern "C" {
    fn foreign_fn(_: u32, a: u32);
}

trait T {
    fn trait_fn(u32, _: u32, a: u32);
}