bors
32a4bd9ae5
Auto merge of #29102 - petrochenkov:spanvis, r=alexcrichton
...
Closes https://github.com/rust-lang/rust/issues/28750
`Arm` and `Generics` don't have spans at all, so it's not a visitor's problem, `visit_struct_def` was fixed in https://github.com/rust-lang/rust/pull/28816
2015-10-17 06:16:09 +00:00
bors
747d951e88
Auto merge of #29014 - petrochenkov:stability, r=brson
...
Stricter checking of stability attributes + enforcement of their invariants at compile time
(+ removed dead file librustc_front/attr.rs)
I intended to enforce use of `reason` for unstable items as well (it normally presents for new items), but it turned out too intrusive, many older unstable items don't have `reason`s.
r? @aturon
I'm studying how stability works and do some refactoring along the way, so it's probably not the last PR.
2015-10-16 17:47:01 +00:00
Vadim Petrochenkov
a0f2a591e0
Provide span for visit_enum_def
2015-10-16 17:17:14 +03:00
Manish Goregaokar
e184c2daf1
Add docs for ast_ty_to_prim_ty
...
Confusion about what this does caused a bug in Servo's lints.
2015-10-15 20:14:52 +05:30
Vadim Petrochenkov
46750d0409
Merge VariantData and VariantData_
2015-10-13 15:19:27 +03:00
Vadim Petrochenkov
a5225cbe92
Fix rebase 2
2015-10-13 15:19:26 +03:00
Vadim Petrochenkov
40aa09e4c9
Merge struct fields and struct kind
2015-10-13 15:19:25 +03:00
Vadim Petrochenkov
30af54dede
Dict -> Struct, StructDef -> VariantData, def -> data
2015-10-13 15:19:24 +03:00
Vadim Petrochenkov
f4e3851aa7
Fix rebase
2015-10-13 15:19:22 +03:00
Vadim Petrochenkov
beda1f88a7
Provide span for visit_struct_def + remove some dead code
2015-10-13 15:19:19 +03:00
Vadim Petrochenkov
877c35e8a2
Remove now redundant NodeId from Variant
2015-10-13 15:19:18 +03:00
Vadim Petrochenkov
495566ee61
Decouple structure kinds from NodeIds
2015-10-13 15:19:17 +03:00
Vadim Petrochenkov
ab671552c3
Refactor attr::Stability
...
Stricter checking + enforcement of invariants at compile time
2015-10-13 06:01:31 +03:00
bors
e6abcbcb21
Auto merge of #28938 - GlenDC:master, r=Manishearth
...
Here is my attempt to resolve issue #28822 , @Manishearth.
Please let me know if it's fine. And if not, what should I do instead?
This issue felt like quite a good start for some rust contributions. It allows me to get used to the workflow and codebase of rust in an easy-to-swallow manner. Are there any other issues you would recommend me to look at? :) Would love to do some more stuff!
2015-10-10 12:02:24 +00:00
glendc
55546362d9
Whitelisting PatWild for E0022. Fix #28822
2015-10-10 09:27:24 +00:00
bors
87cd2c0827
Auto merge of #28861 - pnkfelix:fsk-nonparam-dropck-issue28498, r=arielb1
...
implement RFC 1238: nonparametric dropck.
cc #28498
cc @nikomatsakis
2015-10-10 00:39:29 +00:00
Felix S. Klock II
a445f234a6
review comment: further refinement of comment above fn is_adt_dtorck
.
2015-10-09 18:42:14 +02:00
bors
c14609035d
Auto merge of #28857 - nrc:lowering, r=nikomatsakis
...
r? @nikomatsakis
2015-10-09 08:53:45 +00:00
Nick Cameron
a62a529eea
review comments
2015-10-09 21:44:44 +13:00
bors
0f536431f5
Auto merge of #28888 - arielb1:variant-ctor, r=eddyb
...
this makes the code cleaner, and is a complement to the cleanup on the
HIR side.
r? @eddyb
2015-10-09 01:11:45 +00:00
Nick Cameron
2b4f28e531
Misc fixups
2015-10-09 11:53:42 +13:00
Nick Cameron
08f3752270
hygiene for for
loops, if let
, while let
...
and some unrelated test cleanups
2015-10-09 11:53:41 +13:00
Nick Cameron
e0c74868c3
Fix stability
2015-10-09 11:53:41 +13:00
Nick Cameron
20083c1e1f
Move for
loop desugaring to lowering
2015-10-09 11:53:41 +13:00
Cristi Cobzarenco
4b308b44e1
typos: fix a grabbag of typos all over the place
2015-10-08 19:49:31 +01:00
Felix S. Klock II
92da3f9464
review comment: reduce the is_adt_dtorck
method to just a check for the attribute.
2015-10-08 14:43:07 +02:00
Ariel Ben-Yehuda
8afa1762f0
use the struct's ctor-id as its variant def-id
...
this makes the code cleaner, and is a complement to the cleanup on the
HIR side.
2015-10-07 20:31:23 +03:00
Felix S. Klock II
9868df2fd5
Non-parametric dropck; instead trust an unsafe attribute (RFC 1238).
...
Implement cannot-assume-parametricity (CAP) from RFC 1238, and add the
UGEH attribute.
----
Note that we check for the attribute attached to the dtor method, not
the Drop impl.
(This is just to match the specification of RFC and the tests; I am
not wedded to this approach.)
2015-10-06 14:16:20 +02:00
Ms2ger
6b5349a45e
Fix some typos.
2015-10-05 16:48:57 +02:00
Niko Matsakis
7e1e830a6f
change PartialEq impl for ConstVal so that two constants are ==
...
if they represent the same constant; otherwise the match algorithm
goes into infinite recursion when a pattern contains `NaN`
2015-10-04 21:19:45 -04:00
Niko Matsakis
1f4acfa691
switch to using constvals for constants, instead of having constant
...
trees in MIR
2015-10-04 21:08:32 -04:00
bors
130851e030
Auto merge of #28669 - arielb1:well-formed-methods, r=nikomatsakis
...
By RFC1214:
> Before calling a fn, we check that its argument and return types are WF.
The previous code only checked the trait-ref, which was not enough
in several cases.
As this is a soundness fix, it is a [breaking-change]. Some new annotations are needed, which I think are because of #18653 and the imperfection of `projection_must_outlive` (that can probably be worked around by moving the wf obligation later).
Fixes #28609
r? @nikomatsakis
2015-10-03 22:07:37 +00:00
bors
3e06daac83
Auto merge of #28521 - arielb1:metadiet, r=eddyb
...
libcore.rlib reduced from 19121 kiB to 15934 kiB - 20% win.
The librustc encoded AST is 9013500 bytes long - for the record, librustc consists of about 2254126 characters. Might be worth looking at.
r? @eddyb
2015-10-03 17:33:10 +00:00
bors
98df45830a
Auto merge of #28672 - sanxiyn:const-eval-span, r=alexcrichton
...
Fix #28402 .
2015-10-03 00:36:50 +00:00
bors
669fc7f7d1
Auto merge of #28626 - arielb1:closure-needs-infer, r=nikomatsakis
...
Fixes #28550
2015-10-02 21:02:49 +00:00
Ariel Ben-Yehuda
ce70207250
fix fallout
...
looks like some mix of #18653 and `projection_must_outlive`, but
that needs to be investigated further (crater run?)
2015-10-02 23:40:10 +03:00
Seo Sanghyeon
f3211b1578
Add a method to test span containment
2015-10-03 00:36:20 +09:00
Ariel Ben-Yehuda
eae41d3078
unify the 2 impl indexes
2015-10-02 16:44:26 +03:00
Ariel Ben-Yehuda
55d35f12ae
Merge branch 'master' into metadiet
...
rlib sizes:
1445222 liballoc_jemalloc-bb943c5a.rlib
10664 liballoc_system-bb943c5a.rlib
143592 libarena-bb943c5a.rlib
3639102 libcollections-bb943c5a.rlib
16316910 libcore-bb943c5a.rlib
214154 libflate-bb943c5a.rlib
231440 libfmt_macros-bb943c5a.rlib
536976 libgetopts-bb943c5a.rlib
209672 libgraphviz-bb943c5a.rlib
408008 liblibc-bb943c5a.rlib
189610 liblog-bb943c5a.rlib
662184 librand-bb943c5a.rlib
605112 librbml-bb943c5a.rlib
1397820 librustc_back-bb943c5a.rlib
38383772 librustc-bb943c5a.rlib
12842 librustc_bitflags-bb943c5a.rlib
2297822 librustc_borrowck-bb943c5a.rlib
571064 librustc_data_structures-bb943c5a.rlib
9356542 librustc_driver-bb943c5a.rlib
9477226 librustc_front-bb943c5a.rlib
1605698 librustc_lint-bb943c5a.rlib
77111720 librustc_llvm-bb943c5a.rlib
4783848 librustc_mir-bb943c5a.rlib
3534256 librustc_platform_intrinsics-bb943c5a.rlib
593038 librustc_privacy-bb943c5a.rlib
3122202 librustc_resolve-bb943c5a.rlib
14185212 librustc_trans-bb943c5a.rlib
11940328 librustc_typeck-bb943c5a.rlib
1634264 librustc_unicode-bb943c5a.rlib
15564160 librustdoc-bb943c5a.rlib
8153964 libstd-bb943c5a.rlib
30589338 libsyntax-bb943c5a.rlib
897110 libterm-bb943c5a.rlib
1360662 libtest-bb943c5a.rlib
2015-10-02 16:13:50 +03:00
Manish Goregaokar
9155edf6a2
Rollup merge of #28686 - eefriedman:unresolved-path-error, r=nikomatsakis
...
The behavior here isn't really ideal, but we can't really do much better
given the current state of constant evaluation.
The changes to ExprUseVisitor are to avoid a compile error; apparently
that bit of code is extremely sensitive to changes in other areas of the
compiler.
Fixes #28670 , and probably a bunch of duplicates.
2015-10-02 13:07:22 +05:30
bors
0ffc682975
Auto merge of #28790 - arielb1:unsafe-coerce, r=eddyb
...
Fixes #28776
r? @eddyb
2015-10-02 03:28:57 +00:00
Ariel Ben-Yehuda
db817ceda4
remove the code that encodes type parameter defs
...
there are no type parameter defs in the relevant range
2015-10-01 22:31:09 +03:00
Ariel Ben-Yehuda
a1c921e8a5
don't duplicate item types between encoder <-> astencode
...
a 5% win on libcore
512576 liballoc-bb943c5a.rlib
1425106 liballoc_jemalloc-bb943c5a.rlib
10070 liballoc_system-bb943c5a.rlib
141332 libarena-bb943c5a.rlib
3611586 libcollections-bb943c5a.rlib
16293400 libcore-bb943c5a.rlib
195018 libflate-bb943c5a.rlib
231940 libfmt_macros-bb943c5a.rlib
532704 libgetopts-bb943c5a.rlib
208094 libgraphviz-bb943c5a.rlib
383522 liblibc-bb943c5a.rlib
183786 liblog-bb943c5a.rlib
658332 librand-bb943c5a.rlib
567676 librbml-bb943c5a.rlib
1376114 librustc_back-bb943c5a.rlib
37134688 librustc-bb943c5a.rlib
12826 librustc_bitflags-bb943c5a.rlib
2241942 librustc_borrowck-bb943c5a.rlib
513598 librustc_data_structures-bb943c5a.rlib
9340348 librustc_driver-bb943c5a.rlib
8880472 librustc_front-bb943c5a.rlib
1590548 librustc_lint-bb943c5a.rlib
79149202 librustc_llvm-bb943c5a.rlib
4536740 librustc_mir-bb943c5a.rlib
3528866 librustc_platform_intrinsics-bb943c5a.rlib
588514 librustc_privacy-bb943c5a.rlib
3068562 librustc_resolve-bb943c5a.rlib
13982508 librustc_trans-bb943c5a.rlib
11799790 librustc_typeck-bb943c5a.rlib
1637532 librustc_unicode-bb943c5a.rlib
15611582 librustdoc-bb943c5a.rlib
2649520 libserialize-bb943c5a.rlib
8095050 libstd-bb943c5a.rlib
29391260 libsyntax-bb943c5a.rlib
891210 libterm-bb943c5a.rlib
2015-10-01 22:29:30 +03:00
Ariel Ben-Yehuda
b74219964c
improve the tyencode abbrev format
...
3% win on libcore
528828 liballoc-bb943c5a.rlib
1425126 liballoc_jemalloc-bb943c5a.rlib
10090 liballoc_system-bb943c5a.rlib
144904 libarena-bb943c5a.rlib
3773896 libcollections-bb943c5a.rlib
17075242 libcore-bb943c5a.rlib
195770 libflate-bb943c5a.rlib
234702 libfmt_macros-bb943c5a.rlib
536342 libgetopts-bb943c5a.rlib
212028 libgraphviz-bb943c5a.rlib
397068 liblibc-bb943c5a.rlib
185038 liblog-bb943c5a.rlib
680782 librand-bb943c5a.rlib
577574 librbml-bb943c5a.rlib
1381992 librustc_back-bb943c5a.rlib
37554736 librustc-bb943c5a.rlib
12826 librustc_bitflags-bb943c5a.rlib
2257392 librustc_borrowck-bb943c5a.rlib
533858 librustc_data_structures-bb943c5a.rlib
9338878 librustc_driver-bb943c5a.rlib
8960016 librustc_front-bb943c5a.rlib
1594212 librustc_lint-bb943c5a.rlib
79159342 librustc_llvm-bb943c5a.rlib
4590656 librustc_mir-bb943c5a.rlib
3529292 librustc_platform_intrinsics-bb943c5a.rlib
590688 librustc_privacy-bb943c5a.rlib
3084134 librustc_resolve-bb943c5a.rlib
14032890 librustc_trans-bb943c5a.rlib
11833852 librustc_typeck-bb943c5a.rlib
1641496 librustc_unicode-bb943c5a.rlib
15611582 librustdoc-bb943c5a.rlib
2693764 libserialize-bb943c5a.rlib
8266920 libstd-bb943c5a.rlib
29573790 libsyntax-bb943c5a.rlib
895484 libterm-bb943c5a.rlib
2015-10-01 22:10:09 +03:00
Niko Matsakis
52a02832b8
convert the creepy case to just return None -- in practice, it would
...
have always been returning None anyway, since it was comparing node-ids
across crates incorrectly -- and remove the now unused map
`extern_const_variants`
2015-10-01 10:43:07 -04:00
Niko Matsakis
01f32ace03
Convert DefId to use DefIndex, which is an index into a list of
...
paths, and construct paths for all definitions. Also, stop rewriting
DefIds for closures, and instead just load the closure data from
the original def-id, which may be in another crate.
2015-10-01 10:43:07 -04:00
Niko Matsakis
d7b0eb0f39
build up a set of node-ids that we can construct def-ids from
2015-10-01 10:42:37 -04:00
Niko Matsakis
a0dc2d9a29
Introduce semi-duplicate DefIds into DefLocal/DefUpvar to remove use
...
of xxx_local.
2015-10-01 10:37:19 -04:00
Niko Matsakis
3b1399df2d
Make calling def_id on a DefSelfTy an error; the previous defids that
...
were returned, either the trait or the *self type itself*, were not
particularly representative of what the Def is (a type parameter).
Rewrite paths to handle this case specially, just as they handle the
primitive case specifically. This entire `def_id` codepath is kind of a
mess.
2015-10-01 10:37:19 -04:00
Niko Matsakis
95ce1ebe7c
Move DefLabel out from the def_id() results
2015-10-01 10:37:19 -04:00