Urgau
4f4fa42b0e
Introduce FileNameMapping::to_real_filename
and use it everywhere
2024-03-28 18:47:26 +01:00
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](0e2b39fd1f
) 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