Mark Rousskov
510fcd318b
Use UnhashMap for a few more maps
...
This avoids hashing data that's already hashed.
2024-01-17 17:09:55 -05:00
Martin Nordholts
16ba56c242
compiler: Lower fn call arg spans down to MIR
...
To enable improved accuracy of diagnostics in upcoming commits.
2024-01-15 19:07:11 +01:00
Vadim Petrochenkov
90d11d6448
rustc_span: Optimize syntax context comparisons
...
Including comparisons with root context
2024-01-06 01:25:20 +03:00
Michael Woerister
fa8ef25372
Unify SourceFile::name_hash and StableSourceFileId
2023-12-19 22:34:26 +01:00
surechen
40ae34194c
remove redundant imports
...
detects redundant imports that can be eliminated.
for #117772 :
In order to facilitate review and modification, split the checking code and
removing redundant imports code into two PR.
2023-12-10 10:56:22 +08:00
Nicholas Nethercote
f405ce86c2
Minimize pub
usage in source_map.rs
.
...
Most notably, this commit changes the `pub use crate::*;` in that file
to `use crate::*;`. This requires a lot of `use` items in other crates
to be adjusted, because everything defined within `rustc_span::*` was
also available via `rustc_span::source_map::*`, which is bizarre.
The commit also removes `SourceMap::span_to_relative_line_string`, which
is unused.
2023-11-02 19:35:00 +11:00
Urgau
eccc9e6628
[RFC 3127 - Trim Paths]: Condition remapped filepath on remap scopes
2023-10-17 10:11:30 +02:00
Ben Kimock
272cd384e8
Fall back to an unoptimized implementation in read_binary_file if File::metadata lies
2023-09-12 19:32:43 -04:00
John Kåre Alsaker
f49382c050
Use Freeze
for SourceFile.lines
2023-09-07 13:05:05 +02:00
John Kåre Alsaker
c5996b80be
Use Freeze
for SourceFile.external_src
2023-09-07 13:04:23 +02:00
Camille GILLOT
3edeac06a5
Pass StableSourceFileId.
2023-09-04 16:02:46 +00:00
Camille GILLOT
4a87a44451
Compute address space from previous file.
2023-09-03 15:02:47 +00:00
Camille GILLOT
548ba13265
Register the file while computing its start position.
2023-09-03 15:02:46 +00:00
Camille GILLOT
258ace613d
Use relative positions inside a SourceFile.
2023-09-03 12:56:10 +00:00
Ben Kimock
f26293dca4
Load include_bytes! directly into an Lrc
2023-08-27 20:16:19 -04:00
yukang
eb0fcc5ad1
refactor on span_look_ahead
2023-08-06 22:44:11 +08:00
Nicholas Nethercote
45fcd1d0c5
Use partition_point
in SourceMap::lookup_source_file_idx
.
...
This makes it (a) a little simpler, and (b) more similar to
`SourceFile::lookup_line`.
2023-06-29 11:36:09 +10:00
yukang
e3071eaa60
reword the message to suggest surrounding with parentheses
2023-06-10 06:28:35 +08:00
yukang
3983881d4e
take care module name for suggesting surround the struct literal in parentheses
2023-06-10 06:28:35 +08:00
Maybe Waffle
fb0f74a8c9
Use Option::is_some_and
and Result::is_ok_and
in the compiler
2023-05-24 14:20:41 +00:00
Mara Bos
6289c57dc0
Simplify find_width_of_character_at_span.
2023-05-14 16:24:11 +02:00
SparrowLii
089a38880b
correct literals for dyn thread safe
2023-05-06 09:34:53 +08:00
SparrowLii
b9746ce039
introduce DynSend
and DynSync
auto trait
2023-05-06 09:34:18 +08:00
bors
b3f1379509
Auto merge of #110083 - saethlin:encode-hashes-as-bytes, r=cjgillot
...
Encode hashes as bytes, not varint
In a few places, we store hashes as `u64` or `u128` and then apply `derive(Decodable, Encodable)` to the enclosing struct/enum. It is more efficient to encode hashes directly than try to apply some varint encoding. This PR adds two new types `Hash64` and `Hash128` which are produced by `StableHasher` and replace every use of storing a `u64` or `u128` that represents a hash.
Distribution of the byte lengths of leb128 encodings, from `x build --stage 2` with `incremental = true`
Before:
```
( 1) 373418203 (53.7%, 53.7%): 1
( 2) 196240113 (28.2%, 81.9%): 3
( 3) 108157958 (15.6%, 97.5%): 2
( 4) 17213120 ( 2.5%, 99.9%): 4
( 5) 223614 ( 0.0%,100.0%): 9
( 6) 216262 ( 0.0%,100.0%): 10
( 7) 15447 ( 0.0%,100.0%): 5
( 8) 3633 ( 0.0%,100.0%): 19
( 9) 3030 ( 0.0%,100.0%): 8
( 10) 1167 ( 0.0%,100.0%): 18
( 11) 1032 ( 0.0%,100.0%): 7
( 12) 1003 ( 0.0%,100.0%): 6
( 13) 10 ( 0.0%,100.0%): 16
( 14) 10 ( 0.0%,100.0%): 17
( 15) 5 ( 0.0%,100.0%): 12
( 16) 4 ( 0.0%,100.0%): 14
```
After:
```
( 1) 372939136 (53.7%, 53.7%): 1
( 2) 196240140 (28.3%, 82.0%): 3
( 3) 108014969 (15.6%, 97.5%): 2
( 4) 17192375 ( 2.5%,100.0%): 4
( 5) 435 ( 0.0%,100.0%): 5
( 6) 83 ( 0.0%,100.0%): 18
( 7) 79 ( 0.0%,100.0%): 10
( 8) 50 ( 0.0%,100.0%): 9
( 9) 6 ( 0.0%,100.0%): 19
```
The remaining 9 or 10 and 18 or 19 are `u64` and `u128` respectively that have the high bits set. As far as I can tell these are coming primarily from `SwitchTargets`.
2023-04-18 22:27:15 +00:00
Ben Kimock
0445fbdd83
Store hashes in special types so they aren't accidentally encoded as numbers
2023-04-18 10:52:47 -04:00
Josh Soref
e09d0d2a29
Spelling - compiler
...
* account
* achieved
* advising
* always
* ambiguous
* analysis
* annotations
* appropriate
* build
* candidates
* cascading
* category
* character
* clarification
* compound
* conceptually
* constituent
* consts
* convenience
* corresponds
* debruijn
* debug
* debugable
* debuggable
* deterministic
* discriminant
* display
* documentation
* doesn't
* ellipsis
* erroneous
* evaluability
* evaluate
* evaluation
* explicitly
* fallible
* fulfill
* getting
* has
* highlighting
* illustrative
* imported
* incompatible
* infringing
* initialized
* into
* intrinsic
* introduced
* javascript
* liveness
* metadata
* monomorphization
* nonexistent
* nontrivial
* obligation
* obligations
* offset
* opaque
* opportunities
* opt-in
* outlive
* overlapping
* paragraph
* parentheses
* poisson
* precisely
* predecessors
* predicates
* preexisting
* propagated
* really
* reentrant
* referent
* responsibility
* rustonomicon
* shortcircuit
* simplifiable
* simplifications
* specify
* stabilized
* structurally
* suggestibility
* translatable
* transmuting
* two
* unclosed
* uninhabited
* visibility
* volatile
* workaround
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-17 16:09:18 -04:00
Matthias Krüger
543f8bc38c
fix clippy::toplevel_ref_arg and ::manual_map
2023-04-16 13:28:13 +02:00
Nilstrieb
f00366d191
Box large enum variants
2023-04-09 21:59:28 +02:00
Partha P. Das
3720753632
Implementing "<test_binary> --list --format json" #107307 #49359
2023-03-15 14:20:20 -04:00
Thom Chiovoloni
63396b30cf
Allow binary files to go through the FileLoader
2023-03-05 18:16:58 -08:00
bors
65d2f2a5f9
Auto merge of #106810 - oli-obk:resolver_reverse_plumbing, r=petrochenkov
...
Various cleanups around pre-TyCtxt queries and functions
part of #105462
based on https://github.com/rust-lang/rust/pull/106776 (everything starting at [0e2b39f](https://github.com/rust-lang/rust/pull/106810/commits/0e2b39fd1ffde51b50d45ccbe41de52b85136b8b ) is new in this PR)
r? `@petrochenkov`
I think this should be most of the uncontroversial part of #105462 .
2023-01-19 05:23:40 +00:00
Oli Scherer
1355559367
Avoid an unnecessary allocation
2023-01-16 14:46:44 +00:00
Tim Neumann
869df76764
Heuristically undo path prefix mappings.
...
Because the compiler produces better diagnostics if it can find the
source of (potentially remapped) dependencies.
2023-01-14 12:49:37 +00:00
Nilstrieb
1322e476bf
Improve debug logs of find_width_of_character_at_span
2022-12-27 22:18:22 +01:00
Esteban Küber
4d4d4786f9
Shorten trimmed display of closures
...
When `with_forced_trimmed_paths` is used, only print filename and start
of the closure's span, to reduce their verbosity.
2022-12-15 11:13:44 -08:00
Matthias Krüger
de59844c98
more clippy::complexity fixes
2022-12-15 00:09:10 +01:00
Matthias Krüger
2ea368e53c
minor code cleanups
2022-12-12 19:49:53 +01:00
KaDiWa
9bc69925cb
compiler: remove unnecessary imports and qualified paths
2022-12-10 18:45:34 +01:00
Maybe Waffle
1d42936b18
Prefer doc comments over //
-comments in compiler
2022-11-27 11:19:04 +00:00
Yiming Lei
867582eb97
detect () to avoid redundant <> suggestion for type
...
fix #104379
2022-11-17 09:01:27 -08:00
Michael Goulet
f9160224cf
Rollup merge of #103675 - lyming2007:issue-103271-fix, r=fee1-dead
...
remove redundent "<>" for ty::Slice with reference type
this fix #103271
2022-11-09 21:53:35 -08:00
Yiming Lei
0b6934d6c6
remove redundent "<>" for ty::Slice with reference type
...
this fix #103271
2022-11-09 17:42:17 -08:00
yukang
6d455296fd
Fix #103451 , find_width_of_character_at_span return width with 1 when reaching end
2022-10-25 21:16:12 +08:00
yukang
eb68e27e4c
fix rust-lang#101880: suggest let for assignment, and some code refactor
2022-10-20 22:54:02 +08:00
yukang
eb8aa9759d
Add testcase for next_point, fix more trivial issues in find_width_of_character_at_span
2022-10-19 21:08:00 +08:00
yukang
0af255a5aa
Fix the bug of next_point in span
2022-10-18 02:59:38 +08:00
Oli Scherer
1fc9ef1edd
tracing::instrument cleanup
2022-09-01 14:54:27 +00:00
Oli Scherer
ee3c835018
Always import all tracing macros for the entire crate instead of piecemeal by module
2022-09-01 14:54:27 +00:00
Camille GILLOT
6e88d738be
Remove generate_fn_name_span and generate_local_type_param_snippet.
2022-08-23 00:08:42 +02:00
Nilstrieb
455a55e681
Show absolute line numbers if span is outside relative span
...
In the MIR pretty printing, it can sometimes happen that the span of the
statement is outside the span of the body (for example through
inlining). In this case, don't display a relative span but an absolute
span. This will make the mir-opt-tests a little more prone to diffs
again, but the impact should be small.
2022-08-22 14:06:55 +02:00