Commit graph

1168 commits

Author SHA1 Message Date
Vadim Petrochenkov
7f5a8dcdb9 Remove VariantDef::parent_did 2019-03-24 14:41:35 +03:00
Vadim Petrochenkov
c667c2fc08 Remove methods is_struct/is_tuple/is_unit from VariantData 2019-03-24 12:10:16 +03:00
David Wood
5c3d1e5d76 Separate variant id and variant constructor id.
This commit makes two changes - separating the `NodeId` that identifies
an enum variant from the `NodeId` that identifies the variant's
constructor; and no longer creating a `NodeId` for `Struct`-style enum
variants and structs.

Separation of the variant id and variant constructor id will allow the
rest of RFC 2008 to be implemented by lowering the visibility of the
variant's constructor without lowering the visbility of the variant
itself.

No longer creating a `NodeId` for `Struct`-style enum variants and
structs mostly simplifies logic as previously this `NodeId` wasn't used.
There were various cases where the `NodeId` wouldn't be used unless
there was an unit or tuple struct or enum variant but not all uses of
this `NodeId` had that condition, by removing this `NodeId`, this must
be explicitly dealt with. This change mostly applied cleanly, but there
were one or two cases in name resolution and one case in type check
where the existing logic required a id for `Struct`-style enum variants
and structs.
2019-03-24 12:10:16 +03:00
Guillaume Gomez
befe9cac91 Add test 2019-03-23 14:44:20 +01:00
Guillaume Gomez
dc628b4f67 cleanup 2019-03-23 14:43:27 +01:00
Mazdak Farrokhzad
4c79967760
Rollup merge of #59170 - varkor:const-generics-rustdoc, r=QuietMisdreavus,eddyb
Add const generics to rustdoc

Split out from #53645. This work is a collaborative effort with @yodaldevoid.

The `FIXME`s are waiting on a refactor to `LazyConst`. I'll address these in a follow up, but I thought it would be better to implement the rest now to avoid bitrot.

r? @QuietMisdreavus
2019-03-22 19:31:18 +01:00
Guillaume Gomez
6bce61cd4b Fix invalid returned types generation 2019-03-21 22:49:43 +01:00
Guillaume Gomez
aefe75095a Add bounds for return types as well 2019-03-21 22:49:43 +01:00
Guillaume Gomez
6ae73e2ff6 Improve bounds search 2019-03-21 22:49:43 +01:00
Guillaume Gomez
64382f4b78 Greatly improve generics handling in rustdoc search 2019-03-21 22:49:42 +01:00
bors
48e354d224 Auto merge of #58927 - GuillaumeGomez:default-keyword, r=QuietMisdreavus
Add default keyword handling in rustdoc

Fixes #58898.

r? @QuietMisdreavus
2019-03-21 08:55:50 +00:00
varkor
9bc58118fc Rebase over LazyConst changes 2019-03-18 19:46:59 +00:00
varkor
f93ad414ab Rename first_ty_sty to ty_sty 2019-03-18 19:44:52 +00:00
varkor
cd9a2c0b54 Refactor GenericArgs to include const generics
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-18 19:44:51 +00:00
varkor
29ed491743 Add GenericArg
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-18 19:38:23 +00:00
varkor
14913159e0 Implement Clean for const generics
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-18 19:38:23 +00:00
varkor
c915fe0245 Rename external_typarams to external_param_names
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-18 19:38:23 +00:00
varkor
ec6f983e24 Rename typarams to param_names
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-18 19:38:23 +00:00
bors
070cebd0aa Auto merge of #59178 - oli-obk:lazy_const, r=eddyb
Revert the `LazyConst` PR

The introduction of `LazyConst` did not actually achieve the code simplicity improvements that were the main reason it was introduced. Especially in the presence of const generics, the differences between the "levels of evaluatedness" of a constant become less clear. As it can be seen by the changes in this PR, further simplifications were possible by folding `LazyConst` back into `ConstValue`. We have been able to keep all the advantages gained during the `LazyConst` refactoring (like `const_eval` not returning an interned value, thus making all the `match` code simpler and more performant).

fixes https://github.com/rust-lang/rust/issues/59209

r? @eddyb @varkor
2019-03-17 11:17:03 +00:00
Vadim Petrochenkov
0cf96131f4 Refactor away NestedMetaItemKind
Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields
2019-03-16 23:14:42 +03:00
Vadim Petrochenkov
8371caf5ee syntax: Do not accidentally treat multi-segment meta-items as single-segment 2019-03-16 23:13:15 +03:00
Oliver Scherer
5cd2806621 Revert the LazyConst PR 2019-03-16 21:04:10 +01:00
Eduard-Mihai Burtescu
a54a41ce47 rustc: provide DisambiguatedDefPathData in ty::print. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
8619edede1 rustc: slice substs in ty::print instead of passing the full ones. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
52b4f2daa0 rustc: remove PrintCx from ty::Print and rely on printers carrying TyCtxt. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
c0c485c3ad rustc: don't thread existential projections through path_generic_args. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
ffa00d4628 rustc: make pretty_path_generic_args' task as simple as possible. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
381fa7aa18 rustc: move ty::print::PrintConfig's fields to FmtPrinter. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
5211e37b1d rustc: don't pass Namespace explicitly, but rather track it in FmtPrinter. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
35e5123f51 rustc: support overriding type printing in ty::print::Printer. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
88d96b269c rustc: support overriding region printing in ty::print::Printer. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
7c4eecef0b rustc: pass ty::print::PrintCx by value. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
37e918526a rustc: split off most of ty::print::PrintCx's fields into a separate struct. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
5616ca857d rustc: uniformize ty::print's error handling by requiring Result. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
df6650f38c rustc: move ...::<impl ...> printing into pretty_path_qualified. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
aec5a48481 rustc: move <...>-less impl path special-case to pretty_path_qualified. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
a15bfc6f48 rustc: merge PrintCx::parameterized and def_path printing. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
9f8aaa04e0 rustc: move the contents of ty::item_path to ty::print. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
e0c75ff40d rustc: rename item_path to def_path (except the module in ty). 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
f1af5a77a0 rustc: remove TyCtxt::parent_def_id in favor of TyCtxt::parent. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
3e1cef7007 rustc: pass Option<&Substs> and Namespace around in ty::item_path. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
08d27441ec rustc: move the formatter into ty::print::PrintCx. 2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
387cacf76b rustc: remove ty::item_path::RootMode by moving local logic into the printer. 2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
228d6f45d8 rustc: remove unnecessary extern_prelude logic from ty::item_path. 2019-03-15 09:26:13 +02:00
Guillaume Gomez
541ad45a83 Add default keyword handling in rustdoc 2019-03-14 13:18:36 +01:00
John Kåre Alsaker
51938c61f6 Make the rustc driver and interface demand driven 2019-03-10 04:49:45 +01:00
ljedrz
558a07b896 hir: remove NodeId from PatKind 2019-03-07 12:18:59 +01:00
ljedrz
78f91e3976 hir: remove NodeId from PathSegment 2019-03-07 09:25:51 +01:00
ljedrz
cd06038b54 HirIdification: replace NodeId method calls 2019-03-07 09:22:43 +01:00
varkor
fc0fbe8bb5 Stub rustdoc const generics implementations
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:17:41 +00:00