bors
bd41e09da3
Auto merge of #89124 - cjgillot:owner-info, r=michaelwoerister
...
Index and hash HIR as part of lowering
Part of https://github.com/rust-lang/rust/pull/88186
~Based on https://github.com/rust-lang/rust/pull/88880 (see merge commit).~
Once HIR is lowered, it is later indexed by the `index_hir` query and hashed for `crate_hash`. This PR moves those post-processing steps to lowering itself. As a side objective, the HIR crate data structure is refactored as an `IndexVec<LocalDefId, Option<OwnerInfo<'hir>>>` where `OwnerInfo` stores all the relevant information for an HIR owner.
r? `@michaelwoerister`
cc `@petrochenkov`
2021-10-18 19:53:05 +00:00
r00ster91
3c1d55422a
Some "parenthesis" and "parentheses" fixes
2021-10-17 12:04:01 +02:00
Camille GILLOT
f9e1de979d
Stop referring to hir::Crate in hir_pretty.
2021-10-09 11:19:44 +02:00
Camille GILLOT
db9fea508a
Avoid more invocations of hir_crate query.
2021-09-29 23:16:47 +02:00
Matthias Krüger
545d8d675c
don't convert types into identical types
...
example: let x: String = String::new().into();
2021-09-11 10:32:38 +02:00
jackh726
f1f1d56d93
Don't move ?Trait bounds to param bounds if they're in where clauses
2021-09-07 18:08:46 -04:00
inquisitivecrystal
0299ed8bbb
Remove obsolete MacroDef
variant of OwnerNode
2021-08-28 00:24:30 -07:00
inquisitivecrystal
8c62fa0575
Treat macros as HIR items
2021-08-28 00:16:34 -07:00
Caio
6aa9937a76
Introduce hir::ExprKind::Let - Take 2
2021-08-15 16:18:26 -03:00
bors
aadd6189ad
Auto merge of #87449 - matthiaskrgr:clippyy_v2, r=nagisa
...
more clippy::complexity fixes
(also a couple of clippy::perf fixes)
2021-08-01 09:15:15 +00:00
Esteban Küber
15a40c7ee8
Do not discard ?Sized
type params and suggest their removal
2021-07-30 08:44:31 -07:00
bors
fd853c00e2
Auto merge of #83484 - JulianKnodt:infer, r=oli-obk,lcnr
...
Add hir::GenericArg::Infer
In order to extend inference to consts, make an Infer type on hir::GenericArg.
2021-07-27 16:24:45 +00:00
kadmin
8759f00c73
Actually infer args in visitors
2021-07-26 21:15:18 +00:00
Camille GILLOT
fee421685d
Introduce OwnerNode::Crate.
2021-07-25 12:22:47 +02:00
Matthias Krüger
1c129f7b97
use vec![] macro to create Vector with first item inside instead of pushing to an empty vec![]
...
slightly reduces code bloat
2021-07-25 12:19:33 +02:00
kadmin
417b098cfc
Add generic arg infer
2021-07-25 07:28:51 +00:00
Yuki Okushi
de93434cf0
Rollup merge of #86358 - klensy:pp-loop, r=Mark-Simulacrum
...
fix pretty print for `loop`
2021-06-29 00:26:55 +09:00
bors
e6b4c252ea
Auto merge of #86599 - Amanieu:asm_raw, r=nagisa
...
Add a "raw" option for asm! which ignores format string specifiers
This is useful when including raw assembly snippets using `include_str!`.
2021-06-25 20:44:28 +00:00
Amanieu d'Antras
d0443bb7c2
Add a "raw" option for asm! which ignores format string specifiers
2021-06-24 23:42:15 +01:00
klensy
ac72773215
fix pretty print for loop
in mir and hir
2021-06-23 11:49:08 +03:00
Smitty
45c55540a8
Remove some last remants of {push,pop}_unsafe!
...
These macros have already been removed, but there was still some code
handling these macros. That code is now removed.
2021-06-06 17:04:03 -04:00
Pietro Albini
9e22b844dd
remove cfg(bootstrap)
2021-05-24 11:07:48 -04:00
Amanieu d'Antras
5918ee4317
Add support for const operands and options to global_asm!
...
On x86, the default syntax is also switched to Intel to match asm!
2021-05-13 22:31:57 +01:00
Smitty
e4ce655cbf
Handle pretty printing of else if let
clauses
...
Closes #84434 . Closes #82329 .
2021-04-23 13:29:18 -04:00
Amanieu d'Antras
32be124e30
Use AnonConst for asm! constants
2021-04-06 12:35:41 +01:00
Camille GILLOT
9d8f833e05
Remove hir::CrateItem.
2021-03-30 20:31:06 +02:00
Joshua Nelson
441dc3640a
Remove (lots of) dead code
...
Found with https://github.com/est31/warnalyzer .
Dubious changes:
- Is anyone else using rustc_apfloat? I feel weird completely deleting
x87 support.
- Maybe some of the dead code in rustc_data_structures, in case someone
wants to use it in the future?
- Don't change rustc_serialize
I plan to scrap most of the json module in the near future (see
https://github.com/rust-lang/compiler-team/issues/418 ) and fixing the
tests needed more work than I expected.
TODO: check if any of the comments on the deleted code should be kept.
2021-03-27 22:16:33 -04:00
kadmin
e4e5db4e42
Add has_default to GenericParamDefKind::Const
...
This currently creates a field which is always false on GenericParamDefKind for future use when
consts are permitted to have defaults
Update const_generics:default locations
Previously just ignored them, now actually do something about them.
Fix using type check instead of value
Add parsing
This adds all the necessary changes to lower const-generics defaults from parsing.
Change P<Expr> to AnonConst
This matches the arguments passed to instantiations of const generics, and makes it specific to
just anonymous constants.
Attempt to fix lowering bugs
2021-03-23 17:16:20 +00:00
mark
db5629adcb
stabilize or_patterns
2021-03-19 19:45:32 -05:00
Vadim Petrochenkov
38ed36bba4
hir: Preserve used syntax in TyKind::TraitObject
2021-03-18 03:02:32 +03:00
Vadim Petrochenkov
b25d3ba781
ast/hir: Rename field-related structures
...
StructField -> FieldDef ("field definition")
Field -> ExprField ("expression field", not "field expression")
FieldPat -> PatField ("pattern field", not "field pattern")
Also rename visiting and other methods working on them.
2021-03-16 11:41:24 +03:00
Camille GILLOT
38d9d09a58
Use BTreeMap to store attributes.
2021-03-09 19:28:01 +01:00
Camille GILLOT
fb753cced8
Remove hir::Expr::attrs.
2021-03-09 19:27:58 +01:00
Camille GILLOT
c701872a6c
Remove hir::Item::attrs.
2021-03-09 19:27:50 +01:00
Camille GILLOT
5474f17011
Remove hir::ImplItem::attrs.
2021-03-09 19:23:08 +01:00
Camille GILLOT
c49359add2
Remove hir::TraitItem::attrs.
2021-03-09 19:23:08 +01:00
Camille GILLOT
4bab93a039
Remove hir::ForeignItem::attrs.
2021-03-09 19:23:07 +01:00
Camille GILLOT
c298744da7
Remove hir::StructField::attrs.
2021-03-09 19:23:07 +01:00
Camille GILLOT
3c0afc3e1c
Remove hir::Variant::attrs.
2021-03-09 19:23:06 +01:00
Camille GILLOT
a0a4611a81
Remove hir::Param::attrs.
2021-03-09 19:23:06 +01:00
Camille GILLOT
96788df68c
Remove hir::Arm::attrs.
2021-03-09 19:23:05 +01:00
Camille GILLOT
a987bbb97c
Remove hir::Crate::attrs.
2021-03-09 19:22:55 +01:00
bors
8fe989dd76
Auto merge of #81611 - cjgillot:meowner, r=estebank
...
Only store a LocalDefId in some HIR nodes
Some HIR nodes are guaranteed to be HIR owners: Item, TraitItem, ImplItem, ForeignItem and MacroDef.
As a consequence, we do not need to store the `HirId`'s `local_id`, and we can directly store a `LocalDefId`.
This allows to avoid a bit of the dance with `tcx.hir().local_def_id` and `tcx.hir().local_def_id_to_hir_id` mappings.
2021-02-16 22:14:32 +00:00
Matthias Krüger
4390a61b64
avoid full-slicing slices
...
If we already have a slice, there is no need to get another full-range slice from that, just use the original.
clippy::redundant_slicing
2021-02-16 00:31:11 +01:00
Camille GILLOT
786a80e9ea
Only store a LocalDefId in hir::ImplItem.
2021-02-15 19:32:29 +01:00
Camille GILLOT
a871a0f111
Only store a LocalDefId in hir::TraitItem.
2021-02-15 19:32:28 +01:00
Camille GILLOT
c676e358a5
Use ItemId as a strongly typed index.
2021-02-15 19:24:58 +01:00
b-naber
16af7bf3d9
hir pretty printing
2021-02-04 16:20:57 +01:00
Esteban Küber
060dba67b7
Add loop head span to hir
2021-01-21 21:41:46 -08:00
bors
d03fe84169
Auto merge of #79328 - c410-f3r:hir-if, r=matthewjasper
...
Reintroduce hir::ExprKind::If
Basically copied and paste #59288/https://github.com/rust-lang/rust-clippy/pull/4080 with some modifications.
The vast majority of tests were fixed and now there are only a few remaining. Since I am still unable to figure out the missing pieces, any help with the following list is welcome.
- [ ] **Unnecessary `typeck` exception**: [Cheated on this one to make CI green.](https://github.com/rust-lang/rust/pull/79328/files#diff-3faee9ba23fc54a12b7c43364ba81f8c5660045c7e1d7989a02a0cee1c5b2051 )
- [x] **Incorrect span**: [Span should reference `then` and `else` separately.](https://github.com/rust-lang/rust/pull/79328/files#diff-cf2c46e82222ee4b1037a68fff8a1af3c4f1de7a6b3fd798aacbf3c0475abe3d )
- [x] **New note regarding `assert!`**: [Modified but not "wrong". Maybe can be a good thing?](https://github.com/rust-lang/rust/pull/79328/files#diff-9e0d7c89ed0224e2b62060c957177c27db43c30dfe3c2974cb6b5091cda9cfb5 )
- [x] **Inverted report location**: [Modified but not "wrong". Locations were inverted.](https://github.com/rust-lang/rust/pull/79328/files#diff-f637ce7c1f68d523a165aa9651765df05e36c4d7d279194b1a6b28b48a323691 )
- [x] **`src/test/ui/point-to-type-err-cause-on-impl-trait-return.rs` has weird errors**: [Not sure why this is happening.](https://github.com/rust-lang/rust/pull/79328/files#diff-c823c09660f5b112f95e97e8ff71f1797b6c7f37dbb3d16f8e98bbaea8072e95 )
- [x] **Missing diagnostic**: [???](https://github.com/rust-lang/rust/pull/79328/files#diff-6b8ab09360d725ba4513933827f9796b42ff9522b0690f80b76de067143af2fc )
2021-01-14 14:41:58 +00:00