Camille GILLOT
fc43df0333
Revert "Auto merge of #101620 - cjgillot:compute_lint_levels_by_def, r=oli-obk"
...
This reverts commit 2cb9a65684dba47c52de8fa938febf97a73e70a9, reversing
changes made to 750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c.
2022-09-22 19:36:11 +02:00
bors
294f0eef73
Auto merge of #101173 - jyn514:simplify-macro-arguments, r=cjgillot
...
Further simplify the macros generated by `rustc_queries`
This doesn't actually move anything outside the macros, but it makes them simpler to read.
- Add a new `rustc_query_names` macro. This allows a much simpler syntax for the matchers in the macros passed to it as a callback.
- Convert `define_dep_nodes` and `alloc_once` to use `rustc_query_names`. This is possible because they only use the names
(despite the quite complicated matchers in `define_dep_nodes`, none of the other arguments are used).
- Get rid of `rustc_dep_node_append`.
r? `@cjgillot`
2022-09-15 11:54:03 +00:00
Camille GILLOT
bd45139cb0
Allow query system to recover a HirId.
2022-09-14 19:04:13 +02:00
Joshua Nelson
3a4e3c7788
Get rid of the emitted rustc_query_names and rustc_cached_queries macro
...
We can avoid these by adding slightly more information to `rustc_query_append` instead.
2022-09-06 21:46:31 -05:00
Joshua Nelson
c630c87ceb
Support doc-comments in define_dep_nodes
2022-09-06 21:43:15 -05:00
Joshua Nelson
05886e28a4
Further simplify the macros generated by rustc_queries
...
- Add a new `rustc_query_names` macro. This allows a much simpler syntax for the matchers in the macros passed to it as a callback.
- Convert `define_dep_nodes` and `alloc_once` to use `rustc_query_names`. This is possible because they only use the names
(despite the quite complicated matchers in `define_dep_nodes`, none of the other arguments are used).
- Get rid of `rustc_dep_node_append`.
2022-09-06 21:43:15 -05:00
Joshua Nelson
4e09a13bb8
Don't create two new closures for each query
...
- Parameterize DepKindStruct over `'tcx`
This allows passing in an invariant function pointer in `query_callback`,
rather than having to try and make it work for any lifetime.
- Add a new `execute_query` function to `QueryDescription` so we can call `tcx.$name` without needing to be in a macro context
2022-09-01 18:47:54 -05:00
Joshua Nelson
7b8e2a52ff
Simplify the syntax for macros generated by rustc_queries
...
- Disallow multiple macros callbacks in the same invocation. In practice, this was never used.
- Remove the `[]` brackets around the macro name
- Require an `ident`, not an arbitrary `tt`
2022-08-24 00:37:49 -05:00
Joshua Nelson
b53761969f
Remove $tcx metavariable from rustc_query_append
...
It's not actually necessary and it makes the code harder to read.
2022-08-23 21:33:19 -05:00
Camille GILLOT
e912c8dfe0
Use a dedicated DepKind for the forever-red node.
2022-07-06 23:20:12 +02:00
Camille GILLOT
43bb31b954
Allow to create definitions inside the query system.
2022-07-06 22:50:55 +02:00
Jacob Pratt
49c82f31a8
Remove crate visibility usage in compiler
2022-05-20 20:04:54 -04:00
Camille GILLOT
07ee031763
Stop using CRATE_DEF_INDEX.
...
`CRATE_DEF_ID` and `CrateNum::as_def_id` are almost always what we want.
2022-04-17 12:14:42 +02:00
est31
60f969a4f2
Adopt let_else in even more places
2022-02-16 22:43:39 +01:00
Aaron Hill
70d36a05bc
Show a more informative panic message when DefPathHash does not exist
...
This should hopefully make it easier to debug incremental compilation
bugs like #93096 without affecting performance.
2022-01-19 17:36:44 -05:00
Aaron Hill
f64cd87ca6
Introduce new TaskDepsRef enum to track allow/ignore/forbid status
2022-01-08 18:22:06 -05:00
Aaron Hill
070bf94a6f
Remove in_band_lifetimes from rustc_middle
...
See #91867
This was mostly straightforward. In several places, I take advantage
of the fact that lifetimes are non-hygenic: a macro declares the
'tcx' lifetime, which is then used in types passed in as macro
arguments.
2021-12-15 19:50:43 -05:00
Camille GILLOT
b11ec29e28
Address review.
2021-10-20 18:51:15 +02:00
Camille GILLOT
8785b70774
Inline DepNodeParams methods.
2021-10-20 18:46:25 +02:00
Camille GILLOT
bd5c107672
Build jump table at runtime.
2021-10-20 18:32:29 +02:00
Camille GILLOT
602d3cbce3
Invoke callbacks from rustc_middle.
2021-10-20 18:29:33 +02:00
Camille GILLOT
b09de95fab
Merge two query callbacks arrays.
2021-10-20 18:29:27 +02:00
Camille GILLOT
dc7143367c
Drop has_params.
2021-10-20 18:29:22 +02:00
Camille GILLOT
e53404cca6
Move def_path_hash_to_def_id to rustc_middle.
2021-10-20 18:28:54 +02:00
Mark Rousskov
6f78eed1c7
Query the fingerprint style during key reconstruction
...
Keys can be reconstructed from fingerprints that are not DefPathHash, but then
we cannot extract a DefId from them.
2021-10-06 22:19:48 -04:00
bors
55111d656f
Auto merge of #89266 - cjgillot:session-ich, r=michaelwoerister
...
Move ICH to rustc_query_system
Based on https://github.com/rust-lang/rust/pull/89183
The StableHashingContext does not need to be in rustc_middle.
This PR moves it to rustc_query_system. This will avoid a dependency between rustc_ast_lowering and rustc_middle in https://github.com/rust-lang/rust/pull/89124 .
2021-10-05 09:45:11 +00:00
Camille GILLOT
fedd7785fe
Access StableHashingContext in rustc_query_system.
2021-10-03 16:08:55 +02:00
Camille GILLOT
02025d86ac
Remove re-export.
2021-10-03 16:08:54 +02:00
bjorn3
e2d3e09b9c
Prevent macro ambiguity errors
...
The previous macro_rules! parsers failed when an additional modifier was added
with ambiguity errors. The error is pretty unclear as to what exactly the cause
here is, but this change simplifies the argument parsing code such that the
error is avoided.
2021-10-02 13:00:19 -04:00
Michael Woerister
2b60338ee9
Make DefPathHash->DefId panic for if the mapping fails.
...
We only use this mapping for cases where we know that it must succeed.
Letting it panic otherwise makes it harder to use the API in unsupported
ways.
2021-09-14 13:56:33 +02:00
Michael Woerister
5445715c20
Remove RawDefId tracking infrastructure from incr. comp. framework.
...
This infrastructure is obsolete now with the new encoding scheme for
the DefPathHash->DefIndex maps in crate metadata.
2021-09-14 13:56:33 +02:00
Aaron Hill
6fd6624045
Fix rebase fallout
2021-06-04 12:54:28 -05:00
Camille GILLOT
0e71283495
Restrict access to crate_name.
...
Also remove original_crate_name, which had the exact same implementation
2021-06-02 18:35:32 +02:00
Camille GILLOT
28afaeec17
Make is_private_dep a query.
2021-06-01 21:03:55 +02:00
Camille Gillot
0f0f3138cb
Revert "Reduce the amount of untracked state in TyCtxt"
2021-06-01 09:05:22 +02:00
Camille GILLOT
ee94fbb607
Make allocator_kind a query.
2021-05-30 19:58:01 +02:00
Camille GILLOT
10fb4b2fe5
Restrict access to crate_name.
...
Also remove original_crate_name, which had the exact same implementation
2021-05-30 19:54:04 +02:00
Camille GILLOT
5d9f96ab27
Make resolutions a query.
2021-05-30 19:47:00 +02:00
bjorn3
d0ec85d3fb
Merge CrateDisambiguator into StableCrateId
2021-05-30 12:51:34 +02:00
Dylan DPC
e7c9469786
Rollup merge of #85583 - cjgillot:no-previous-dg, r=petrochenkov
...
Get rid of PreviousDepGraph.
Its only role is to access the `SerializedDepGraph`.
2021-05-27 03:02:09 +02:00
LeSeulArtichaut
6f64eb1fe6
Make THIR building a stealable query
2021-05-22 14:36:22 +02:00
Camille GILLOT
a50f1e949b
Get rid of PreviousDepGraph.
2021-05-22 14:14:23 +02:00
bjorn3
15bfd9da85
Introduce CompileMonoItem DepNode
2021-04-12 13:58:12 +02:00
Camille GILLOT
6bfaf3a9cb
Stream the dep-graph to a file.
2021-03-30 18:09:59 +02:00
Camille GILLOT
f96e960ccf
Access the session directly from DepContext.
2021-02-20 22:53:46 +01:00
Camille GILLOT
cdc0b199a9
Split DepKindStruct in two.
2021-02-19 17:51:56 +01:00
Camille GILLOT
1ac21e4571
Use QueryCtxt in DepKindStruct.
2021-02-19 17:51:56 +01:00
Camille GILLOT
b27266fdb2
Use a QueryContext for try_mark_green.
2021-02-19 17:51:56 +01:00
Camille GILLOT
ea3d465c95
Move try_load_from_on_disk_cache to the QueryContext.
2021-02-19 17:51:55 +01:00
Camille GILLOT
5d71b99690
Make QueryEngine opaque to TyCtxt.
2021-02-19 17:51:54 +01:00