Lukas Wirth
890eb17b4e
Replace ID based TokenMap with proper relative text-ranges / spans
2023-11-28 10:55:39 +01:00
Laurențiu Nicola
a54c0dafc8
Remove debugging code in path resolution
2023-11-17 20:58:43 +02:00
hkalbasi
fa76f60cc1
Run cargo fmt on 1.72
2023-08-25 22:24:41 +03:30
Lukas Wirth
a17d73ad36
Thread imports through the resolver
2023-08-17 10:52:13 +02:00
Lukas Wirth
c4e9b5ac64
Add import info to item scope dumps
2023-08-17 09:33:15 +02:00
Lukas Wirth
af8048266c
Prepare ItemScope for IDE import resolution
2023-08-16 11:33:42 +02:00
Lukas Wirth
9adff006e8
Simplify
2023-08-10 20:10:19 +02:00
Lukas Wirth
fde2d9b47c
Deduplicate FileId field in ModuleOrigin
2023-08-10 19:04:46 +02:00
Lukas Wirth
63aba76735
Remove unnecessary ItemTreeId field in ImportSource
2023-08-09 17:06:52 +02:00
Lukas Wirth
c516dd51e9
Simplify
2023-08-09 15:54:10 +02:00
Lukas Wirth
992b928a93
Record import source IDs
2023-08-09 15:20:42 +02:00
Lukas Wirth
f86f6a89eb
Change terminology, do not name use items and use trees as imports
2023-08-02 14:19:38 +02:00
Lukas Wirth
bcff166b3a
Add ExternCrateDecl to HIR
2023-08-02 11:52:55 +02:00
Lukas Wirth
e14d84d0a6
Skip out on single-segment immediate macro resolution when there are errors
2023-08-01 12:38:53 +02:00
Lukas Wirth
8886d707b8
Stronger typing for AstId and AstIdMap
2023-07-04 09:16:15 +02:00
Lukas Wirth
69cd3c30ac
Format let-else
2023-07-03 20:34:09 +02:00
Ryo Yoshida
56dd5368f5
Refactor
...
- don't take `&self` as receiver for `Copy` types
- simplify `hir::Module::nearest_non_block_module()`
- style changes for consistency
2023-06-27 16:01:07 +09:00
Ryo Yoshida
a02846343f
Fix self
and super
path resolution in block modules
2023-06-27 15:29:08 +09:00
Lukas Wirth
9476fdaaa9
HIR ExternCrateDecl
2023-06-19 14:15:08 +02:00
Lukas Wirth
0bde3fc77e
Intern use and extern crate items like other items
2023-06-19 13:51:44 +02:00
Lukas Wirth
3484b5a116
internal: Do not allocate unnecessarily when importing macros from parent modules
2023-06-16 18:41:06 +02:00
Lukas Wirth
cf178cba8f
internal: Add a CrateRootModuleId that encodes a module id that is always a crate root
2023-06-14 15:41:06 +02:00
Lukas Wirth
11b937177b
Skip extern prelude path resolution in block def maps
2023-06-01 17:58:08 +02:00
Lukas Wirth
1e6406e223
Move extern prelude into CrateData
2023-06-01 15:49:05 +02:00
Lukas Wirth
bdca349573
Arc DefMap::data so the block def maps can share it
2023-06-01 15:27:05 +02:00
Lukas Wirth
5c466ccc2b
Refactor out some crate wide data in DefMap into nested struct
2023-06-01 15:04:38 +02:00
Lukas Wirth
dc7c6d43c7
Slightly shrink DefMap
2023-06-01 14:46:36 +02:00
Lukas Wirth
bbd9e41606
Don't add --all-targets to runnables for no-std crates
2023-05-28 14:18:44 +02:00
Lukas Wirth
c7ef6c25b7
internal: Replace Display impl for Name
2023-05-24 20:55:12 +02:00
Lukas Wirth
74d6826858
expand: Change how #![cfg(FALSE)]
behaves on crate root
2023-05-24 13:02:38 +02:00
Ryo Yoshida
1bc7f8a4c6
Support #[macro_use(name, ...)]
2023-05-15 00:05:44 +09:00
Ryo Yoshida
e9ddb62c65
Expand more single ident macro calls upon their collection
2023-05-14 03:11:10 +09:00
Ryo Yoshida
f2a35deb50
Consider macro sub-namespace during name resolution
2023-05-11 21:13:12 +09:00
Ryo Yoshida
3203ea896d
Add macro_use
prelude to DefMap
2023-05-11 21:13:11 +09:00
Ryo Yoshida
96113b7b8e
Remove prelude fallback path for Rust <1.52.0
...
We've already removed non-sysroot proc macro server, which effectively
removed support for Rust <1.64.0, so this removal of fallback path
shouldn't be problem at this point.
2023-05-11 21:13:10 +09:00
Ryo Yoshida
a0a7860141
Refactor
2023-05-11 18:17:16 +09:00
Laurențiu Nicola
7197a27028
Use triomphe Arc
2023-05-02 20:02:43 +03:00
Lukas Wirth
cf8f13b531
fix: Fix restart server button trying to start instead of restart the server
2023-04-28 21:34:31 +02:00
Lukas Wirth
cebc018e2a
Remove unnecessary is_derive field from MacroCallKind::Attr
2023-04-22 14:29:28 +02:00
bors
442a769f82
Auto merge of #14634 - Veykril:assoc-collect, r=Veykril
...
fix: Report remaining macro errors in assoc item collection
2023-04-22 09:49:57 +00:00
Lukas Wirth
77afc6e793
fix: Report remaining macro errors in assoc item collection
2023-04-22 11:49:00 +02:00
bors
34ebb30e84
Auto merge of #14610 - lowr:fix/hygiene-for-meta-item, r=Veykril
...
fix: Resolve `$crate` in derive paths
Paths in derive meta item list may contain any kind of paths, including those that start with `$crate` generated by macros. We need to take hygiene into account when we lower paths in the list.
This issue was identified while investigating #14607 , though this patch doesn't fix the broken trait resolution.
2023-04-22 09:36:38 +00:00
Ryo Yoshida
85e76542fe
Cache Hygiene
in DefCollector
2023-04-22 18:22:29 +09:00
bors
1379b5fac7
Auto merge of #14630 - Veykril:arc, r=Veykril
...
internal: `Arc<String>` -> `Arc<str>`
2023-04-22 07:58:13 +00:00
Lukas Wirth
f00dcf9a69
internal: Arc<String> -> Arc<str>
2023-04-22 09:48:37 +02:00
Ryo Yoshida
cf72b6232b
Resolve $crate
in derive paths
2023-04-20 15:50:17 +09:00
bors
2400b36a2e
Auto merge of #14577 - jsoref:spelling, r=lnicola
...
Spelling
This PR corrects misspellings identified by the [check-spelling action](https://github.com/marketplace/actions/check-spelling ).
The misspellings have been reported at https://github.com/jsoref/rust-analyzer/actions/runs/4699991040#summary-12751355796
The action reports that the changes in this PR would make it happy: https://github.com/jsoref/rust-analyzer/actions/runs/4699991284#summary-12751356293
closes #14567
2023-04-19 14:05:40 +00:00
Josh Soref
bc7d84c3ce
Spelling
...
* a rule
* access
* after
* amount
* annotations
* assignment
* assist
* associated
* attribute
* borrowed
* built-in type
* clarification
* command
* const
* constructor
* corresponding
* counterparts
* curlies
* dependencies
* deterministic
* diagnostic
* duplicates
* edge
* edited
* efficient
* elsewhere
* execution
* expression
* extensions
* extracted
* fill
* github
* helper
* heuristic
* incomplete
* indent end
* inlay
* invocation
* lifetime
* looking
* maybe
* move
* mutability
* mutable
* necessarily
* necessary
* negative
* nonexistent
* occurred
* offsets
* offsetted
* overridden
* parameters
* params
* params_and_where_preds_in_scope
* paredit
* parent
* parentheses
* prepended if
* punctuation
* receive
* receiver
* referring
* repeated
* representing
* semantically
* separately
* shouldnot
* siblings
* similar
* something's
* statement
* struct
* structure
* surprise
* the
* this
* transparent
* unimplemented
* unnamed
* unnecessary
* unneeded
* unreachable
* unterminated
* utilities
* variant
* variants
* visibility
* work around (v)
* workaround
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-19 09:45:55 -04:00
Lukas Wirth
bca8029a6e
Move Expander and LowerCtx into separate modules
2023-04-17 20:44:06 +02:00
Lukas Wirth
4ea5d7f6a0
Re-introduce option for macro_arg to prevent calling macros with empty inputs
2023-04-16 20:26:26 +02:00
Lukas Wirth
96a774261f
Option begone part 1
2023-04-16 19:20:42 +02:00
Lukas Wirth
0f4ffaa5af
Fix duplicate eager expansion errors
2023-04-16 19:20:35 +02:00
Lukas Wirth
d1632c2727
Report syntax errors from item level macro expansions
2023-04-16 17:22:06 +02:00
Lukas Wirth
6ae8d49e15
Simplify eager macro error handling
2023-04-16 15:46:12 +02:00
Lukas Wirth
a5558cdfe5
internal: Report macro definition errors on the definition
2023-04-16 14:15:59 +02:00
Lukas Wirth
3f5c9920d6
Move hir_def::builtin_attr to hir_def::attr::builtin
2023-04-06 19:55:49 +02:00
Lukas Wirth
40c068f502
Use hir_def::builtin_attr::find_builtin_attr_idx
2023-04-06 19:44:29 +02:00
Lukas Wirth
8e7c104b3a
Move hir_def::adt to hir_def::data::adt
2023-04-06 19:23:29 +02:00
Lukas Wirth
e244942209
internal: Set Durability to HIGH for enable_proc_attr_macros input
2023-03-30 15:11:22 +02:00
Lukas Wirth
d154ea88f9
Split out proc-macros from the CrateGraph
2023-03-25 16:46:44 +01:00
Lukas Wirth
f34b2469bd
lint incoherent inherent impls
2023-03-14 19:20:44 +01:00
Lukas Wirth
aaf08bdcc5
Shrink ProcMacroExpander size
2023-03-13 16:49:38 +01:00
Ryo Yoshida
29c957f973
Lower and handle trait aliases in HIR
2023-03-04 00:24:07 +09:00
Ryo Yoshida
83e24fec98
Fix associated item visibility in block-local impls
2023-02-19 23:55:55 +09:00
Lukas Wirth
41a46a78f2
Make tt generic over the span data
2023-01-31 14:58:16 +01:00
bors
06981d4b10
Auto merge of #14062 - WaffleLapkin:сurrent_edition, r=Veykril
...
internal: Set "current" edition to 2021
:p
2023-01-31 11:03:49 +00:00
Maybe Waffle
249ea9502d
Set "current" edition to 2021
2023-01-31 10:51:43 +00:00
Lukas Wirth
c65782e64a
Parse macros allow_internal_unsafe attribute
2023-01-30 15:41:08 +01:00
Daniel Eades
7413a9954f
interior-mutable types should be 'static' rather than 'const
2023-01-12 10:48:10 +00:00
Daniel Eades
ac3844a0bb
a number of code simplifications
2023-01-10 18:48:51 +00:00
bors
c3b78f440e
Auto merge of #13917 - Veykril:raw-attrs, r=Veykril
...
Split out hir-def attribute handling parts into hir-expand
This should help with `cfg_attr` handling for macro inputs
2023-01-10 17:35:37 +00:00
Lukas Wirth
621e96bd6a
Encode one level of cfg_attr in attr_id
2023-01-09 21:06:13 +01:00
Lukas Wirth
68723043db
Split out hir-def attribute handling parts into hir-expand
2023-01-09 19:29:28 +01:00
bors
e125bee055
Auto merge of #13890 - lowr:fix/unescape-inline-mod-name, r=Veykril
...
fix: unescape inline module names in module resolution
Fixes #13884
2023-01-09 15:07:06 +00:00
Ryo Yoshida
21ea0048cd
fix: unescape inline module names in module resolution
2023-01-04 18:22:01 +09:00
Daniel Eades
efd2c20e96
remove useless conversions
2023-01-02 15:02:54 +00:00
Daniel Eades
ed128872eb
remove needless borrows
2023-01-02 14:52:32 +00:00
Yuri Astrakhan
e16c76e3c3
Inline all format arguments where possible
...
This makes code more readale and concise,
moving all format arguments like `format!("{}", foo)`
into the more compact `format!("{foo}")` form.
The change was automatically created with, so there are far less change
of an accidental typo.
```
cargo clippy --fix -- -A clippy::all -W clippy::uninlined_format_args
```
2022-12-24 14:36:10 -05:00
Yuri Astrakhan
1d59c7b667
Remove non-needed clones
...
I am not certain if this will improve performance,
but it seems having a .clone() without any need should be removed.
This was done with clippy, and manually reviewed:
```
cargo clippy --fix -- -A clippy::all -D clippy::redundant_clone
```
2022-12-23 02:20:03 -05:00
Ryo Yoshida
cf54b8c3a4
Parse and collect derive helpers for builtin derive macros
2022-12-06 16:00:46 +09:00
Ryo Yoshida
19306c070d
Fix tests that depended on loose visibility restriction
2022-11-11 20:31:46 +09:00
Ryo Yoshida
dea49d0826
fix: check visibility of each segment in path resolution
2022-11-11 20:31:37 +09:00
unexge
b21bf25a07
Collect diagnostics in queries instead of nameres
2022-09-26 19:06:29 +01:00
unexge
89107d5469
Emit unconfigured code diagnostics for fields
2022-09-26 19:04:57 +01:00
Lukas Wirth
a9f103e2fa
Fix prelude injection
2022-09-15 12:12:22 +02:00
Lukas Wirth
894aa0ed0d
Clarify the state of (extern) preludes for block def maps
2022-09-02 17:43:20 +02:00
bors
4f8153e4a5
Auto merge of #13167 - iDawer:exhaustive_patterns, r=Veykril
...
feat: Implement `feature(exhaustive_patterns)` from unstable Rust
Closes #12753
Recognize Rust's unstable `#![feature(exhaustive_patterns)]` (RFC 1872). Allow omitting visibly uninhabited variants from `match` expressions when the feature is on.
This adjusts match checking to the current implementation of the postponed RFC 1872 in rustc.
2022-09-02 12:32:36 +00:00
iDawer
8ae58b9fe4
Record enabled unstable features into DefMap
2022-09-02 16:31:15 +05:00
Ryo Yoshida
662ab0cd8e
fix: unescape all occurrences of module name in module resolution
2022-08-31 03:51:37 +09:00
bors
dea163970a
Auto merge of #12965 - DesmondWillowbrook:assoc-method-dimming, r=Veykril
...
feat: make trait assoc items become inactive due to cfg
fixes #12394
2022-08-22 07:20:56 +00:00
Dezhi Wu
23747419ca
fix: a bunch of typos
...
This PR will fix some typos detected by [typos].
There are also some other typos in the function names, variable names, and file
names, which I leave as they are. I'm more certain that typos in comments
should be fixed.
[typos]: https://github.com/crate-ci/typos
2022-08-17 21:44:58 +08:00
bors
3561433ef2
Auto merge of #13026 - Veykril:nameres, r=Veykril
...
internal: Make `resolve_name_in_module` a bit more lazy
2022-08-15 14:49:12 +00:00
Lukas Wirth
88b19cc39b
Make resolve_name_in_module a bit more lazy
2022-08-15 16:41:51 +02:00
Ryo Yoshida
8fe73a2240
Make tests pass
2022-08-11 01:16:35 +09:00
Kartavya Vashishtha
c1eae3d028
make diagnostic function public
2022-08-08 16:45:27 +05:30
Lukas Wirth
3b2ecf44a0
Give variables more descriptive names
2022-07-31 19:27:34 +02:00
Lukas Wirth
aa1491ecde
Record derive helper attributes, resolve them in IDE layer
2022-07-26 09:26:51 +02:00
Lukas Wirth
4e60db2d07
feat: Downmap tokens inside derive helpers
2022-07-26 09:26:47 +02:00
Amos Wenger
dfe84494c1
Make macros test order-resistant
2022-07-24 16:48:06 +02:00
Amos Wenger
d8c0d88e4f
Sort in DefMap::dump, since HashMap iteration order isn't defined
2022-07-24 16:04:20 +02:00