Commit graph

16347 commits

Author SHA1 Message Date
Laurențiu Nicola
577a96a71f Bump windows-sys 2025-01-17 21:28:11 +02:00
gvozdvmozgu
3ce55e949e add missing Win32_Foundation feature 2025-01-17 08:44:50 -08:00
Lukas Wirth
ff5c32f542
Merge pull request #18908 from jnyfah/error-braces
Fix: Detect missing errors for } braces before else in let...else statements
2025-01-17 13:29:56 +00:00
binarycat
08c1256dc2 fix error for when results in a rustdoc-js test are in the wrong order
see COMPILETEST_FORCE_STAGE0=1
2025-01-16 12:10:38 -06:00
jnyfah
474c73bd94 CRLF to LF 2025-01-16 16:46:06 +01:00
jnyfah
05712c6c85 added tests 2025-01-16 16:19:47 +01:00
Lukas Wirth
99c7013070
Merge pull request #18952 from lh123/add-raw-keyword-complete
feat: complete raw, const keyword
2025-01-16 14:24:53 +00:00
jnyfah
715e457500 revert blocklike changes 2025-01-16 12:54:26 +01:00
lh123
1f32c2a9ec don't complete raw in &mut $0 2025-01-16 19:40:42 +08:00
VinTarZ
824bad7f65
Fix debug_assertions broken in 1c5a125beb35725ccc2ade005db9870db734bf23 2025-01-16 14:19:16 +03:00
jnyfah
39a1bb9e98 update blocklike 2025-01-16 12:11:55 +01:00
lh123
341a6d5bba feat: complete raw, const keyword 2025-01-16 18:27:59 +08:00
Lukas Wirth
fa71da9ff0
Merge pull request #18951 from Veykril/push-zpvunsvlpuxt
Add missing `#[rust_analyzer::rust_fixture]` annotations
2025-01-16 10:21:22 +00:00
Lukas Wirth
56059f8c7a
Merge pull request #18950 from Veykril/push-okmsynnltxts
Generalize some type walking in hover type actions
2025-01-16 10:19:37 +00:00
Lukas Wirth
4d5632b720 Generalize some type walking in hover type actions 2025-01-16 11:06:11 +01:00
Lukas Wirth
664cdd2936 Minor docs improvement 2025-01-16 11:05:20 +01:00
Lukas Wirth
548d70f8aa Add edit test for await skipping completions 2025-01-16 10:56:57 +01:00
Lukas Wirth
5a9763750e Add missing #[rust_analyzer::rust_fixture] annotations 2025-01-16 10:51:57 +01:00
Lukas Wirth
419bdb20e2
Merge pull request #18949 from Veykril/push-yzklntsnnuts
Partially back out "fix: Fix sourceroot construction for virtual manifests"
2025-01-16 09:18:48 +00:00
Lukas Wirth
c00dfedc34 Partially back out "fix: Fix sourceroot construction for virtual manifests" 2025-01-16 10:02:26 +01:00
Lukas Wirth
8ec90940f2
Merge pull request #18946 from lh123/goto-to-type-def-func-param-and-trait-bound
feat: show go-to-type-def actions for func param and trait bound when hovering
2025-01-16 08:48:02 +00:00
Lukas Wirth
d6477b952b
Merge pull request #18927 from ChayimFriedman2/skip-iter-await
feat: Add smart completions that skip `await` or `iter()` and `into_iter()`
2025-01-16 08:47:26 +00:00
lh123
fdc672e402 add goto-to-def actions for trait bound 2025-01-16 14:47:42 +08:00
lh123
b6ba392bb1 add go-to-type-def actions for func params 2025-01-16 14:47:26 +08:00
bors
5cd16b7f2b Auto merge of #135458 - jieyouxu:migrate-extern-fn-reachable, r=lqd
tests: Port `extern-fn-reachable` to rmake.rs

Part of #121876.

## Summary

This PR ports `tests/run-make/extern-fn-reachable` to use `rmake.rs`. Notable changes:

- We now use the `object` crate and look at the exported symbols specifically.
- This test's coverage regressed against windows-msvc back in [replace dynamic library module with libloading #90716](https://github.com/rust-lang/rust/pull/90716), but since we use `object` now, we're able to claw the test coverage back.
- The checks are now stricter:
    1. It no longer looks for substring symbol matches in `nm` textual outputs, it inspects the symbol names precisely.
    2. We now also explicitly check for the presence of leading underscore in exported symbol names on apple vs non-apple targets.
- Added another case of `#[no_mangle] fn fun6() {}` (note the lack of `pub`) to check that Rust nameres visibility is orthogonal to symbol visibility in dylib.

## History

- Test was initially introduced as a run-pass[^run-pass] test as part of [Don't mark reachable extern fns as internal #10539](https://github.com/rust-lang/rust/pull/10539).
- Test re-introduced as a run-make test in https://github.com/rust-lang/rust/pull/13741.
- Later, the test coverage regressed in https://github.com/rust-lang/rust/pull/90716.

[^run-pass]: no longer a thing nowadays

Supersedes #128314.
Co-authored with `@lolbinarycat.`

try-job: x86_64-msvc
try-job: i686-msvc
try-job: i686-mingw
try-job: x86_64-mingw-1
try-job: x86_64-apple-1
try-job: aarch64-apple
try-job: test-various
2025-01-16 02:31:22 +00:00
1hakusai1
36d705e042 Use resolve_method_call_as_callable to handle function types 2025-01-16 10:00:30 +09:00
1hakusai1
7f3601ffab refactor: Change order of arguments 2025-01-16 09:35:07 +09:00
1hakusai1
97a7d2354a refactor: rename to descriptive name 2025-01-16 09:33:52 +09:00
Waffle Lapkin
fea252667d
update chalk
this brings in support from trait upcasting, yay!
(and as such fixes a test)
2025-01-16 00:38:36 +01:00
Waffle Lapkin
20e3834f69
add a test for trait upcasting type mismatch
this adds a test asserting *incorrect* behavior that can be seen in
<https://github.com/rust-lang/rust-analyzer/issues/18083>, and a test
asserting the *correct* behavior for the case of no super traits.
2025-01-16 00:38:36 +01:00
Chayim Refael Friedman
553d525f16 Add smart completions that skip await or iter() and into_iter()
E.g. complete `await.foo()`.
2025-01-15 22:32:07 +02:00
HKalbasi
88ae0896f9
Merge pull request #18897 from duncanawoods/master
fix: Make test_runner::TestState::stdout optional to fix parsing cargo test json output
2025-01-15 19:51:36 +00:00
bors
419b3e2d3e Auto merge of #135540 - GuillaumeGomez:rollup-40lfb7l, r=GuillaumeGomez
Rollup of 6 pull requests

Successful merges:

 - #132654 (std: lazily allocate the main thread handle)
 - #135003 (deprecate `std::intrinsics::transmute` etc, use `std::mem::*` instead)
 - #135428 (rustdoc: Remove `AttributesExt` trait magic that added needless complexity)
 - #135498 (Prefer lower `TraitUpcasting` candidates in selection)
 - #135507 (TRPL: incorporate all backward-compatible Edition changes)
 - #135529 (remove outdated FIXME)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-15 18:26:54 +00:00
bors
27f336106d Auto merge of #133461 - ferrocene:add-copyright-files-to-dist, r=Kobzol
Add COPYRIGHT-*.html files to distribution and update `COPYRIGHT`

* Updates the `COPYRIGHT` file to describe how we actually do things now, and removes the licence text from it as they are stored elsewhere.
* dist tarballs get all of the files in `LICENSES/*`.
  * This folder is managed by `reuse` and each file exists because we refer to the licence somewhere in our tree. We should be supplying these licence texts to anyone who obtains a copy of the source code and now we do.
* The binary rust tarball gets `COPYRIGHT.html` and `COPYRIGHT-library.html`, which are auto-generated files that describe the licence information for both the in-tree source files used to build the Rust toolchain, and the out-of-tree dependencies we used to build the toolchain.
   * The other binary tarballs are unchanged, for now. In future you need to make a call whether to ship multiple version of COPYRIGHT.html, or whether to try and make, for example, a cargo-specific COPYRIGHT.html file.
* The `LICENSE-MIT` file now includes a blanket copyright statement, as the text indicates that it should and because users will expect to know who owns the copyright of the material they have been given (even if the answer is 'lots of people').

try-job: x86_64-fuchsia
2025-01-15 15:30:53 +00:00
Guillaume Gomez
369d135733
Rollup merge of #135003 - RalfJung:deprecate-allowed-through-unstable, r=davidtwco
deprecate `std::intrinsics::transmute` etc, use `std::mem::*` instead

The `rustc_allowed_through_unstable_modules` attribute lets users call `std::mem::transmute` as `std::intrinsics::transmute`. The former is a reexport of the latter, and for a long time we didn't properly check stability for reexports, so making this a hard error now would be a breaking change for little gain. But at the same time, `std::intrinsics::transmute` is not the intended path for this function, so I think it is a good idea to show a deprecation warning when that path is used. This PR implements that, for all the functions in `std::intrinsics` that carry the attribute.

I assume this will need ``@rust-lang/libs-api`` FCP.
2025-01-15 16:30:11 +01:00
Lukas Wirth
805598dac3
Merge pull request #18922 from Veykril/push-tmtzukrsnott
fix: Don't return inlay hints outside requested range
2025-01-15 13:58:07 +00:00
Lukas Wirth
79f1471cd0 fix: Don't return inlay hints outside requested range 2025-01-15 14:42:53 +01:00
Lukas Wirth
6bf145932a
Merge pull request #18940 from Veykril/push-ulowqkpprslq
fix: Fix semantics not always correctly caching file roots
2025-01-15 12:54:58 +00:00
Lukas Wirth
38e696f6cf
Merge pull request #18929 from ChayimFriedman2/i-acknowledge-defeat
fix: Fix another bug when reaching macro expansion limit caused a stack overflow
2025-01-15 12:41:17 +00:00
Lukas Wirth
97522d1fe0
Merge pull request #18939 from Veykril/push-wztmylkyqttu
Flip on typing config to be opt-in, better defaults
2025-01-15 12:40:45 +00:00
Lukas Wirth
b56b4d60fe fix: Fix semantics not always correctly caching file roots 2025-01-15 13:40:25 +01:00
1hakusai1
f441bbfcf3 Fix wrong fixture 2025-01-15 21:28:37 +09:00
bors
341f60327f Auto merge of #134353 - oli-obk:safe-target-feature-unsafe-by-default, r=wesleywiser
Treat safe target_feature functions as unsafe by default [less invasive variant]

This unblocks
* #134090

As I stated in https://github.com/rust-lang/rust/pull/134090#issuecomment-2541332415 I think the previous impl was too easy to get wrong, as by default it treated safe target feature functions as safe and had to add additional checks for when they weren't. Now the logic is inverted. By default they are unsafe and you have to explicitly handle safe target feature functions.

This is the less (imo) invasive variant of #134317, as it doesn't require changing the Safety enum, so it only affects FnDefs and nothing else, as it should.
2025-01-15 12:06:56 +00:00
1hakusai1
f669b55b18 Use adjusted type 2025-01-15 21:04:19 +09:00
1hakusai1
7db40dd630 Add test cases 2025-01-15 20:43:28 +09:00
Lukas Wirth
7be6698e75 Flip on typing config to be opt-in, better defaults 2025-01-15 10:25:37 +01:00
Jacob Pratt
f35ff74ac6
Rollup merge of #135424 - compiler-errors:unstable-lint, r=ehuss
Detect unstable lint docs that dont enable their feature

Makes sure that we detect cases where unstable lint's docs don't enable the corresponding feature.

r? ehuss
2025-01-15 04:08:13 -05:00
Jacob Pratt
f9d8b6590d
Rollup merge of #133807 - mrkajetanp:ci-aarch64-opt-dist, r=Kobzol
ci: Enable opt-dist for dist-aarch64-linux builds

Move the CI dist-aarch64-linux job to an aarch64 runner and enable optimised dist builds with the opt-dist pipeline.

For the time being, disable bolt on aarch64 due to upstream bolt bugs.

r? `@Kobzol`
cc `@lqd`

try-job: dist-aarch64-linux
2025-01-15 04:08:11 -05:00
Jacob Pratt
285df03257
Rollup merge of #132397 - m-ou-se:warn-missing-abi, r=Nadrieril
Make missing_abi lint warn-by-default.

This makes the missing_abi lint warn-by-default, as suggested here: https://github.com/rust-lang/rfcs/pull/3722#issuecomment-2447719047

This needs a lang FCP.
2025-01-15 04:08:10 -05:00
Lukas Wirth
1ceea5b275 Early exit in search properly 2025-01-15 09:47:45 +01:00