about summary refs log tree commit diff
path: root/src/rustllvm
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-10-31 11:16:44 +0000
committerbors <bors@rust-lang.org>2014-10-31 11:16:44 +0000
commit82045ca3606dfe070fce99ca71fb6a9d39217b73 (patch)
treeb2cb83f5450837190f250d111177c4f752bef35b /src/rustllvm
parent065caf34f5ff29e04605f95d9c5d511af219439a (diff)
parenta2624fc90891b8265550229e38bc255e61a9d335 (diff)
downloadrust-82045ca3606dfe070fce99ca71fb6a9d39217b73.tar.gz
rust-82045ca3606dfe070fce99ca71fb6a9d39217b73.zip
auto merge of #18264 : jakub-/rust/var-ids-in-error-messages, r=nikomatsakis
This PR aims to improve the readability of diagnostic messages that involve unresolved type variables. Currently, messages like the following:

```rust
mismatched types: expected `core::result::Result<uint,()>`, found `core::option::Option<<generic #1>>`
<anon>:6     let a: Result<uint, ()> = None;
                                       ^~~~
mismatched types: expected `&mut <generic #2>`, found `uint`
<anon>:7     f(42u);
               ^~~
```

tend to appear unapproachable to new users. [0] While specific type var IDs are valuable in
diagnostics that deal with more than one such variable, in practice many messages
only mention one. In those cases, leaving out the specific number makes the messages
slightly less terrifying.

```rust
mismatched types: expected `core::result::Result<uint, ()>`, found `core::option::Option<_>`
<anon>:6     let a: Result<uint, ()> = None;
                                       ^~~~
mismatched types: expected `&mut _`, found `uint`
<anon>:7     f(42u);
               ^~~
```

As you can see, I also tweaked the aesthetics slightly by changing type variables to use the type hole syntax _. For integer variables, the syntax used is:

```rust
mismatched types: expected `core::result::Result<uint, ()>`, found `core::option::Option<_#1i>`
<anon>:6     let a: Result<uint, ()> = Some(1);
```

and float variables:

```rust
mismatched types: expected `core::result::Result<uint, ()>`, found `core::option::Option<_#1f>`
<anon>:6     let a: Result<uint, ()> = Some(0.5);
```

[0] https://twitter.com/coda/status/517713085465772032

Closes https://github.com/rust-lang/rust/issues/2632.
Closes https://github.com/rust-lang/rust/issues/3404.
Closes https://github.com/rust-lang/rust/issues/18426.
Diffstat (limited to 'src/rustllvm')
0 files changed, 0 insertions, 0 deletions