Commit Graph

198 Commits

Author SHA1 Message Date
Ariel Ben-Yehuda
277eeb95c3 move destructors_for_type into AdtDef 2015-08-25 21:52:15 +03:00
Ariel Ben-Yehuda
65e9bc0c93 store the CodeExtent directly in FreeRegion
this makes the code cleaner
2015-08-24 20:46:52 +03:00
Ariel Ben-Yehuda
fc304384e6 Use a Vec instead of an HashMap for the scope hierarchy
This increases regionck performance greatly - type-checking on
librustc decreased from 9.1s to 8.1s. Because of Amdahl's law,
total performance is improved only by about 1.5% (LLVM wizards,
this is your opportunity to shine!).

before:
576.91user 4.26system 7:42.36elapsed 125%CPU (0avgtext+0avgdata 1142192maxresident)k
after:
566.50user 4.84system 7:36.84elapsed 125%CPU (0avgtext+0avgdata 1124304maxresident)k

I am somewhat worried really need to find out why we have this Red Queen's
Race going on here. Originally I suspected it may be a problem from RFC1214's
warnings, but it seems to be an effect from other changes.

However, the increase seems to be mostly in LLVM's time, so I guess
it's the LLVM wizards' problem.
2015-08-24 20:24:38 +03:00
Ariel Ben-Yehuda
316510f5e2 split ReInfer into ReVar and ReSkolemized
this should reduce the size of ty::Region to 24 bytes (from 32),
and they are treated differently in most cases anyway.
2015-08-24 20:10:25 +03:00
bors
797d0ba59c Auto merge of #27857 - Manishearth:improve-fnkind, r=pnkfelix
Since enums are namespaced now, should we also remove the `Fk` prefixes from `FnKind` and remove the reexport? (The reexport must be removed because otherwise it clashes with glob imports containing `ItemFn`). IMO writing `FnKind::Method` is much clearer than `FkMethod`.
2015-08-24 12:47:57 +00:00
Niko Matsakis
c0de23de81 convert to use is_local instead of == LOCAL_CRATE 2015-08-24 05:35:34 -04:00
Niko Matsakis
e91bef2e05 fallout from moving def-id 2015-08-24 05:35:34 -04:00
Manish Goregaokar
c03bf18b84 FnFnBlock -> FkClosure 2015-08-16 18:23:58 +05:30
Alex Crichton
2972b77134 Add issue for the rustc_private feature everywhere 2015-08-15 18:09:17 -07:00
bors
a4066271b7 Auto merge of #27758 - nathankleyn:diagnostics-386, r=Manishearth
This adds detailed diagnostics for E0386, 'cannot assign to data in an
immutable container'.

This is part of rust-lang/rust#24407.

r? @Manishearth
2015-08-13 20:37:18 +00:00
Nathan Kleyn
b0b2952189 Improve interior mutability example for E0386. 2015-08-13 10:17:56 +01:00
Nathan Kleyn
75c6428e1b Add details about types with interior mutability to E0386.
Types with interior mutability like `Cell` and `RefCell` can be used to
skirt the restriction on mutating mutable values inside an immutable
container.
2015-08-13 10:17:56 +01:00
Nathan Kleyn
55752a4bde Add detailed diagnostics for E0386.
This adds detailed diagnostics for E0386, 'cannot assign to data in an
immutable container'.
2015-08-13 10:17:56 +01:00
Nathan Kleyn
67c7fd710b Improve code examples for E0383 long diagnostic. 2015-08-13 09:11:06 +01:00
Nathan Kleyn
9c0d2b2465 Add detailed diagnostics for E0383.
This adds detailed diagnostics for E0383, 'partial reinitialization of
uninitialized structure'.

This is part of rust-lang/rust#24407.
2015-08-13 09:06:29 +01:00
Alex Crichton
737397c584 rollup merge of #27622: eefriedman/https-url
Also fixes a few outdated links.
2015-08-11 22:11:25 -07:00
Alex Crichton
93bb57e765 rollup merge of #27605: AlisdairO/diagnostics387
As title :-)
Part of #24407.

r? @Manishearth
2015-08-11 22:11:20 -07:00
Alisdair Owens
f0419661f0 fix import nit for long diagnostics on E0387 2015-08-10 20:35:27 +01:00
Alisdair Owens
78d28336fe add info about cell types to diagnostic message E0387 2015-08-10 16:48:53 +01:00
Eli Friedman
bbbfed2f93 Use https URLs to refer to rust-lang.org where appropriate.
Also fixes a few outdated links.
2015-08-09 14:28:46 -07:00
Alisdair Owens
dadc717041 add long diagnostics for E0382 2015-08-08 20:17:03 +01:00
Alisdair Owens
d83a0fdf7d add diagnostics for E0387 2015-08-08 17:38:50 +01:00
Ariel Ben-Yehuda
5f3c1412ad use VariantDef instead of struct_fields 2015-08-06 16:54:40 +03:00
Ariel Ben-Yehuda
764310e7bb introduce an ADTDef struct for struct/enum definitions 2015-08-06 14:16:56 +03:00
Agoston Szepessy
74787b98ba Added error explanation for E0384. 2015-08-02 15:30:06 -04:00
bors
55ede7ed8e Auto merge of #27234 - oli-obk:move_get_name_get_ident_to_impl, r=eddyb
this has quite some fallout. but also made lots of stuff more readable imo

[breaking-change] for plugin authors
2015-07-28 21:14:28 +00:00
Oliver Schneider
00a5e66f81 remove get_ident and get_name, make as_str sound 2015-07-28 18:07:20 +02:00
Felix S. Klock II
22796c8bad build fragmented map earlier to make its dependencies clearer. 2015-07-28 16:15:56 +02:00
Felix S. Klock II
d3d552b71b rustc and rustc::borrowck: pass fragment info down into trans. 2015-07-28 16:12:32 +02:00
Alisdair Owens
38c5af86a1 Add long diagnostics for E0373 2015-07-23 15:07:26 +01:00
P1start
0bf9fbb6dd Suggest using ref inline in an error 2015-07-11 13:59:09 +12:00
bors
f027bdc1c8 Auto merge of #26378 - arielb1:unused-mut, r=pnkfelix
This makes it somewhat more aggressive, so this is kind-of a [breaking-change] for these compiling with `#[deny(unused_mut)]`.

r? @pnkfelix
2015-07-03 21:31:46 +00:00
Ariel Ben-Yehuda
a18d9842ed Make the unused_mut lint smarter with respect to locals.
Fixes #26332
2015-07-01 00:12:12 +03:00
Ariel Ben-Yehuda
2f45294a50 Clean-up assignment checking in borrowck 2015-07-01 00:12:12 +03:00
Jared Roesch
9faae6a5ca Remove Typer and ClosureTyper
This commit finalizes the work of the past commits by fully moving the fulfillment context into
the InferCtxt, cleaning up related context interfaces, removing the Typer and ClosureTyper
traits and cleaning up related intefaces
2015-06-30 02:41:40 -07:00
Jared Roesch
e2d7e904ca Remove Typer + ClosureTyper impls for ParameterEnv 2015-06-30 02:40:17 -07:00
Eduard Burtescu
ad66c215aa rustc: switch most remaining middle::ty functions to methods. 2015-06-26 07:34:57 +03:00
Nick Hamann
0cc26b2058 Use correct type for "use of moved value" error with closures.
Fixes #24357
2015-06-24 20:15:11 -05:00
Eduard Burtescu
0b58fdf925 rustc: remove Repr and UserString. 2015-06-19 01:39:26 +03:00
Eduard Burtescu
dfbc9608ce rustc: replace Repr/UserString impls with Debug/Display ones. 2015-06-19 01:36:20 +03:00
Eduard Burtescu
b510ea1487 Clean up unused argument/variable warnings. 2015-06-19 01:32:45 +03:00
Eduard Burtescu
a3727559c6 rustc: use the TLS type context in Repr and UserString. 2015-06-19 01:32:44 +03:00
Eduard Burtescu
6061707348 rustc: leave only one free top-level function in ppaux, and private. 2015-06-19 01:18:43 +03:00
Eduard Burtescu
4e0cb86a5c rustc: reduce ppaux's public footprint to 5 functions. 2015-06-19 01:18:42 +03:00
Eli Friedman
199e60aa22 Remove unused type InteriorSafety. 2015-06-16 13:05:07 -07:00
Eli Friedman
3c69db4c3c Cleanup: rename middle::ty::sty and its variants.
Use camel-case naming, and use names which actually make sense in modern Rust.
2015-06-12 11:07:16 -07:00
bors
b5b3a99f84 Auto merge of #26190 - Veedrac:no-iter, r=alexcrichton
Pull request for #26188.
2015-06-11 18:10:08 +00:00
Joshua Landau
d7f5fa4636 Conver reborrows to .iter() calls where appropriate 2015-06-11 13:56:07 +01:00
Joshua Landau
ca7418b846 Removed many pointless calls to *iter() and iter_mut() 2015-06-10 21:14:03 +01:00
bors
ae8a3c92a7 Auto merge of #26182 - Manishearth:rollup, r=Manishearth
- Successful merges: #26142, #26143, #26145, #26146, #26164, #26174
- Failed merges:
2015-06-10 18:41:42 +00:00