Lukas Wirth
377fa7db3f
Check structs for match exhaustiveness
2020-11-24 18:50:56 +01:00
Lukas Wirth
4d841dc4e7
Add middle ellipsis missing arm text
2020-11-24 16:46:06 +01:00
Lukas Wirth
a4b5275656
Handle ellipsis in tuple patterns in match exhaustiveness checking
2020-11-24 16:43:28 +01:00
Lukas Wirth
a5efefd3d7
Properly infer tuple struct patterns when encountering ellipsis
2020-11-24 16:11:40 +01:00
Lukas Wirth
35dd62e915
Properly infer tuple patterns when encountering ellipsis
2020-11-24 13:56:20 +01:00
Aleksey Kladov
731f7bfc02
Replace RacyFlag with OnceCell
2020-11-11 03:11:40 +01:00
Igor Aleksanov
dd2febf05a
Improve decl_check module readability
2020-11-03 10:13:49 +03:00
Igor Aleksanov
9e172ffeb7
Remove numbers from comments in decl_check.rs
2020-11-03 10:11:02 +03:00
Igor Aleksanov
bdfe12df8f
Check for allow(..) attributes for case diagnostic
2020-11-03 10:11:02 +03:00
Aleksey Kladov
ba8d6d1e4e
Remove more unreachable pubs
2020-11-02 16:58:33 +01:00
Aleksey Kladov
b610118453
Deny unreachable-pub
...
It's very useful when `pub` is equivalent to "this is crate's public
API", let's enforce this!
Ideally, we should enforce it for local `cargo test`, and only during
CI, but that needs https://github.com/rust-lang/cargo/issues/5034 .
2020-11-02 14:07:08 +01:00
Florian Diebold
bca51e3519
Upgrade Chalk to 0.36
...
Quite a few changes, because Chalk got rid of the `ApplicationTy` nesting.
2020-10-30 18:57:55 +01:00
Benjamin Coenen
7322a69cf6
refactor(hir_ty): do not override DisplayTarget in hir_fmt
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-28 17:58:16 +01:00
Benjamin Coenen
ec3638adb9
do not use associated types placeholder for inlay hint
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-28 15:42:51 +01:00
Benjamin Coenen
0aca7b78de
do not use associated types placeholder for inlay hint
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-28 15:23:23 +01:00
Benjamin Coenen
ef2f7bb243
do not use associated types placeholder for inlay hint
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-28 14:07:12 +01:00
Benjamin Coenen
8762b797fd
do not use associated types placeholder for inlay hint
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-28 11:20:05 +01:00
Benjamin Coenen
73161cc9cd
do not use associated types placeholder for inlay hint #6191
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-27 20:23:09 +01:00
GrayJack
08e95a5dc1
Fix case where non FnOnce variables is marked callable
2020-10-26 15:20:33 -03:00
bors[bot]
29f5154d1c
Merge #6350
...
6350: Make IncorrectDiagnostic match rustc by copying rustc's code. r=popzxc a=ArifRoktim
This closes #6343 and closes #6345 .
The old algorithm which used a `DetectedCase` enum, didn't match how rustc thinks of cases. Some inputs can be interpreted as more than 1 case depending on the situation. For example, to rustc:
- `ABCD`: Can be both camel case and upper snake case
- `X86_64`: Can be both camel case and upper snake case
I could've made `detect_case` return a collection of `DetectedCase` and then modified the other code as such, but I think using the same code rustc uses is simpler and a surefire way to achieve the same diagnostics as rustc.
Co-authored-by: Arif Roktim <arifrroktim@gmail.com>
2020-10-26 13:20:57 +00:00
Florian Diebold
6b5f82bcea
Get rid of FAKE_PLACEHOLDER
...
The lifetime placeholder can be replaced by the static lifetime, and for array
sizes we should just be using a concrete const.
2020-10-25 12:42:38 +01:00
Arif Roktim
afb2166aeb
Make IncorrectDiagnostic match rustc by copying rustc's code.
2020-10-24 19:21:53 -04:00
Florian Diebold
baeb16e83f
Improve Chalk debugging
...
- add panic context for the trait goal if CHALK_DEBUG is set
- print the Chalk program even if we're panicking
- log goal/solution while TLS is still set
2020-10-23 15:28:02 +02:00
bors[bot]
31db677a94
Merge #6319
...
6319: Properly identify camel cased acronyms as UpperCamelCase r=popzxc a=ArifRoktim
This closes #6305 .
Co-authored-by: Arif Roktim <arifrroktim@gmail.com>
2020-10-22 14:24:10 +00:00
Arif Roktim
854b133181
Properly identify camel cased acronyms as UpperCamelCase
2020-10-21 17:10:22 -04:00
bors[bot]
9eb6cbb80b
Merge #6307
...
6307: Add whitelist of safe intrinsics r=frazar a=frazar
This PR should fix #5996 , where intrinsic operations where all marked as unsafe.
I'm rather new to this codebase, so I might be doing something *very* wrong. Please forgive me!
In particular, I'm not sure how to "check that we are in extern `rust-intrinsics`" as mentioned [in this comment](https://github.com/rust-analyzer/rust-analyzer/issues/5996#issuecomment-709234802 ).
Co-authored-by: Francesco Zardi <frazar@users.noreply.github.com>
2020-10-21 20:09:11 +00:00
Francesco Zardi
0be21b05d6
Move safe intrinsic tests
2020-10-21 21:53:05 +02:00
Igor Aleksanov
2a20e7795c
Add descriptions for diagnostics parseable by xtask
2020-10-19 20:55:16 +03:00
Roland Ruckerbauer
0e9d1e17d6
binary operator overload type inference: add test mark
2020-10-14 19:00:04 +02:00
Roland Ruckerbauer
4e49b2f731
Implement binary operator overloading type inference
2020-10-13 20:48:08 +02:00
Igor Aleksanov
fb0ab9f745
Keep SyntaxNodePtr::range private
2020-10-12 11:05:00 +03:00
Igor Aleksanov
66cea8cbaa
Replace 'if let' with 'match' in decl_check.rs
2020-10-12 11:05:00 +03:00
Igor Aleksanov
559cc97073
Add to_upper_snake_case function to stdx
2020-10-12 11:05:00 +03:00
Igor Aleksanov
ebd30033b3
Fix compilation error
2020-10-12 11:05:00 +03:00
Igor Aleksanov
f2c91fc5a8
Apply suggestions from code review
...
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-10-12 11:05:00 +03:00
Igor Aleksanov
9ea57cac0e
Fix code style issues
2020-10-12 11:05:00 +03:00
Igor Aleksanov
2a72f876d6
Fix issues with match arm bindings
2020-10-12 11:05:00 +03:00
Igor Aleksanov
45ac2b2ede
Code style adjustments
2020-10-12 11:05:00 +03:00
Igor Aleksanov
b42562b5de
Make incorrect case diagnostic work inside of functions
2020-10-12 11:05:00 +03:00
Igor Aleksanov
9ec1741b65
Refactor string helpers for decl_check module
2020-10-12 11:05:00 +03:00
Igor Aleksanov
fb96bba878
Add diagnostics for enum names and variants
2020-10-12 11:05:00 +03:00
Igor Aleksanov
e24e22f288
Add fix for incorrect case diagnostic
2020-10-12 11:04:59 +03:00
Igor Aleksanov
17f1026c46
Improve string helpers functions
2020-10-12 10:59:54 +03:00
Igor Aleksanov
21dd704b6b
Check structure fields to be snake_case
2020-10-12 10:59:54 +03:00
Igor Aleksanov
329626124f
Add check for structure names to be CamelCase
2020-10-12 10:59:54 +03:00
Igor Aleksanov
1773c6d154
Extract helper functions into a separate module
2020-10-12 10:59:54 +03:00
Igor Aleksanov
f5cea35986
Add checks for function parameters
2020-10-12 10:59:54 +03:00
Igor Aleksanov
4039176ec6
Create basic support for names case checks and implement function name case check
2020-10-12 10:59:54 +03:00
Casey Primozic
13bdadb515
Make unimplemented match variants explicit
2020-10-06 23:56:31 -07:00
Casey Primozic
f40e86e141
todo!()
-> unimplemented!() // FIXME
for CI
2020-10-06 15:19:34 -07:00