]> git.lizzy.rs Git - rust.git/commit
Remove the def-id from type parameters. Having this def-id was bad for several reasons:
authorNiko Matsakis <niko@alum.mit.edu>
Sun, 28 Dec 2014 00:42:27 +0000 (19:42 -0500)
committerNiko Matsakis <niko@alum.mit.edu>
Tue, 30 Dec 2014 14:36:22 +0000 (09:36 -0500)
commit2bbd2f9ceafb86614b431cff4184f6e8ce7c973f
tree1d1e6de5d56ca1665dc15532228b9036148cbd23
parent964a5fabb7e32ac2b53678497a359e6eba2d5261
Remove the def-id from type parameters. Having this def-id was bad for several reasons:

1. Produced more unique types than is necessary. This increases memory consumption.
2. Linking the type parameter to its definition *seems* like a good idea, but it
   encourages reliance on the bounds listing.
3. It made pretty-printing harder and in particular was causing bad error messages
   when errors occurred before the `TypeParameterDef` entries were fully stored.
14 files changed:
src/librustc/metadata/tydecode.rs
src/librustc/metadata/tyencode.rs
src/librustc/middle/astencode.rs
src/librustc/middle/def.rs
src/librustc/middle/ty.rs
src/librustc/util/ppaux.rs
src/librustc_resolve/lib.rs
src/librustc_typeck/astconv.rs
src/librustc_typeck/check/mod.rs
src/librustc_typeck/check/regionck.rs
src/librustc_typeck/collect.rs
src/librustc_typeck/variance.rs
src/librustdoc/clean/mod.rs
src/librustdoc/html/format.rs