profile
viewpoint
David Wood davidtwco @codeplaysoftware Edinburgh, Scotland https://davidtw.co

davidtwco/ansi-c-exercises 10

@davidtwco does exercises from the C Programming Language, Second Edition by Brian Kernighan and Dennis Ritchie.

davidtwco/dotfiles 8

@davidtwco does dotfiles. Configurations for vim, tmux, zsh, bash, git, gpg and more.

autokrator-uog/project-and-dissertation 1

Central hub for project documentation and specifications, including final dissertation produced as coursework.

autokrator-uog/user-interface 1

React-based frontend for the financial platform, works with the BfaF to provide a user-friendly live interface to accounts, balances and transactions.

autokrator-uog/accounts-service 0

DEPRECATED: Java-based microservice for managing financial accounts, balances and acception/rejection of transactions.

autokrator-uog/actix-web 0

Actix web framework - fork with minor changes for use with Autokrator project.

autokrator-uog/backend 0

UI Backend (or BfaF/Backend-for-a-frontend) acts as a gateway between the user interface and the microservices, providing a unified API for interacting with the core services.

autokrator-uog/core 0

Autokrator application for Team Project 3 course at the University of Glasgow.

autokrator-uog/demo 0

Full financial platform orchestration and management for use in presenting demos.

autokrator-uog/jackie 0

Jackie is the reporting service that allows querying of Couchbase to extract information about past events.

Pull request review commentrust-lang/rust

Improve wording for external crate resolution error

 impl<'a, 'b> ImportResolver<'a, 'b> {                     }                     _ => {                         if !ident.is_path_segment_keyword() {-                            format!("no `{}` external crate", ident)+                            format!("no external crate `{}`", ident)

I think that the PR's current wording is fine, but I don't feel strongly - either is an improvement.

camelid

comment created time in an hour

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

pull request commentrust-lang/rust

SipHasher128: fix platform-independence confusion

r? @nagisa

tgnottingham

comment created time in a day

PullRequestReviewEvent

PR opened rust-lang/rust

resolve: improve "try using the enum's variant"

Fixes #73427.

This PR improves the "try using the enum's variant" suggestion:

  • Variants in suggestions would not result in more errors (e.g. use of a struct variant is only suggested if the suggestion can trivially construct that variant). Therefore, suggestions are only emitted for variants that have no fields (since the suggestion can't know what value fields would have).
  • Suggestions include the syntax for constructing the variant. If a struct or tuple variant is suggested, then it is constructed in the suggestion - unless in pattern-matching or when arguments are already provided.
  • A help message is added which mentions the variants which are no longer suggested.

All of the diagnostic logic introduced by this PR is separated from the normal code path for a successful compilation.

r? @estebank

+258 -88

0 comment

5 changed files

pr created time in a day

push eventdavidtwco/rust

David Wood

commit sha 9ef68f53e1f882afb63f824a10ff33ccd2c4764b

resolve: improve "try using the enum's variant" This commit improves the "try using the enum's variant" suggestion: - Variants in suggestions would not result in more errors (e.g. use of a struct variant is only suggested if the suggestion can trivially construct that variant). Therefore, suggestions are only emitted for variants that have no fields (since the suggestion can't know what value fields would have). - Suggestions include the syntax for constructing the variant. If a struct or tuple variant is suggested, then it is constructed in the suggestion - unless in pattern-matching or when arguments are already provided. - A help message is added which mentions the variants which are no longer suggested. Signed-off-by: David Wood <david@davidtw.co>

view details

push time in a day

create barnchdavidtwco/rust

branch : issue-73427-you-might-have-meant-variant

created branch time in a day

push eventdavidtwco/rust

David Wood

commit sha 01f65afa4adff6dfbea84621e6851c028aaa7159

diag: improve closure/generic parameter mismatch This commit improves the diagnostic when a type parameter is expected and a closure is found, noting that each closure has a distinct type and therefore could not always match the caller-chosen type of the parameter. Signed-off-by: David Wood <david@davidtw.co>

view details

Alexis Bourget

commit sha 8aae1eee94f481bd955cff473deae1f03c313451

Move cell exterior test into library unit tests

view details

Alexis Bourget

commit sha f69c5aa428efdbc01685c3d06e63fedd3120e8e5

Move more tests using Cell to unit tests

view details

Alexis Bourget

commit sha af44a2a857618150b180dabe9c3383a3911b3640

move 'cell does not clone' test

view details

Alexis Bourget

commit sha fc152cd67e0b6d3f11f49eae43183d03a3b8bf17

move 'test zip ...' tests

view details

Alexis Bourget

commit sha 85b2d9bf6f2b04ae8996050b2fb276bd58cd92de

fmt

view details

Alexis Bourget

commit sha 949c96660c32ff9b19a639b4be607938c2262653

move format! interface tests

view details

Alexis Bourget

commit sha ed52c7bb7516f12f74704e20457d5046378a49fc

Move deref-lval test

view details

Alexis Bourget

commit sha ac39debeba2b63a39a3833e2d7451f0b1f95b5f2

Move panic safety traits tests

view details

Alexis Bourget

commit sha 8904921c1d6b3636f4352f9dd6d4875132b89998

Move array cycle test

view details

Alexis Bourget

commit sha 275eed7eb1d45e8173b932e2abfdae2201d2cf62

Move vec-slice-drop test

view details

Alexis Bourget

commit sha 6bc0357dadd9d41a8166d4c2ab8a27c0bb8150d3

Move vec-cycle test

view details

Alexis Bourget

commit sha f6a4189d05f8bc7091450289f7285819ebdd3c62

Move vec-cycle-wrapped test

view details

Alexis Bourget

commit sha 5be843fc54f80817c88438efa097a4ba81d4aa9e

Move format-ref-cell test

view details

Ivan Tham

commit sha 1994cee61a4aea9dc46bb3d0323c8290621eda33

Add alias for iterator fold fold is known in python and javascript as reduce, not sure about inject but it was written in doc there.

view details

Ivan Tham

commit sha ea0065ad4f96153539476e2f3df83bae96018ede

Reposition iterator doc alias reduce before inline

view details

Alexis Bourget

commit sha a61b9638bbbb48f9c2fde0ccbbcf03e64494ea0f

review: fix nits and move panic safety tests to the correct place

view details

Matthew Jasper

commit sha ef83742b2bf9cb26c54576dad76418d872b52a99

Delay bug for non-universal regions in member constraints

view details

Matthew Jasper

commit sha 3a81adeca2b81a3c54bbbe07afafedea79f92c42

Call `type_of` for opaque types later in compilation This ensures that various wf checks have already been done before we typeck item bodies.

view details

Dylan MacKenzie

commit sha bb6c249f99c736b6986232c0c2eeec1d058585af

Speed up `IntRange::from_pat` Previously, this method called the more general `pat_constructor` function, which can return other pattern variants besides `IntRange`. Then it throws away any non-`IntRange` variants. Specialize it so work is only done when it could result in an `IntRange`.

view details

push time in 2 days

pull request commentrust-lang/rust

move candidate_from_obligation_no_cache

@bors r+

lcnr

comment created time in 2 days

PullRequestReviewEvent

push eventdavidtwco/rust

Laurence Tratt

commit sha 73ada2d40429488aaaacf37b608bababc137b910

Explicitly document the size guarantees that Option makes. Triggered by a discussion on wg-unsafe-code-guidelines about which layouts of `Option<T>` one can guarantee are optimised to a single pointer.

view details

Laurence Tratt

commit sha f5118a525fcf9db4102d903650331039158eff11

Clarify and add guarantee about `transmute`.

view details

Laurence Tratt

commit sha 83f47aa11bd664ed8a15ef9833063833b7b3e71c

Be clear about the reverse `transmute` guarantees.

view details

Laurence Tratt

commit sha f3d7196caec3f54e572c7389b1cef9fd9e62c1ed

Be clearer about Some/None transmute.

view details

Laurence Tratt

commit sha 8cb8955d570c76631840bfc98825ca49c0dd8eea

Change notation. Co-authored-by: Ralf Jung <post@ralfj.de>

view details

Laurence Tratt

commit sha 55802e3bf3bf6d1db5c76aea581a7912bd752890

Add Rust function pointers. Co-authored-by: Ralf Jung <post@ralfj.de>

view details

Laurence Tratt

commit sha 68209c3fe4e0f5c3758f18e98efc175af31c2e51

Rename the types for clarity.

view details

Laurence Tratt

commit sha 9bac5774d7b452b2227c9fb77a4c6de3f432ee55

Grammar tweak.

view details

Guillaume Gomez

commit sha be3d8e5d6cc6833963c00404ec48a7f8f4a0c606

Add missing code examples on HashMap types

view details

Raoul Strackx

commit sha a13239dac2b4b50e389a3e12c638d164e620ea2f

generic ret hardening test

view details

Raoul Strackx

commit sha cd31f40b6f59c8966a09e7f1e2d6c3c5ed1570f1

generic load hardening test

view details

Avi Dessauer

commit sha a7a20860537ddd05f802598866681a6f9cc3413c

Stability annotations on generic trait parameters

view details

Avi Dessauer

commit sha a9d6da576bbc4b80337c14cb3d0fcb2967a934f4

ignore-tidy-linelength generic default stab test Co-authored-by: Tim Diekmann <21277928+TimDiekmann@users.noreply.github.com>

view details

Avi Dessauer

commit sha 8b81a17d7353a75e4b2d29f96c2c0c8fb1713fec

Uncomment struct tests

view details

Avi Dessauer

commit sha 88b77b6534d5353a16e597451a22322cc7d92063

Comment out broken tests

view details

Avi Dessauer

commit sha eb7abb9e32a2ba10d0c083b13bb1a2dcd1d22b5d

Unstable default types leak in public fields

view details

Avi Dessauer

commit sha cb7264b22a45b993df57bd17e869a472a5c12b47

Fix tests

view details

Avi Dessauer

commit sha f665ccd3a2f5e58c6ac3828e34f5c8e94f71811c

Add more tests

view details

Avi Dessauer

commit sha a1892f1a798f8b0c24136d0be65fa4cc23e0ff74

Test stability on default parameter of deprecated

view details

Avi Dessauer

commit sha 3947591ee82702f124af9248463036155b83b907

Remove now unneeded check_stability argument

view details

push time in 3 days

issue openedrust-lang/rust

warning for missing `config.toml` doesn't consider `$RUST_BOOTSTRAP_CONFIG`

If a config.toml is provided via $RUST_BOOTSTRAP_CONFIG, not by having a config.toml in the working directory, then warning: you have not made a 'config.toml' is printed incorrectly.

cc @jyn514

created time in 3 days

push eventdavidtwco/rust

Laurence Tratt

commit sha 73ada2d40429488aaaacf37b608bababc137b910

Explicitly document the size guarantees that Option makes. Triggered by a discussion on wg-unsafe-code-guidelines about which layouts of `Option<T>` one can guarantee are optimised to a single pointer.

view details

Laurence Tratt

commit sha f5118a525fcf9db4102d903650331039158eff11

Clarify and add guarantee about `transmute`.

view details

Laurence Tratt

commit sha 83f47aa11bd664ed8a15ef9833063833b7b3e71c

Be clear about the reverse `transmute` guarantees.

view details

Laurence Tratt

commit sha f3d7196caec3f54e572c7389b1cef9fd9e62c1ed

Be clearer about Some/None transmute.

view details

Laurence Tratt

commit sha 8cb8955d570c76631840bfc98825ca49c0dd8eea

Change notation. Co-authored-by: Ralf Jung <post@ralfj.de>

view details

Laurence Tratt

commit sha 55802e3bf3bf6d1db5c76aea581a7912bd752890

Add Rust function pointers. Co-authored-by: Ralf Jung <post@ralfj.de>

view details

Laurence Tratt

commit sha 68209c3fe4e0f5c3758f18e98efc175af31c2e51

Rename the types for clarity.

view details

Laurence Tratt

commit sha 9bac5774d7b452b2227c9fb77a4c6de3f432ee55

Grammar tweak.

view details

Guillaume Gomez

commit sha be3d8e5d6cc6833963c00404ec48a7f8f4a0c606

Add missing code examples on HashMap types

view details

Raoul Strackx

commit sha a13239dac2b4b50e389a3e12c638d164e620ea2f

generic ret hardening test

view details

Raoul Strackx

commit sha cd31f40b6f59c8966a09e7f1e2d6c3c5ed1570f1

generic load hardening test

view details

Avi Dessauer

commit sha a7a20860537ddd05f802598866681a6f9cc3413c

Stability annotations on generic trait parameters

view details

Avi Dessauer

commit sha a9d6da576bbc4b80337c14cb3d0fcb2967a934f4

ignore-tidy-linelength generic default stab test Co-authored-by: Tim Diekmann <21277928+TimDiekmann@users.noreply.github.com>

view details

Avi Dessauer

commit sha 8b81a17d7353a75e4b2d29f96c2c0c8fb1713fec

Uncomment struct tests

view details

Avi Dessauer

commit sha 88b77b6534d5353a16e597451a22322cc7d92063

Comment out broken tests

view details

Avi Dessauer

commit sha eb7abb9e32a2ba10d0c083b13bb1a2dcd1d22b5d

Unstable default types leak in public fields

view details

Avi Dessauer

commit sha cb7264b22a45b993df57bd17e869a472a5c12b47

Fix tests

view details

Avi Dessauer

commit sha f665ccd3a2f5e58c6ac3828e34f5c8e94f71811c

Add more tests

view details

Avi Dessauer

commit sha a1892f1a798f8b0c24136d0be65fa4cc23e0ff74

Test stability on default parameter of deprecated

view details

Avi Dessauer

commit sha 3947591ee82702f124af9248463036155b83b907

Remove now unneeded check_stability argument

view details

push time in 3 days

pull request commentrust-lang/rust

Compute underlying type of impl trait types later in compilation

@bors r+

matthewjasper

comment created time in 3 days

PullRequestReviewEvent

pull request commentrust-lang/rust

passes: `check_attr` on more targets

This sounds like a behavioral change to me, can you add a test/example where this is the case?

I've added the example you gave in a previous comment as a test.

davidtwco

comment created time in 4 days

Pull request review commentrust-lang/rust

passes: `check_attr` on more targets

 impl CheckAttrVisitor<'tcx> {         item: Option<&Item<'_>>,         hir_id: HirId,     ) {+        let attrs: Vec<_> =+            attrs.iter().filter(|attr| self.tcx.sess.check_name(attr, sym::repr)).collect();++        if matches!(target, Target::Closure | Target::Expression | Target::Statement) {

Fixed!

davidtwco

comment created time in 4 days

PullRequestReviewEvent

push eventdavidtwco/rust

Ivan Tham

commit sha c5975e9b6c5781b3b7300b7921c14b060086e1c1

Reduce duplicate in liballoc reserve error handling

view details

Vali Schneider

commit sha 459969f88ff95c94b7b34043a7f0e13de91de4f8

added restriction lint that prohibits the usage of unimplemented, unreachable or panic in a function of type result or option

view details

Vali Schneider

commit sha ceab1a9167655eba9f9556f8766f8702e49dfef3

removed unnecessary comment

view details

Vali Schneider

commit sha 8462cce96081b87eba7a5bc89130a1a09fe1f6d0

edited documentation

view details

Vali Schneider

commit sha b2d8ca9a766703469178ea37d4d46067bb6fa926

ran cargo dev update lints

view details

Vali Schneider

commit sha b006522393a3c3c2656e1ccdfbb0076ff1bd7e99

added lint for todo and removed option

view details

Vali Schneider

commit sha a424a2c1676a29c147252873037e8943d54941d3

changed check_impl_item to check_fn and added a few more test cases

view details

Vali Schneider

commit sha 73a3288282e733bfc5893e9920d29f1de5a21591

uncommented fn

view details

Federico Ponzi

commit sha 27c90b881df93b53fd3f24dcbfed116379c2fc69

initial implementation of OpenOptions to c_int

view details

Federico Ponzi

commit sha eb3906be4ad375cc6b83cd6a6e0116817db22575

Fix typo get openoptions function name Co-authored-by: Ivan Tham <pickfire@riseup.net>

view details

Erik Desjardins

commit sha d3b9ece4c0028ff7e36e34df2d2b26366f9c0648

add tests related to tuple scalar layout with ZST in last field

view details

Erik Desjardins

commit sha e5d85f917b8965a5e62513c17cbb887366b152bc

allow reordering of the last field of a MaybeUnsized struct if it's a ZST

view details

Erik Desjardins

commit sha e9bc3ddb073f2261ac46832d985efe8db863ed6a

test that we do not change the offset of ZST tuple fields when unsizing

view details

Erik Desjardins

commit sha 68217c9e0f1269d29b4c1c72d08fb1b95bf441cd

ignore zst offsets instead

view details

Erik Desjardins

commit sha 6fc1d8bc13124bb134d7ab54e56237821a55912e

add codegen test

view details

Erik Desjardins

commit sha 24e0913e37cc6fc363b37d13bf519db212f175a2

handle vector layout

view details

Federico Ponzi

commit sha 1bc0627607262cc60a7692b16e205f30fc88b89f

Add as_flag function to the OpenOptionsExt struct

view details

Federico Ponzi

commit sha 2c9e27b759a9e9feeb943fb855e32d7383d1dcc6

Merge branch 'convert-openoptions-cint' of github.com:FedericoPonzi/rust into convert-openoptions-cint

view details

Vali Schneider

commit sha f9fcbbea03edb735c22311522b55d7b854bd6ac0

fixed bug

view details

Federico Ponzi

commit sha 7c1e5c1dcd25c945f619eda289f639dbe2b002da

Update OpenOptions::as_flags docs, and minor styling

view details

push time in 4 days

push eventdavidtwco/rust

Vali Schneider

commit sha 459969f88ff95c94b7b34043a7f0e13de91de4f8

added restriction lint that prohibits the usage of unimplemented, unreachable or panic in a function of type result or option

view details

Vali Schneider

commit sha ceab1a9167655eba9f9556f8766f8702e49dfef3

removed unnecessary comment

view details

Vali Schneider

commit sha 8462cce96081b87eba7a5bc89130a1a09fe1f6d0

edited documentation

view details

Vali Schneider

commit sha b2d8ca9a766703469178ea37d4d46067bb6fa926

ran cargo dev update lints

view details

Vali Schneider

commit sha b006522393a3c3c2656e1ccdfbb0076ff1bd7e99

added lint for todo and removed option

view details

Vali Schneider

commit sha a424a2c1676a29c147252873037e8943d54941d3

changed check_impl_item to check_fn and added a few more test cases

view details

Vali Schneider

commit sha 73a3288282e733bfc5893e9920d29f1de5a21591

uncommented fn

view details

Federico Ponzi

commit sha 27c90b881df93b53fd3f24dcbfed116379c2fc69

initial implementation of OpenOptions to c_int

view details

Federico Ponzi

commit sha eb3906be4ad375cc6b83cd6a6e0116817db22575

Fix typo get openoptions function name Co-authored-by: Ivan Tham <pickfire@riseup.net>

view details

Erik Desjardins

commit sha d3b9ece4c0028ff7e36e34df2d2b26366f9c0648

add tests related to tuple scalar layout with ZST in last field

view details

Erik Desjardins

commit sha e5d85f917b8965a5e62513c17cbb887366b152bc

allow reordering of the last field of a MaybeUnsized struct if it's a ZST

view details

Erik Desjardins

commit sha e9bc3ddb073f2261ac46832d985efe8db863ed6a

test that we do not change the offset of ZST tuple fields when unsizing

view details

Erik Desjardins

commit sha 68217c9e0f1269d29b4c1c72d08fb1b95bf441cd

ignore zst offsets instead

view details

Erik Desjardins

commit sha 6fc1d8bc13124bb134d7ab54e56237821a55912e

add codegen test

view details

Erik Desjardins

commit sha 24e0913e37cc6fc363b37d13bf519db212f175a2

handle vector layout

view details

Federico Ponzi

commit sha 1bc0627607262cc60a7692b16e205f30fc88b89f

Add as_flag function to the OpenOptionsExt struct

view details

Federico Ponzi

commit sha 2c9e27b759a9e9feeb943fb855e32d7383d1dcc6

Merge branch 'convert-openoptions-cint' of github.com:FedericoPonzi/rust into convert-openoptions-cint

view details

Vali Schneider

commit sha f9fcbbea03edb735c22311522b55d7b854bd6ac0

fixed bug

view details

Federico Ponzi

commit sha 7c1e5c1dcd25c945f619eda289f639dbe2b002da

Update OpenOptions::as_flags docs, and minor styling

view details

Ricky

commit sha e49a29933be3bd988ccb75b053f480d9c99a7ff5

Working map_err_ignore lint

view details

push time in 4 days

pull request commentrust-lang/rust

cg_llvm: split dwarf support

gcc.gnu.org/wiki/DebugFission and gcc.gnu.org/wiki/DebugFissionDWP have some discussion on merging the dwo files into a single file.

As far as I can tell (having just had a quick look at dwp's source), it doesn't support DWARF 5-flavoured Split DWARF, only pre-standard GNU-flavoured Split DWARF. According to #75890, LLVM enables DWARF 5 on some backends by default and it will emit DWARF 5-flavoured Split DWARF by default in those cases, so I'm not sure that we could rely on dwp always working.

davidtwco

comment created time in 4 days

pull request commentrust-lang/rust

Check for missing const-stability attributes in `rustc_passes`

r? @oli-obk

ecstatic-morse

comment created time in 4 days

PullRequestReviewEvent

push eventdavidtwco/ale

Kamil Grzywacz

commit sha e5e39a939a7007cfa4c9d922b41dc2bf5a4ec920

credo now recognizes umbrella projects Use ale#handlers#elixir#FindMixUmbrellaRoot to determine project root instead of ale#handlers#elixir#FindMixProjectRoot

view details

Eddie Lebow

commit sha 1997a8f7e22a930e3d47b61a7f9ab948d04f2b92

ShellDetect: fall back to filetype if no hashbang Some files lack a hashbang line but still have an unambiguous filetype. For example, the file `.zshrc` has the filetype `zsh`. Augment ale#handlers#sh#GetShellType to fall back to the filetype if no hashbang line can be found.

view details

Eddie Lebow

commit sha ece229c06f36efdc172ae6d70c73b72a16bb4cdf

shell: Make description more accurate The shell linter does more than just bash.

view details

Conrad Irwin

commit sha efe120ce9a9100129f1a811a659b0d7526cbf266

Fix prettier_standard to respect the configuration file Before this change, prettier_standard would run and ignore any .prettierrc, now it will respect the configuration of the file being linted. This change relies on prettier-standard 16.1.0 for the --stdin-filepath flag, but is backward compatible: older versions of prettier-standard will ignore the unknown flag and continue to run with no configuration file.

view details

patrick96

commit sha 1e9f870b74cee32af9eb9ea08a06bc997c78cb63

verilog: Add filename to vlog linter output

view details

davidsierradz

commit sha 0cea55924ba7780c1f17d17e8509160c77d1ab7c

allow passing custom options to markdownlint

view details

Joe Reynolds

commit sha 07080066e49d68910dccc19e4d95167300fb9422

Add sql-lint as linter

view details

Kevin Locke

commit sha 8c0b0f085f21d96216a337aa4fae027a3e391c99

Alias ps1 filetype to powershell Rather than requiring users to alias ps1 to powershell themselves, include it in s:default_ale_linter_aliases. Since [vim-ps1] is a popular (the only?) PowerShell ftplugin and there do not appear to be any other uses of ft=ps1 on vim.org, this seems like a safe and reasonable default. [vim-ps1]: http://www.vim.org/scripts/script.php?script_id=1327 Signed-off-by: Kevin Locke <kevin@kevinlocke.name>

view details

Horacio Sanson

commit sha c207d6a550916f4d34a41711c64024251466fea5

Fix 2816 - Standard fix does not work. The standard linter --fix fails if the file being input is not relative to the project root (https://github.com/standard/standard/issues/1384). This MR attempts to fix this by changing the command so the input file is relative to the project root and the output is to a temporary file. Preliminary tests with toy javascript projects seem to indicate this works fine.

view details

Alex Wang

commit sha fc6677d40565f4c84730a7cfb0af186f183be031

Avoid overriding parsed C/C++ -std=* flag ALE appends flags from {c,cpp}_{clang,gcc}_options after those found by parsing compile_commands.json or Makefile output. If -std=* flags are present in both the ALE flags and parsed flags, the last one present (i.e., ALE's -std=* flag) will determine the mode the compiler works in. This can result in errors showing up in vim but not in the actual build or vice-versa. For example, say you have foo.cpp: #include <type_traits> int main() { return std::is_same_v<float, int>; } If cpp_clang_options contains -std=c++17 and -std=c++14 is parsed from compile_commands.json, then ALE would end up running something like: clang++ -S -x c++ -fsyntax-only -std=c++14 -std=c++17 - < foo.cpp This would result in no errors showing up in Vim, but the actual build would fail with: <stdin>:3:14: error: no template named 'is_same_v' in namespace 'std'; did you mean 'is_same'? return std::is_same_v<float, int>; ~~~~~^~~~~~~~~ is_same /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/type_traits:872:61: note: 'is_same' declared here template <class _Tp, class _Up> struct _LIBCPP_TEMPLATE_VIS is_same : public false_type {}; ^ <stdin>:3:35: error: expected '(' for function-style cast or type construction return std::is_same_v<float, int>; ~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2 errors generated. as the actual build would not have the -std=c++17 flag added by ALE. If cpp_clang_options contains -std=c++14 and -std=c++17 is parsed from compile_commands.json, then the opposite problem would occur. ALE would end up running something like: clang++ -S -x c++ -fsyntax-only -std=c++17 -std=c++14 - < foo.cpp and would show an error on line 3 of foo.cpp: [clang] No template named 'is_same_v' in namespace 'std'; did you mean 'is_same'? (fix available) The actual build, on the other hand, would succeed without any complaints. Removing -std=* from ALE's flags if it is already present in the parsed flags ensures that the wrong -std=* flag is not used. An alternative would have been to switch the order in which parsed flags and ALE flags were concatenated when producing the command to execute, but that could prevent a user from intentionally using ALE's flags to override some other flags, e.g. -W* flags to enable/disable warnings in a project whose flags are not under the developer's control. -std=* flags are also present in cuda/nvcc.vim, objc/clang.vim, objcpp/clang.vim, and vhdl/ghdl.vim, but none of those linters appear to parse compile_commands.json or `make` output.

view details

John Gehrig

commit sha 1c6b9354a825a0dbab310077dd05666b8e081974

Issue 2598: Addtional ^M characters on Windows Windows may insert carriage return line endings, which ALE does not handle well. These characters should not be displayed. Adds a line to remove these characters for all messages.

view details

Tim Bedard

commit sha b800d24212d4c34b42dd388b8cab120b39893866

add stdin option for supported vint versions

view details

Klaas Pieter Annema

commit sha 2548763d04568823c4ef240f7f115adbb1dcfca2

Add Apple's swift-format as a linter

view details

James C. Davis

commit sha 15d590ee5e6779b6dad2640cdb55abc9d357bbe9

fix: don't append newline when buffer is noeol and nofixeol

view details

Stephen Robinson

commit sha b20931571484108d1ec29eaab5b731e754649664

Fixes #3092 - Implement loading `@file` c arguments

view details

Keith Maxwell

commit sha 53bfe418413746f582295a84ddf7a374ac84e154

vim/vint: show policy name So that I can find the relevant information in the vint linting policy summary and policies can be easily configured https://github.com/Vimjas/vint/wiki/Vint-linting-policy-summary Before this change an example warning message appears as: autocmd should execute in an augroup or execute with a group (see :help :autocmd) After this change the same example appears as: ProhibitAutocmdWithNoGroup - autocmd should execute in an augroup or execute with a group (see :help :autocmd)

view details

Horacio Sanson

commit sha c136061b3f4eeabbbe45ab25b75138aaec1f003d

Enable languagetool for asciidoctor files.

view details

Horacio Sanson

commit sha 8e6c7bff9aeeb445649843113b39ee3c79d4a909

Fix 1695 - Change rubocop fixer to use stdin (#3230) * Fix 1695 - Change rubocop fixer to use stdin * Update test_rubocop_fixer_callback.vader Co-authored-by: Horacio Sanson <horacio@allm.inc> Co-authored-by: w0rp <w0rp@users.noreply.github.com>

view details

w0rp

commit sha 979062235a23d2f2bbe176c64e649e9182826d2d

Fix #3286 - Fix duplicate tags

view details

w0rp

commit sha 0b7776633764ab4a3c25b73e8ef8a604bebdd638

Merge pull request #3010 from kevinoid/ps1-powershell Alias ps1 filetype to powershell

view details

push time in 6 days

push eventdavidtwco/ale

Kamil Grzywacz

commit sha e5e39a939a7007cfa4c9d922b41dc2bf5a4ec920

credo now recognizes umbrella projects Use ale#handlers#elixir#FindMixUmbrellaRoot to determine project root instead of ale#handlers#elixir#FindMixProjectRoot

view details

Eddie Lebow

commit sha 1997a8f7e22a930e3d47b61a7f9ab948d04f2b92

ShellDetect: fall back to filetype if no hashbang Some files lack a hashbang line but still have an unambiguous filetype. For example, the file `.zshrc` has the filetype `zsh`. Augment ale#handlers#sh#GetShellType to fall back to the filetype if no hashbang line can be found.

view details

Eddie Lebow

commit sha ece229c06f36efdc172ae6d70c73b72a16bb4cdf

shell: Make description more accurate The shell linter does more than just bash.

view details

Conrad Irwin

commit sha efe120ce9a9100129f1a811a659b0d7526cbf266

Fix prettier_standard to respect the configuration file Before this change, prettier_standard would run and ignore any .prettierrc, now it will respect the configuration of the file being linted. This change relies on prettier-standard 16.1.0 for the --stdin-filepath flag, but is backward compatible: older versions of prettier-standard will ignore the unknown flag and continue to run with no configuration file.

view details

patrick96

commit sha 1e9f870b74cee32af9eb9ea08a06bc997c78cb63

verilog: Add filename to vlog linter output

view details

davidsierradz

commit sha 0cea55924ba7780c1f17d17e8509160c77d1ab7c

allow passing custom options to markdownlint

view details

Joe Reynolds

commit sha 07080066e49d68910dccc19e4d95167300fb9422

Add sql-lint as linter

view details

Kevin Locke

commit sha 8c0b0f085f21d96216a337aa4fae027a3e391c99

Alias ps1 filetype to powershell Rather than requiring users to alias ps1 to powershell themselves, include it in s:default_ale_linter_aliases. Since [vim-ps1] is a popular (the only?) PowerShell ftplugin and there do not appear to be any other uses of ft=ps1 on vim.org, this seems like a safe and reasonable default. [vim-ps1]: http://www.vim.org/scripts/script.php?script_id=1327 Signed-off-by: Kevin Locke <kevin@kevinlocke.name>

view details

Horacio Sanson

commit sha c207d6a550916f4d34a41711c64024251466fea5

Fix 2816 - Standard fix does not work. The standard linter --fix fails if the file being input is not relative to the project root (https://github.com/standard/standard/issues/1384). This MR attempts to fix this by changing the command so the input file is relative to the project root and the output is to a temporary file. Preliminary tests with toy javascript projects seem to indicate this works fine.

view details

Alex Wang

commit sha fc6677d40565f4c84730a7cfb0af186f183be031

Avoid overriding parsed C/C++ -std=* flag ALE appends flags from {c,cpp}_{clang,gcc}_options after those found by parsing compile_commands.json or Makefile output. If -std=* flags are present in both the ALE flags and parsed flags, the last one present (i.e., ALE's -std=* flag) will determine the mode the compiler works in. This can result in errors showing up in vim but not in the actual build or vice-versa. For example, say you have foo.cpp: #include <type_traits> int main() { return std::is_same_v<float, int>; } If cpp_clang_options contains -std=c++17 and -std=c++14 is parsed from compile_commands.json, then ALE would end up running something like: clang++ -S -x c++ -fsyntax-only -std=c++14 -std=c++17 - < foo.cpp This would result in no errors showing up in Vim, but the actual build would fail with: <stdin>:3:14: error: no template named 'is_same_v' in namespace 'std'; did you mean 'is_same'? return std::is_same_v<float, int>; ~~~~~^~~~~~~~~ is_same /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/type_traits:872:61: note: 'is_same' declared here template <class _Tp, class _Up> struct _LIBCPP_TEMPLATE_VIS is_same : public false_type {}; ^ <stdin>:3:35: error: expected '(' for function-style cast or type construction return std::is_same_v<float, int>; ~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2 errors generated. as the actual build would not have the -std=c++17 flag added by ALE. If cpp_clang_options contains -std=c++14 and -std=c++17 is parsed from compile_commands.json, then the opposite problem would occur. ALE would end up running something like: clang++ -S -x c++ -fsyntax-only -std=c++17 -std=c++14 - < foo.cpp and would show an error on line 3 of foo.cpp: [clang] No template named 'is_same_v' in namespace 'std'; did you mean 'is_same'? (fix available) The actual build, on the other hand, would succeed without any complaints. Removing -std=* from ALE's flags if it is already present in the parsed flags ensures that the wrong -std=* flag is not used. An alternative would have been to switch the order in which parsed flags and ALE flags were concatenated when producing the command to execute, but that could prevent a user from intentionally using ALE's flags to override some other flags, e.g. -W* flags to enable/disable warnings in a project whose flags are not under the developer's control. -std=* flags are also present in cuda/nvcc.vim, objc/clang.vim, objcpp/clang.vim, and vhdl/ghdl.vim, but none of those linters appear to parse compile_commands.json or `make` output.

view details

John Gehrig

commit sha 1c6b9354a825a0dbab310077dd05666b8e081974

Issue 2598: Addtional ^M characters on Windows Windows may insert carriage return line endings, which ALE does not handle well. These characters should not be displayed. Adds a line to remove these characters for all messages.

view details

Tim Bedard

commit sha b800d24212d4c34b42dd388b8cab120b39893866

add stdin option for supported vint versions

view details

Klaas Pieter Annema

commit sha 2548763d04568823c4ef240f7f115adbb1dcfca2

Add Apple's swift-format as a linter

view details

James C. Davis

commit sha 15d590ee5e6779b6dad2640cdb55abc9d357bbe9

fix: don't append newline when buffer is noeol and nofixeol

view details

Stephen Robinson

commit sha b20931571484108d1ec29eaab5b731e754649664

Fixes #3092 - Implement loading `@file` c arguments

view details

Keith Maxwell

commit sha 53bfe418413746f582295a84ddf7a374ac84e154

vim/vint: show policy name So that I can find the relevant information in the vint linting policy summary and policies can be easily configured https://github.com/Vimjas/vint/wiki/Vint-linting-policy-summary Before this change an example warning message appears as: autocmd should execute in an augroup or execute with a group (see :help :autocmd) After this change the same example appears as: ProhibitAutocmdWithNoGroup - autocmd should execute in an augroup or execute with a group (see :help :autocmd)

view details

Horacio Sanson

commit sha c136061b3f4eeabbbe45ab25b75138aaec1f003d

Enable languagetool for asciidoctor files.

view details

Horacio Sanson

commit sha 8e6c7bff9aeeb445649843113b39ee3c79d4a909

Fix 1695 - Change rubocop fixer to use stdin (#3230) * Fix 1695 - Change rubocop fixer to use stdin * Update test_rubocop_fixer_callback.vader Co-authored-by: Horacio Sanson <horacio@allm.inc> Co-authored-by: w0rp <w0rp@users.noreply.github.com>

view details

w0rp

commit sha 979062235a23d2f2bbe176c64e649e9182826d2d

Fix #3286 - Fix duplicate tags

view details

w0rp

commit sha 0b7776633764ab4a3c25b73e8ef8a604bebdd638

Merge pull request #3010 from kevinoid/ps1-powershell Alias ps1 filetype to powershell

view details

push time in 6 days

pull request commentrust-lang/rust

Preserve doc-comments when generating queries

@bors r+

jyn514

comment created time in 7 days

PullRequestReviewEvent

pull request commentrust-lang/rust

Preserve doc-comments when generating queries

Ping @davidtwco - do you have time to take a look at this? It should be a pretty simple review.

Oh, I have no idea how I missed this, will definitely get to this today. Sorry!

jyn514

comment created time in 7 days

delete branch davidtwco/nixpkgs

delete branch : wootility-3.5.12

delete time in 7 days

Pull request review commentrust-lang/rust

Gracefully handle mistyping -> as => in function return type

+fn g() => usize { 0 }

I don't think either of these could be supported without hitting the same ambiguity as described in my other comment. Worth checking, but that's my expectation.

mibac138

comment created time in 7 days

PullRequestReviewEvent

PR opened rust-lang/rust

cg_llvm: split dwarf support

cc #34651

This PR adds initial support for Split DWARF to rustc, based on the implementation in Clang.

Current Status

This PR currently has functioning split-dwarf, albeit with some rough edges:

$ rustc -Cdebuginfo=2 -Zsplit-dwarf=split ./foo.rs
$ ls foo*
foo
foo.belfx9afw9cmv8.rcgu.dwo
foo.foo.7rcbfp3g-cgu.0.rcgu.dwo
foo.foo.7rcbfp3g-cgu.1.rcgu.dwo
foo.foo.7rcbfp3g-cgu.2.rcgu.dwo
foo.foo.7rcbfp3g-cgu.3.rcgu.dwo
foo.foo.7rcbfp3g-cgu.4.rcgu.dwo
foo.foo.7rcbfp3g-cgu.5.rcgu.dwo
foo.foo.7rcbfp3g-cgu.6.rcgu.dwo
foo.foo.7rcbfp3g-cgu.7.rcgu.dwo
foo.rs
$ readelf -wi foo
# ...
  Compilation Unit @ offset 0x90:
   Length:        0x2c (32-bit)
   Version:       4
   Abbrev Offset: 0x5b
   Pointer Size:  8
 <0><9b>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <9c>   DW_AT_stmt_list   : 0xe8
    <a0>   DW_AT_comp_dir    : (indirect string, offset: 0x13b): /home/david/Projects/rust/rust0
    <a4>   DW_AT_GNU_dwo_name: (indirect string, offset: 0x15b): foo.foo.7rcbfp3g-cgu.0.rcgu.dwo
    <a8>   DW_AT_GNU_dwo_id  : 0x357472a2b032d7b9
    <b0>   DW_AT_low_pc      : 0x0
    <b8>   DW_AT_ranges      : 0x40
    <bc>   DW_AT_GNU_addr_base: 0x0
# ...
To-Do

I've opened this PR as a draft to get feedback and work out how we'd expect rustc to work when Split DWARF is requested. It might be easier to read the PR commit-by-commit.

  • [ ] Add error when Split DWARF is requested on platforms where it doesn't make sense.
  • [ ] Determine whether or not there should be a single dwo output from rustc, or one per codegen-unit as exists currently.

r? @nagisa cc @michaelwoerister @eddyb @alexcrichton @rust-lang/wg-incr-comp

+186 -43

0 comment

11 changed files

pr created time in 7 days

push eventdavidtwco/rust

David Wood

commit sha 2538a2016d42a4b90991ce0bd1de481960f0f101

cg_llvm: implement split dwarf support This commit implements Split DWARF support, wiring up the flag (added in earlier commits) to the modified FFI wrapper (also from earlier commits). Signed-off-by: David Wood <david@davidtw.co>

view details

push time in 7 days

create barnchdavidtwco/rust

branch : issue-34651-split-dwarf

created branch time in 7 days

Pull request review commentrust-lang/rust

pretty.rs: Update Closure and Generator print

 pub trait PrettyPrinter<'tcx>:             }             ty::Str => p!(write("str")),             ty::Generator(did, substs, movability) => {+                p!(write("["));                 match movability {-                    hir::Movability::Movable => p!(write("[generator")),-                    hir::Movability::Static => p!(write("[static generator")),+                    hir::Movability::Movable => {}+                    hir::Movability::Static => p!(write("static ")),                 } -                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    let span = self.tcx().hir().span(hir_id);-                    p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";-                        }+                if !self.tcx().sess.verbose() {+                    p!(write("generator"));+                    // FIXME(eddyb) should use `def_span`.+                    if let Some(did) = did.as_local() {+                        let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);+                        let span = self.tcx().hir().span(hir_id);+                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));+                    } else {+                        p!(write("@{}", self.tcx().def_path_str(did)));                     }                 } else {-                    p!(write("@{}", self.tcx().def_path_str(did)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (index, upvar_ty) in upvar_tys.enumerate() {-                            p!(write("{}{}:", sep, index), print(upvar_ty));-                            sep = ", ";-                        }+                    p!(print_def_path(did, substs));++                    p!(write(" upvars_ty=("));+                    let mut uninferred_ty = substs+                        .as_closure()+                        .upvar_tys()+                        .filter(|ty| matches!(ty.kind(), ty::Infer(_)));+                    if matches!(uninferred_ty.next(), Some(_)) {

Closure printing appears to do the opposite to this - if there are any uninferred types then print "unavailable", is that intended?

arora-aman

comment created time in 8 days

Pull request review commentrust-lang/rust

pretty.rs: Update Closure and Generator print

 pub trait PrettyPrinter<'tcx>:             }             ty::Str => p!(write("str")),             ty::Generator(did, substs, movability) => {+                p!(write("["));                 match movability {-                    hir::Movability::Movable => p!(write("[generator")),-                    hir::Movability::Static => p!(write("[static generator")),+                    hir::Movability::Movable => {}+                    hir::Movability::Static => p!(write("static ")),                 } -                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    let span = self.tcx().hir().span(hir_id);-                    p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";-                        }+                if !self.tcx().sess.verbose() {+                    p!(write("generator"));+                    // FIXME(eddyb) should use `def_span`.

Out of curiosity, did you try using def_span here?

arora-aman

comment created time in 8 days

Pull request review commentrust-lang/rust

pretty.rs: Update Closure and Generator print

 pub trait PrettyPrinter<'tcx>:             }             ty::Str => p!(write("str")),             ty::Generator(did, substs, movability) => {+                p!(write("["));                 match movability {-                    hir::Movability::Movable => p!(write("[generator")),-                    hir::Movability::Static => p!(write("[static generator")),+                    hir::Movability::Movable => {}+                    hir::Movability::Static => p!(write("static ")),                 } -                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    let span = self.tcx().hir().span(hir_id);-                    p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";-                        }+                if !self.tcx().sess.verbose() {+                    p!(write("generator"));+                    // FIXME(eddyb) should use `def_span`.+                    if let Some(did) = did.as_local() {+                        let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);+                        let span = self.tcx().hir().span(hir_id);+                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));+                    } else {+                        p!(write("@{}", self.tcx().def_path_str(did)));                     }                 } else {-                    p!(write("@{}", self.tcx().def_path_str(did)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (index, upvar_ty) in upvar_tys.enumerate() {-                            p!(write("{}{}:", sep, index), print(upvar_ty));-                            sep = ", ";-                        }+                    p!(print_def_path(did, substs));++                    p!(write(" upvars_ty=("));+                    let mut uninferred_ty = substs+                        .as_closure()+                        .upvar_tys()+                        .filter(|ty| matches!(ty.kind(), ty::Infer(_)));+                    if matches!(uninferred_ty.next(), Some(_)) {+                        self = self.comma_sep(substs.as_generator().upvar_tys())?;+                    } else {+                        p!(write("unavailable"));                     }+                    p!(write(")"));                 }                  if substs.as_generator().is_valid() {                     p!(write(" "), print(substs.as_generator().witness()));                 } -                p!(write("]"))+                p!(write("]"));             }             ty::GeneratorWitness(types) => {                 p!(in_binder(&types));             }             ty::Closure(did, substs) => {-                p!(write("[closure"));--                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    if self.tcx().sess.opts.debugging_opts.span_free_formats {-                        p!(write("@"), print_def_path(did.to_def_id(), substs));-                    } else {-                        let span = self.tcx().hir().span(hir_id);-                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));-                    }--                    if substs.as_closure().is_valid() {-                        let upvar_tys = substs.as_closure().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";+                p!(write("["));+                if !self.tcx().sess.verbose() {

I'd still like to see the parent substitutions in verbose mode - it would be very helpful for working on polymorphization. Perhaps a -Z flag could be added for this since most people probably don't need to see those?

arora-aman

comment created time in 8 days

Pull request review commentrust-lang/rust

pretty.rs: Update Closure and Generator print

 pub trait PrettyPrinter<'tcx>:             }             ty::Str => p!(write("str")),             ty::Generator(did, substs, movability) => {+                p!(write("["));                 match movability {-                    hir::Movability::Movable => p!(write("[generator")),-                    hir::Movability::Static => p!(write("[static generator")),+                    hir::Movability::Movable => {}+                    hir::Movability::Static => p!(write("static ")),                 } -                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    let span = self.tcx().hir().span(hir_id);-                    p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";-                        }+                if !self.tcx().sess.verbose() {+                    p!(write("generator"));+                    // FIXME(eddyb) should use `def_span`.+                    if let Some(did) = did.as_local() {+                        let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);+                        let span = self.tcx().hir().span(hir_id);+                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));+                    } else {+                        p!(write("@{}", self.tcx().def_path_str(did)));                     }                 } else {-                    p!(write("@{}", self.tcx().def_path_str(did)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (index, upvar_ty) in upvar_tys.enumerate() {-                            p!(write("{}{}:", sep, index), print(upvar_ty));-                            sep = ", ";-                        }+                    p!(print_def_path(did, substs));++                    p!(write(" upvars_ty=("));+                    let mut uninferred_ty = substs+                        .as_closure()+                        .upvar_tys()+                        .filter(|ty| matches!(ty.kind(), ty::Infer(_)));+                    if matches!(uninferred_ty.next(), Some(_)) {+                        self = self.comma_sep(substs.as_generator().upvar_tys())?;+                    } else {+                        p!(write("unavailable"));                     }+                    p!(write(")"));                 }                  if substs.as_generator().is_valid() {                     p!(write(" "), print(substs.as_generator().witness()));                 } -                p!(write("]"))+                p!(write("]"));             }             ty::GeneratorWitness(types) => {                 p!(in_binder(&types));             }             ty::Closure(did, substs) => {-                p!(write("[closure"));--                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    if self.tcx().sess.opts.debugging_opts.span_free_formats {-                        p!(write("@"), print_def_path(did.to_def_id(), substs));-                    } else {-                        let span = self.tcx().hir().span(hir_id);-                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));-                    }--                    if substs.as_closure().is_valid() {-                        let upvar_tys = substs.as_closure().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";+                p!(write("["));+                if !self.tcx().sess.verbose() {+                    p!(write("closure"));+                    // FIXME(eddyb) should use `def_span`.+                    if let Some(did) = did.as_local() {+                        let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);+                        if self.tcx().sess.opts.debugging_opts.span_free_formats {+                            p!(write("@"), print_def_path(did.to_def_id(), substs));+                        } else {+                            let span = self.tcx().hir().span(hir_id);+                            p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));                         }+                    } else {+                        p!(write("@{}", self.tcx().def_path_str(did)));                     }                 } else {-                    p!(write("@{}", self.tcx().def_path_str(did)));-+                    p!(print_def_path(did, substs));                     if substs.as_closure().is_valid() {-                        let upvar_tys = substs.as_closure().upvar_tys();-                        let mut sep = " ";-                        for (index, upvar_ty) in upvar_tys.enumerate() {-                            p!(write("{}{}:", sep, index), print(upvar_ty));-                            sep = ", ";+                        // Search for the first inference variable+                        let mut uninferred_ty = substs+                            .as_closure()+                            .upvar_tys()+                            .filter(|ty| matches!(ty.kind(), ty::Infer(_)));
                            .filter(|ty| ty.is_ty_infer());
arora-aman

comment created time in 8 days

Pull request review commentrust-lang/rust

pretty.rs: Update Closure and Generator print

 pub trait PrettyPrinter<'tcx>:             }             ty::Str => p!(write("str")),             ty::Generator(did, substs, movability) => {+                p!(write("["));                 match movability {-                    hir::Movability::Movable => p!(write("[generator")),-                    hir::Movability::Static => p!(write("[static generator")),+                    hir::Movability::Movable => {}+                    hir::Movability::Static => p!(write("static ")),                 } -                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    let span = self.tcx().hir().span(hir_id);-                    p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";-                        }+                if !self.tcx().sess.verbose() {+                    p!(write("generator"));+                    // FIXME(eddyb) should use `def_span`.+                    if let Some(did) = did.as_local() {+                        let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);+                        let span = self.tcx().hir().span(hir_id);+                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));+                    } else {+                        p!(write("@{}", self.tcx().def_path_str(did)));                     }                 } else {-                    p!(write("@{}", self.tcx().def_path_str(did)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (index, upvar_ty) in upvar_tys.enumerate() {-                            p!(write("{}{}:", sep, index), print(upvar_ty));-                            sep = ", ";-                        }+                    p!(print_def_path(did, substs));++                    p!(write(" upvars_ty=("));+                    let mut uninferred_ty = substs+                        .as_closure()+                        .upvar_tys()+                        .filter(|ty| matches!(ty.kind(), ty::Infer(_)));
                        .filter(|ty| ty.is_ty_infer());
arora-aman

comment created time in 8 days

Pull request review commentrust-lang/rust

pretty.rs: Update Closure and Generator print

 pub trait PrettyPrinter<'tcx>:             }             ty::Str => p!(write("str")),             ty::Generator(did, substs, movability) => {+                p!(write("["));                 match movability {-                    hir::Movability::Movable => p!(write("[generator")),-                    hir::Movability::Static => p!(write("[static generator")),+                    hir::Movability::Movable => {}+                    hir::Movability::Static => p!(write("static ")),                 } -                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    let span = self.tcx().hir().span(hir_id);-                    p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";-                        }+                if !self.tcx().sess.verbose() {+                    p!(write("generator"));+                    // FIXME(eddyb) should use `def_span`.+                    if let Some(did) = did.as_local() {+                        let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);+                        let span = self.tcx().hir().span(hir_id);+                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));+                    } else {+                        p!(write("@{}", self.tcx().def_path_str(did)));                     }                 } else {-                    p!(write("@{}", self.tcx().def_path_str(did)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (index, upvar_ty) in upvar_tys.enumerate() {-                            p!(write("{}{}:", sep, index), print(upvar_ty));-                            sep = ", ";-                        }+                    p!(print_def_path(did, substs));++                    p!(write(" upvars_ty=("));+                    let mut uninferred_ty = substs+                        .as_closure()+                        .upvar_tys()+                        .filter(|ty| matches!(ty.kind(), ty::Infer(_)));+                    if matches!(uninferred_ty.next(), Some(_)) {+                        self = self.comma_sep(substs.as_generator().upvar_tys())?;+                    } else {+                        p!(write("unavailable"));                     }+                    p!(write(")"));                 }                  if substs.as_generator().is_valid() {                     p!(write(" "), print(substs.as_generator().witness()));                 } -                p!(write("]"))+                p!(write("]"));             }             ty::GeneratorWitness(types) => {                 p!(in_binder(&types));             }             ty::Closure(did, substs) => {-                p!(write("[closure"));--                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    if self.tcx().sess.opts.debugging_opts.span_free_formats {-                        p!(write("@"), print_def_path(did.to_def_id(), substs));-                    } else {-                        let span = self.tcx().hir().span(hir_id);-                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));-                    }--                    if substs.as_closure().is_valid() {-                        let upvar_tys = substs.as_closure().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";+                p!(write("["));+                if !self.tcx().sess.verbose() {+                    p!(write("closure"));+                    // FIXME(eddyb) should use `def_span`.+                    if let Some(did) = did.as_local() {+                        let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);+                        if self.tcx().sess.opts.debugging_opts.span_free_formats {+                            p!(write("@"), print_def_path(did.to_def_id(), substs));+                        } else {+                            let span = self.tcx().hir().span(hir_id);+                            p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));                         }+                    } else {+                        p!(write("@{}", self.tcx().def_path_str(did)));                     }                 } else {-                    p!(write("@{}", self.tcx().def_path_str(did)));-+                    p!(print_def_path(did, substs));                     if substs.as_closure().is_valid() {-                        let upvar_tys = substs.as_closure().upvar_tys();-                        let mut sep = " ";-                        for (index, upvar_ty) in upvar_tys.enumerate() {-                            p!(write("{}{}:", sep, index), print(upvar_ty));-                            sep = ", ";+                        // Search for the first inference variable+                        let mut uninferred_ty = substs+                            .as_closure()+                            .upvar_tys()+                            .filter(|ty| matches!(ty.kind(), ty::Infer(_)));+                        if matches!(uninferred_ty.next(), Some(_)) {
                        if uninferred_ty.next().is_some() {
arora-aman

comment created time in 8 days

Pull request review commentrust-lang/rust

pretty.rs: Update Closure and Generator print

 pub trait PrettyPrinter<'tcx>:             }             ty::Str => p!(write("str")),             ty::Generator(did, substs, movability) => {+                p!(write("["));                 match movability {-                    hir::Movability::Movable => p!(write("[generator")),-                    hir::Movability::Static => p!(write("[static generator")),+                    hir::Movability::Movable => {}+                    hir::Movability::Static => p!(write("static ")),                 } -                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    let span = self.tcx().hir().span(hir_id);-                    p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";-                        }+                if !self.tcx().sess.verbose() {+                    p!(write("generator"));+                    // FIXME(eddyb) should use `def_span`.+                    if let Some(did) = did.as_local() {+                        let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);+                        let span = self.tcx().hir().span(hir_id);+                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));+                    } else {+                        p!(write("@{}", self.tcx().def_path_str(did)));                     }                 } else {-                    p!(write("@{}", self.tcx().def_path_str(did)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (index, upvar_ty) in upvar_tys.enumerate() {-                            p!(write("{}{}:", sep, index), print(upvar_ty));-                            sep = ", ";-                        }+                    p!(print_def_path(did, substs));++                    p!(write(" upvars_ty=("));+                    let mut uninferred_ty = substs+                        .as_closure()+                        .upvar_tys()+                        .filter(|ty| matches!(ty.kind(), ty::Infer(_)));+                    if matches!(uninferred_ty.next(), Some(_)) {
                    if uninferred_ty.next().is_some() {
arora-aman

comment created time in 8 days

Pull request review commentrust-lang/rust

pretty.rs: Update Closure and Generator print

 pub trait PrettyPrinter<'tcx>:             }             ty::Str => p!(write("str")),             ty::Generator(did, substs, movability) => {+                p!(write("["));                 match movability {-                    hir::Movability::Movable => p!(write("[generator")),-                    hir::Movability::Static => p!(write("[static generator")),+                    hir::Movability::Movable => {}+                    hir::Movability::Static => p!(write("static ")),                 } -                // FIXME(eddyb) should use `def_span`.-                if let Some(did) = did.as_local() {-                    let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);-                    let span = self.tcx().hir().span(hir_id);-                    p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (&var_id, upvar_ty) in self-                            .tcx()-                            .upvars_mentioned(did)-                            .as_ref()-                            .iter()-                            .flat_map(|v| v.keys())-                            .zip(upvar_tys)-                        {-                            p!(write("{}{}:", sep, self.tcx().hir().name(var_id)), print(upvar_ty));-                            sep = ", ";-                        }+                if !self.tcx().sess.verbose() {+                    p!(write("generator"));+                    // FIXME(eddyb) should use `def_span`.+                    if let Some(did) = did.as_local() {+                        let hir_id = self.tcx().hir().local_def_id_to_hir_id(did);+                        let span = self.tcx().hir().span(hir_id);+                        p!(write("@{}", self.tcx().sess.source_map().span_to_string(span)));+                    } else {+                        p!(write("@{}", self.tcx().def_path_str(did)));                     }                 } else {-                    p!(write("@{}", self.tcx().def_path_str(did)));--                    if substs.as_generator().is_valid() {-                        let upvar_tys = substs.as_generator().upvar_tys();-                        let mut sep = " ";-                        for (index, upvar_ty) in upvar_tys.enumerate() {-                            p!(write("{}{}:", sep, index), print(upvar_ty));-                            sep = ", ";-                        }+                    p!(print_def_path(did, substs));++                    p!(write(" upvars_ty=("));+                    let mut uninferred_ty = substs+                        .as_closure()

You might have meant as_closure, but I wasn't expecting to see as_closure in the generator arm.

                        .as_generator()
arora-aman

comment created time in 8 days

PullRequestReviewEvent
PullRequestReviewEvent

push eventdavidtwco/rust

Ivan Tham

commit sha c5975e9b6c5781b3b7300b7921c14b060086e1c1

Reduce duplicate in liballoc reserve error handling

view details

Federico Ponzi

commit sha 28db5214d2c48e7a58cf79b9e272097260910a33

More implementations of Write for immutable refs Fixes #73836

view details

Guillaume Gomez

commit sha 69ffed763d1540c387db3b578848184026da0484

Add error explanation for E0755

view details

Tavian Barnes

commit sha a06edda3ad9abd4f07d07bbe46cb488efeebbbd0

Fix segfault if pthread_getattr_np fails glibc destroys[1] the passed pthread_attr_t if pthread_getattr_np() fails. Destroying it again leads to a segfault. Fix it by only destroying it on success for glibc. [1]: https://sourceware.org/git/?p=glibc.git;a=blob;f=nptl/pthread_getattr_np.c;h=ce437205e41dc05653e435f6188768cccdd91c99;hb=HEAD#l205

view details

Tavian Barnes

commit sha a684153f2920729f9fc3ea27ddb77d7cc3543214

Only call pthread_attr_destroy() after getattr_np() succeeds on all libcs The calling convention of pthread_getattr_np() is to initialize the pthread_attr_t, so _destroy() is only necessary on success (and _init() isn't necessary beforehand). On the other hand, FreeBSD wants the attr_t to be initialized before pthread_attr_get_np(), and therefore it should always be destroyed afterwards.

view details

Federico Ponzi

commit sha ec7f9b927f1896c7f29c602d6b0f961c891d0941

Deduplicates io::Write implementations

view details

Christiaan Dirkx

commit sha 8f27e3cb1b4140d9124d60df0850ef734e73b884

Make some methods of `Pin` unstable const Make the following methods unstable const under the `const_pin` feature: - `new` - `new_unchecked` - `into_inner` - `into_inner_unchecked` - `get_ref` - `into_ref` Also adds tests for these methods in a const context. Tracking issue: #76654

view details

Lzu Tao

commit sha eede953c283c7bbe903a0e8abb44c923baf5cfac

Only get ImplKind::Impl once

view details

Dylan MacKenzie

commit sha ed6c7efd87f17a7d9282f4bc7341cb5cbda8db4d

Use enum for status of non-const ops

view details

Dylan MacKenzie

commit sha c3607bd7dd323a898b8cc9d2c603dfd14172c73c

Use helper function for searching `allow_internal_unstable`

view details

Dylan MacKenzie

commit sha e4edc161f20ccbc77fffb7ceb60ebb6102cbd747

Give name to extra `Span` in `LiveDrop` error

view details

Dylan MacKenzie

commit sha 81b3b66487c7001a0dbadf7f9af41ad714702533

Error if an unstable const eval feature is used in a stable const fn

view details

Dylan MacKenzie

commit sha 1e1257b8f87d1e3073020df27765dc57fcf2c0cd

Bless `miri-unleashed` tests `const_mut_refs` doesn't actually work in a `const` or `static`

view details

Dylan MacKenzie

commit sha abc71677da866fd36c70790e768f36d2f809c493

Test that `const_precise_live_drops` can't be depended upon stably

view details

Mark Rousskov

commit sha 7e24136996fd412ba2890952d5f0ddffb3cb7370

Pass --target to lint docs Otherwise, we may not have a standard library built for the native "host" target of the rustc being run.

view details

Mark Rousskov

commit sha bd4e0af0b54afc91903c282740e25ee6135224c8

Build rustdoc for cross-compiled targets This isn't an issue for most folks who use x.py dist, which will directly depend on this. But for x.py build, if we don't properly set target here rustdoc will not be built. Currently, there is not a default-on step for generating a rustc for a given target either, so we will fail to build a rustc as well.

view details

Matthias Krüger

commit sha 026922ad60a9529f16b792e8c2fe805ab3906259

make replace_prefix only take &str as arguments https://github.com/rust-lang/rust/pull/76828#issuecomment-694078200

view details

Mark Rousskov

commit sha 363aff0a9d0b85285b7501cb04dd8263d29d273a

Add test for x.py build cross-compilation

view details

Christiaan Dirkx

commit sha e3c6e46168758642f0bab64da374f93ed21b1cd0

Make some methods of `Pin<&mut T>` unstable const Make the following methods unstable const under the `const_pin` feature: - `into_ref` - `get_mut` - `get_unchecked_mut`

view details

Bastian Kauschke

commit sha f7d5080ec3c21c5418649a1c5b3f830ff37734f1

don't take `TyCtxt` by reference

view details

push time in 9 days

PullRequestReviewEvent

Pull request review commentrust-lang/rust

Gracefully handle mistyping -> as => in function return type

 impl<'a> Parser<'a> {             // FIXME(Centril): Can we unconditionally `allow_plus`?             let ty = self.parse_ty_common(allow_plus, recover_qpath, AllowCVariadic::No)?;             FnRetTy::Ty(ty)+        } else if self.token == token::FatArrow {+            // Don't `eat` to prevent `=>` from being added as an expected token which isn't+            // actually expected and could only confuse users+            self.bump();+            self.struct_span_err(self.prev_token.span, "return types are denoted using `->`")

I'd suggest that you add a recover_fat_arrow argument and only perform this recovery when the caller requests it - in particular, where parse_ret_ty is used in parsing path segments, this recovery shouldn't happen.

I expect that this example, which currently compiles, would no longer parse with the change as it exists currently (but would with my prior suggestion):

fn bar(_: u32) {}

fn baz() -> *const dyn Fn(u32) { unimplemented!() }

fn foo() {
    match () {
        _ if baz() == &bar as &dyn Fn(u32) => (),
        () => (),
    }
}

Please add the above as a test too.

mibac138

comment created time in 9 days

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentrust-lang/rust

lint missing docs for extern items

@bors r+

lcnr

comment created time in 9 days

PullRequestReviewEvent

PR opened rust-lang/rust

passes: `check_attr` on more targets

This PR modifies check_attr so that:

  • Enum variants are now checked (some attributes would not have been prohibited on variants previously).
  • check_expr_attributes and check_stmt_attributes are removed as check_attributes can perform the same checks. This means that codegen attribute errors aren't shown if there are other errors first (e.g. from other attributes, as shown in src/test/ui/macros/issue-68060.rs changes below).
+48 -68

0 comment

4 changed files

pr created time in 9 days

push eventdavidtwco/rust

Ivan Tham

commit sha 2b7f87b5fa43336ed1237747f60fd9095a41ea3d

Liballoc tweak use *const T instead of *const i8 *const T is also used in the same parts and also used for arith_offset.

view details

Ivan Tham

commit sha cc0d6345500932e8118ba65e98944a6a3bac3277

Liballoc IntoIter limit unsafe to pointer arithmethic

view details

Ivan Tham

commit sha 50315238aa8ffae08f29b260aa36511e03b5e070

Liballoc DoubleEndedIterator limit unsafe to pointer arithmethic

view details

Marcel Hellwig

commit sha 73e27b3e18dcbbef3a36620c4a44306e2bbdcd13

deny(unsafe_op_in_unsafe_fn) in libstd/process.rs

view details

Marcel Hellwig

commit sha 00d537dcd03f9ff5ebdf8b86e039dbdb0a7f850c

deny(unsafe_op_in_unsafe_fn) in libstd/path.rs

view details

Tim Nielens

commit sha 2ecc2ac864739cff6aed2609021e2467dedb117a

unit-arg - improve suggestion

view details

Ivan Tham

commit sha a7468705cbf0fb551b8b1d8b420123262f7d92b2

Use translated variable for test string Test should be educative, added english translation and pronounciation.

view details

Yoshua Wuyts

commit sha 688f4471fd553c83ae3ff0306956d89b7d7c2d28

Stabilize future readiness fns

view details

Eduardo Broto

commit sha baf62e7a38854ff6a0039ddccb124ff329a32143

Update changelog to beta 1.47

view details

Tim Nielens

commit sha f3ccbef2af24d5d83f82f1fb50bd97a9b75e609f

unit-arg - pr comments

view details

Hirochika Matsumoto

commit sha 5574182b4d2d08c848a88a1ac5633fc194e0465e

Add a new lint to prevent `create_dir` from being used

view details

Hirochika Matsumoto

commit sha 607905d126c55422668007737c22d7a7a89c0d57

Add STD_FS_CREATE_DIR into paths

view details

Hirochika Matsumoto

commit sha 34e302e67c08c9b97d58d062ea83cc1fd860c56e

Fix clippy error

view details

Hirochika Matsumoto

commit sha eebd2483654456e332d7cf53218b56b9cbd6f2f5

Fix errors

view details

bors

commit sha c88c6149415dd47b5f05e69d7307e0a1967c33f2

Auto merge of #5970 - ebroto:changelog_beta_1_47, r=flip1995 Update changelog to beta 1.47 [Rendered](https://github.com/ebroto/rust-clippy/blob/changelog_beta_1_47/CHANGELOG.md) changelog: none

view details

flip1995

commit sha 282c59820b8e1d8c76f440484b81a190c576f91b

Merge commit '3d0b0e66afdfaa519d8855b338b35b4605775945' into clippyup

view details

Eduardo Broto

commit sha 7a66e6502dc3c7085b3f4078c01d4957d96175ed

or_fn_call: ignore nullary associated const fns

view details

Hirochika Matsumoto

commit sha 5b7590f841974255f74c64d573189aecc7a30b2e

Downgrade applicability of `create_dir`

view details

Ivan Tham

commit sha ba4c4988161abbe58e973b792c7e271785b4bc4d

Add more info for Vec Drain doc See its documentation for more

view details

Ivan Tham

commit sha 71484121001b69aefdc41fd7192b7095250517a7

Vec slice example fix style and show type elision

view details

push time in 9 days

create barnchdavidtwco/rust

branch : check-attr-variant-closure-expr

created branch time in 9 days

push eventdavidtwco/rust

Marcel Hellwig

commit sha 00d537dcd03f9ff5ebdf8b86e039dbdb0a7f850c

deny(unsafe_op_in_unsafe_fn) in libstd/path.rs

view details

David Wood

commit sha 0f2bd56b29857453835e47abbe96a80b175632d1

lint/ty: move fns to avoid abstraction violation This commit moves `transparent_newtype_field` and `is_zst` to `LateContext` where they are used, rather than being on the `VariantDef` and `TyS` types. Signed-off-by: David Wood <david@davidtw.co>

view details

CDirkx

commit sha 518f1ccb728aa03665e51710c12973a74cc98df5

Stabilize some Result methods as const Stabilize the following methods of `Result` as const: - `is_ok` - `is_err` - `as_ref` Possible because of stabilization of #49146 (Allow if and match in constants).

view details

Christiaan Dirkx

commit sha 787b2707a77fa1a98f512a4905662a1a16daf13c

Move const tests for `Result` to `library\core` Part of #76268

view details

Scott McMurray

commit sha 6092828d1f432bb313818e7cfab961c0e494f69e

Add `[T; N]: TryFrom<Vec<T>>` This is very similar to the existing `Box<[T; N]>: TryFrom<Box<[T]>>`, but allows avoiding the `shrink_to_fit` if you have a vector and not a boxed slice.

view details

David Wood

commit sha f8376b59d1391a5191a561c44067355f1a99c7c0

shim: monomorphic `FnPtrShim`s during construction This commit adjusts MIR shim construction so that substitutions are applied to function pointer shims during construction, rather than during codegen (as determined by `substs_for_mir_body`) - as substitutions will no longer occur during codegen, function pointer shims can now be polymorphic without incurring double substitutions. Signed-off-by: David Wood <david@davidtw.co>

view details

kadmin

commit sha 6cb671628393e292d5e68e6367f80488ace46532

Add test for checking if-let or-patterns

view details

scottmcm

commit sha 2c8a4c8f73e8b36e72b15e7f97ef29ad36c15e17

Nightly is currently 1.48

view details

Ivan Tham

commit sha 685f04220ee584f00f60e5ff9d7aca16351c5399

Clean up vec benches bench_in_place style

view details

Jens Reidel

commit sha 78097d96828c16a259fa9b5c2430e8d9ff1820b3

initial attempt to add aarch64-unknown-linux-musl to dist-linux-arm

view details

scottmcm

commit sha 3d89ee9586354e736cfe4a472d8aaa507d10f77c

Typo fix Thanks, Amanieu Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>

view details

Ralf Jung

commit sha caeb5544ecd9dba4d67b68b8c1b32d8132c6d5f2

do not inline black_box when building for Miri

view details

Ralf Jung

commit sha 4b5cd544d1268df8f95424a7dc77ce6c852bac56

use black_box instead of local optimziation barriers in const tests where possible

view details

Ralf Jung

commit sha 47668edb64ed1f8676cfcb4c9ccb6fe018f660c5

Separate feature flags Co-authored-by: Ivan Tham <pickfire@riseup.net>

view details

Ralf Jung

commit sha 284b16913aa6fccdf7b14edc3bb2693aadd39919

add missing feature flag

view details

Mara Bos

commit sha daa62d9081bfeeb0f438f88eb69082c227a5c221

Add as_str() and AsRef to string::Drain.

view details

Mara Bos

commit sha 673284058b53992cfd66c04b9db8e551a0dc9996

Show remaining data in string::Drain's Debug impl.

view details

Mara Bos

commit sha f5bb523e94b431c35b495b6ad6ae94495b653a5f

Add AsRef<[u8]> for String's Drain.

view details

Mara Bos

commit sha f2a32909e0649eb589406ddac63597ba34273c95

Mark AsRef impls for String's Drain as stable. Trait implementations effectively can't be #[unstable].

view details

Mara Bos

commit sha 829019d4043a6e9dd1305113f43b30fc8415893d

Disable AsRef implementations for String's Drain. Since trait implementations cannot be unstable, we should only add them when the as_str feature gets stabilized. Until then, only `.as_str()` is available (behind a feature gate).

view details

push time in 9 days

delete branch davidtwco/rust

delete branch : is-zst-abstraction-violation

delete time in 9 days

delete branch davidtwco/rust

delete branch : issue-69925-polymorphic-instancedef-fnptrshim

delete time in 9 days

push eventdavidtwco/veritas

David Wood

commit sha 38c200705ca9c73847f8f8fe3a384d88322d4f05

Update flake lockfile.

view details

David Wood

commit sha 068a65624a697d657547de3c17ee788dd9ae487d

Disable rust analyzer.

view details

push time in 10 days

pull request commentrust-lang/rust

Avoiding unnecesary allocations at rustc_errors

Thanks for the contribution!

@bors r+

botika

comment created time in 12 days

PullRequestReviewEvent

pull request commentrust-lang/rust

Avoiding unnecesary allocations at rustc_errors

Could you squash the last commit that changes code style?

botika

comment created time in 13 days

PullRequestReviewEvent

pull request commentrust-lang/rust

resolve: prohibit anon const non-static lifetimes

I removed the example from this comment from the test because it gives a very similar but still different ICE on CI and that causes it to fail - I wasn't able to work out why that was, even after rebasing locally.

One request: Right now, it's hard to tell from the test which parts cause an ICE and which parts compile on full. It might be good to split the test up into multiple tests into src/test/ui/const-generics/issues, but this is only a suggestion.

Given the above, I've kept a single test since the ICE is only produced from the cases that emit an error under min_const_generics and each ICE is the same.

davidtwco

comment created time in 15 days

push eventdavidtwco/rust

Marcel Hellwig

commit sha 73e27b3e18dcbbef3a36620c4a44306e2bbdcd13

deny(unsafe_op_in_unsafe_fn) in libstd/process.rs

view details

Ivan Tham

commit sha a7468705cbf0fb551b8b1d8b420123262f7d92b2

Use translated variable for test string Test should be educative, added english translation and pronounciation.

view details

Ivan Tham

commit sha ba4c4988161abbe58e973b792c7e271785b4bc4d

Add more info for Vec Drain doc See its documentation for more

view details

Ivan Tham

commit sha 71484121001b69aefdc41fd7192b7095250517a7

Vec slice example fix style and show type elision

view details

CDirkx

commit sha ea5dc0909ea1ed4135f1bdecbaa3423051be578d

Make some Ordering methods const Constify the following methods of `core::cmp::Ordering`: - `reverse` - `then` Stabilizes these methods as const under the `const_ordering` feature. Also adds a test for these methods in a const context. Possible because of #49146 (Allow `if` and `match` in constants).

view details

Howard Su

commit sha a80d39041e2d5cd58a846c9ef9e01ee9d691a7ed

Use inline(never) instead of cold inline(never) is better way to avoid optimizer to inline the function instead of cold.

view details

Jethro Beekman

commit sha 0b5e681f5af0d3989b49121969f09cf29f029263

Improve SGX RWLock initializer test

view details

Christiaan Dirkx

commit sha 79d563c819483eaf6e67b6aaaef9d0ca6030337d

Move const tests for `Ordering` to `library\core` Part of #76268

view details

Tomasz Miąsko

commit sha b54386ab7a9da8a4f22db3a35a9ec7b0f2b98b6c

Detect overflow in proc_macro_server subspan

view details

Tomasz Miąsko

commit sha d98bac4e4e3cc87ec9b848c173d570ebe2aa30b6

Add tests for overflow in Vec::drain

view details

Tomasz Miąsko

commit sha f8cfb2f5ad847b871399dfef9b8b8ff4e84a75cb

Add tests for overflow in String / VecDeque operations using ranges

view details

Ayush Kumar Mishra

commit sha 941dca8ed238a04a55741127165e9ad80671ed8a

Add Arith Tests in Library

view details

Ayush Kumar Mishra

commit sha dc37b553accd4fb2f8d0c59f69c701b524361cc2

Minor refactoring

view details

Ayush Kumar Mishra

commit sha 7d834c87d2ebb3d8dd4895bc5fabc4d44a1d2b52

Move Various str tests in library

view details

Michael Howell

commit sha d85db82960db80132a10d25e0fe7dfd5f4736d0f

Add documentation for `impl<T> From<T> for Poll<T>`

view details

Michael Howell

commit sha 8b0d0a0cadbaaf0e7f4114e289a71981872c8587

Add documentation for `impl<T> From<BinaryHeap<T>> for Vec<T>`

view details

Matthias Krüger

commit sha b4935e07269429e04abe0d6d25f7e3211f4fa3f6

use sort_unstable to sort primitive types It's not important to retain original order if we have &[1, 1, 2, 3] for example. clippy::stable_sort_primitive

view details

Aaron Hill

commit sha d18b4bb7a735add53cad717fd96ec5f4b89d752d

Note when a a move/borrow error is caused by a deref coercion Fixes #73268 When a deref coercion occurs, we may end up with a move error if the base value has been partially moved out of. However, we do not indicate anywhere that a deref coercion is occuring, resulting in an error message with a confusing span. This PR adds an explicit note to move errors when a deref coercion is involved. We mention the name of the type that the deref-coercion resolved to, as well as the `Deref::Target` associated type being used.

view details

Esteban Küber

commit sha 21f8326cec03848368e02936a032103aa24cf6d2

Provide suggestion for missing fields in patterns

view details

Esteban Küber

commit sha c8ee33714becbda0f1deddf1befe0383b4aad135

Use structured suggestion for `impl T` to `Box<dyn T>`

view details

push time in 15 days

push eventdavidtwco/rust

Marcel Hellwig

commit sha 73e27b3e18dcbbef3a36620c4a44306e2bbdcd13

deny(unsafe_op_in_unsafe_fn) in libstd/process.rs

view details

Ivan Tham

commit sha a7468705cbf0fb551b8b1d8b420123262f7d92b2

Use translated variable for test string Test should be educative, added english translation and pronounciation.

view details

Ivan Tham

commit sha ba4c4988161abbe58e973b792c7e271785b4bc4d

Add more info for Vec Drain doc See its documentation for more

view details

Ivan Tham

commit sha 71484121001b69aefdc41fd7192b7095250517a7

Vec slice example fix style and show type elision

view details

CDirkx

commit sha ea5dc0909ea1ed4135f1bdecbaa3423051be578d

Make some Ordering methods const Constify the following methods of `core::cmp::Ordering`: - `reverse` - `then` Stabilizes these methods as const under the `const_ordering` feature. Also adds a test for these methods in a const context. Possible because of #49146 (Allow `if` and `match` in constants).

view details

Howard Su

commit sha a80d39041e2d5cd58a846c9ef9e01ee9d691a7ed

Use inline(never) instead of cold inline(never) is better way to avoid optimizer to inline the function instead of cold.

view details

Jethro Beekman

commit sha 0b5e681f5af0d3989b49121969f09cf29f029263

Improve SGX RWLock initializer test

view details

Christiaan Dirkx

commit sha 79d563c819483eaf6e67b6aaaef9d0ca6030337d

Move const tests for `Ordering` to `library\core` Part of #76268

view details

Tomasz Miąsko

commit sha b54386ab7a9da8a4f22db3a35a9ec7b0f2b98b6c

Detect overflow in proc_macro_server subspan

view details

Tomasz Miąsko

commit sha d98bac4e4e3cc87ec9b848c173d570ebe2aa30b6

Add tests for overflow in Vec::drain

view details

Tomasz Miąsko

commit sha f8cfb2f5ad847b871399dfef9b8b8ff4e84a75cb

Add tests for overflow in String / VecDeque operations using ranges

view details

Ayush Kumar Mishra

commit sha 941dca8ed238a04a55741127165e9ad80671ed8a

Add Arith Tests in Library

view details

Ayush Kumar Mishra

commit sha dc37b553accd4fb2f8d0c59f69c701b524361cc2

Minor refactoring

view details

Ayush Kumar Mishra

commit sha 7d834c87d2ebb3d8dd4895bc5fabc4d44a1d2b52

Move Various str tests in library

view details

Michael Howell

commit sha d85db82960db80132a10d25e0fe7dfd5f4736d0f

Add documentation for `impl<T> From<T> for Poll<T>`

view details

Michael Howell

commit sha 8b0d0a0cadbaaf0e7f4114e289a71981872c8587

Add documentation for `impl<T> From<BinaryHeap<T>> for Vec<T>`

view details

Matthias Krüger

commit sha b4935e07269429e04abe0d6d25f7e3211f4fa3f6

use sort_unstable to sort primitive types It's not important to retain original order if we have &[1, 1, 2, 3] for example. clippy::stable_sort_primitive

view details

Aaron Hill

commit sha d18b4bb7a735add53cad717fd96ec5f4b89d752d

Note when a a move/borrow error is caused by a deref coercion Fixes #73268 When a deref coercion occurs, we may end up with a move error if the base value has been partially moved out of. However, we do not indicate anywhere that a deref coercion is occuring, resulting in an error message with a confusing span. This PR adds an explicit note to move errors when a deref coercion is involved. We mention the name of the type that the deref-coercion resolved to, as well as the `Deref::Target` associated type being used.

view details

Esteban Küber

commit sha 21f8326cec03848368e02936a032103aa24cf6d2

Provide suggestion for missing fields in patterns

view details

Esteban Küber

commit sha c8ee33714becbda0f1deddf1befe0383b4aad135

Use structured suggestion for `impl T` to `Box<dyn T>`

view details

push time in 15 days

Pull request review commentrust-lang/rust

resolve: prohibit anon const non-static lifetimes

 impl<'tcx> LifetimeContext<'_, 'tcx> {             _ => {}         }     }++    /// Non-static lifetimes are prohibited in anonymous constants under `min_const_generics` so+    /// this function will emit an error if `min_const_generics` is enabled, the body identified by+    /// `body_id` is a anonymous constant and `lifetime_ref` is non-static.+    crate fn maybe_emit_forbidden_non_static_lifetime_error(+        &self,+        body_id: hir::BodyId,+        lifetime_ref: &'tcx hir::Lifetime,+    ) {+        let is_anon_const = matches!(+            self.tcx.def_kind(self.tcx.hir().body_owner_def_id(body_id)),

Added this to the test.

davidtwco

comment created time in 15 days

PullRequestReviewEvent

Pull request review commentrust-lang/rust

resolve: prohibit anon const non-static lifetimes

 impl<'tcx> LifetimeContext<'_, 'tcx> {             _ => {}         }     }++    /// Non-static lifetimes are prohibited in anonymous constants under `min_const_generics` so+    /// this function will emit an error if `min_const_generics` is enabled, the body identified by+    /// `body_id` is a anonymous constant and `lifetime_ref` is non-static.

Fixed!

davidtwco

comment created time in 15 days

PullRequestReviewEvent

push eventdavidtwco/rust

David Wood

commit sha 129a7cb8f69693863dc88ccac8ab06da7a712a16

resolve: prohibit anon const non-static lifetimes This commit modifies name resolution to emit an error when non-static lifetimes are used in anonymous constants when the `min_const_generics` feature is enabled. Signed-off-by: David Wood <david@davidtw.co>

view details

push time in 15 days

Pull request review commentrust-lang/rust

resolve: prohibit anon const non-static lifetimes

 impl<'tcx> LifetimeContext<'_, 'tcx> {             _ => {}         }     }++    /// Non-static lifetimes are prohibited in anonymous constants under `min_const_generics` so+    /// this function will emit an error if `min_const_generics` is enabled, the body identified by+    /// `body_id` is a anonymous constant and `lifetime_ref` is non-static.+    crate fn maybe_emit_forbidden_non_static_lifetime_error(+        &self,+        body_id: hir::BodyId,+        lifetime_ref: &'tcx hir::Lifetime,+    ) {+        let is_anon_const = matches!(+            self.tcx.def_kind(self.tcx.hir().body_owner_def_id(body_id)),

This causes triggers the error with this patch and #![feature(min_const_generics)] and an ICE with this patch and #![feature(const_generics)]. It's a different ICE than before though:

thread 'rustc' panicked at 'escaping bound vars for WellFormed(&'a ())', /home/david/Projects/rust/rust8/compiler/rustc_middle/src/ty/mod.rs:1396:9
davidtwco

comment created time in 15 days

PullRequestReviewEvent

push eventdavidtwco/rust

David Wood

commit sha 7d3dac29ee92a670d178a6cdf54f3f3c95470bb1

resolve: prohibit anon const non-static lifetimes This commit modifies name resolution to emit an error when non-static lifetimes are used in anonymous constants when the `min_const_generics` feature is enabled. Signed-off-by: David Wood <david@davidtw.co>

view details

push time in 15 days

pull request commentrust-lang/rust

resolve: prohibit anon const non-static lifetimes

@lcnr I've updated the PR to implement this in name resolution (cc @petrochenkov), which did end up being much cleaner.

davidtwco

comment created time in 15 days

push eventdavidtwco/rust

David Wood

commit sha 4f7f0b07f57a24f0d10ddd188bdee9fe2ac7b8eb

resolve: prohibit anon const non-static lifetimes This commit modifies name resolution to emit an error when non-static lifetimes are used in anonymous constants when the `min_const_generics` feature is enabled. Signed-off-by: David Wood <david@davidtw.co>

view details

push time in 15 days

push eventdavidtwco/rust

David Wood

commit sha 8de6087ab7e54c2f9c45306a6355dc0d9ceba835

resolve: prohibit anon const non-static lifetimes This commit modifies name resolution to emit an error when non-static lifetimes are used in anonymous constants when the `min_const_generics` feature is enabled. Signed-off-by: David Wood <david@davidtw.co>

view details

push time in 15 days

pull request commentrust-lang/rust

passes: prohibit non-static lifetime in anon const

Pushed a change that makes the test check both min_const_generics and const_generics.

Does this PR break the following snippet which already compiles on stable? This restriction should only apply to anonymous constants, associated constants should not be affected here.

As you've noticed, it doesn't break that snippet and only applies to anonymous constants.

It might be easier to forbid these lifetimes during name resolution instead where we hopefully should be able to replace them with ty::ReStatic. I would expect this be a less invasive change which does not require us to change bug to a delay_span_bug.

I can give this approach a go if you'd prefer.

davidtwco

comment created time in 15 days

push eventdavidtwco/rust

David Wood

commit sha 5690e398638437c26fe6dd8affc9f6ca8b814305

passes: prohibit non-static lifetime in anon const This commit prohibits non-static lifetimes in anonymous constants when only the `min_const_generics` feature is enabled. To do so, `to_region_vid`'s `bug!` had to be changed into a delayed bug, which unfortunately required providing it a `TyCtxt`. Signed-off-by: David Wood <david@davidtw.co>

view details

push time in 15 days

Pull request review commentrust-lang/rust

passes: prohibit non-static lifetime in anon const

+#![feature(min_const_generics)]

Fixed!

davidtwco

comment created time in 15 days

PullRequestReviewEvent

PR opened rust-lang/rust

passes: prohibit non-static lifetime in anon const

Fixes #75323, fixes #74447 and fixes #73375.

This PR prohibits non-static lifetimes in anonymous constants when only the min_const_generics feature is enabled. To do so, to_region_vid's bug! had to be changed into a delayed bug, which unfortunately required providing it a TyCtxt.


While I am happy with how the implementation of the error turned out in rustc_passes::check_const, emitting an error wasn't sufficient to avoid hitting the ICE later. I also tried implementing the error in rustc_mir::transform::check_consts::validation and that worked, but it didn't silence the ICE either. To silence the ICE, I changed it to a delayed bug which worked but was more invasive that I would have liked, and required I return an incorrect lifetime. It's possible that this check should be implemented earlier in the compiler to make the invasive changes unnecessary, but I wasn't sure where that would be and wanted to get some feedback first.

cc @rust-lang/wg-const-eval r? @lcnr

+113 -33

0 comment

11 changed files

pr created time in 15 days

create barnchdavidtwco/rust

branch : issue-75323-non-static-lifetime-in-anonconst

created branch time in 16 days

pull request commentrust-lang/rust

Detect turbofish with multiple type params missing leading `::`

@bors r+

estebank

comment created time in 16 days

pull request commentrust-lang/rust

Detect blocks that could be struct expr bodies

@bors r+

estebank

comment created time in 16 days

pull request commentrust-lang/rust

Detect blocks that could be struct expr bodies

Oops, looks like I missed this after you addressed the comments - could you rebase @estebank?

estebank

comment created time in 16 days

pull request commentrust-lang/rust

Initial support for riscv32gc_unknown_linux_gnu

@rustbot ping risc-v

alistair23

comment created time in 16 days

push eventdavidtwco/rust

Lzu Tao

commit sha 7dd4582f95f0e07349cd34be0a5417280ce1d45b

Add ui test for 74672 and 76571 These tests will fall without the next commit.

view details

Lzu Tao

commit sha c743fc43420ff09a79cc23316e484631842556dc

Ignore rustc_private items from std docs Apply suggestions from code review Co-authored-by: Joshua Nelson <joshua@yottadb.com>

view details

bors

commit sha 356d8ad1a310a2265e05d5c193d41704030d70d3

Auto merge of #76571 - lzutao:rustdoc-private-traits, r=jyn514 Ignore rustc_private items from std docs By ignoring rustc_private items for non local impl block, this may fix #74672 and fix #75588 . This might suppress #76529 if it is simple enough for backport.

view details

Guillaume Gomez

commit sha d069c7e928ab2ac95e3f524ea4d56de518aa2329

Stabilize doc_alias feature

view details

bors

commit sha 57c5f40cf4d7685538f6e3a405612f939e0a5e47

Auto merge of #75740 - GuillaumeGomez:stabilize-doc-alias-feature, r=ollie27 Stabilize doc_alias feature Fixes #50146. This PR intend to stabilize the `doc_alias` feature. The last remaining bits were missing checks on the attribute usage and on its arguments. Both have been added so I think we can now move to the next step. r? `@ollie27` cc `@rust-lang/rustdoc`

view details

push time in 16 days

PR opened rust-lang/rust

diag: improve closure/generic parameter mismatch

This PR improves the diagnostic when a type parameter is expected and a closure is found, noting that each closure has a distinct type and therefore could not always match the caller-chosen type of the parameter.

r? @estebank

+37 -5

0 comment

4 changed files

pr created time in 16 days

create barnchdavidtwco/rust

branch : issue-51154-param-closure

created branch time in 16 days

pull request commentrust-lang/rust

use sort_unstable to sort primitive types

---- workspaces::relative_rustc stdout ----
running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/release/cargo build`
running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/release/cargo build`
thread 'workspaces::relative_rustc' panicked at '
Expected: execs
    but: exited with exit code: 101
--- stdout

--- stderr
error: could not execute process `/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/cit/t1927/lib/./foo -vV` (never executed)

Caused by:
  Text file busy (os error 26)
', src/tools/cargo/crates/cargo-test-support/src/lib.rs:832:13
matthiaskrgr

comment created time in 17 days

push eventdavidtwco/rust

Ivan Tham

commit sha 2b7f87b5fa43336ed1237747f60fd9095a41ea3d

Liballoc tweak use *const T instead of *const i8 *const T is also used in the same parts and also used for arith_offset.

view details

Ivan Tham

commit sha cc0d6345500932e8118ba65e98944a6a3bac3277

Liballoc IntoIter limit unsafe to pointer arithmethic

view details

Ivan Tham

commit sha 50315238aa8ffae08f29b260aa36511e03b5e070

Liballoc DoubleEndedIterator limit unsafe to pointer arithmethic

view details

Tim Nielens

commit sha 2ecc2ac864739cff6aed2609021e2467dedb117a

unit-arg - improve suggestion

view details

Yoshua Wuyts

commit sha 688f4471fd553c83ae3ff0306956d89b7d7c2d28

Stabilize future readiness fns

view details

Eduardo Broto

commit sha baf62e7a38854ff6a0039ddccb124ff329a32143

Update changelog to beta 1.47

view details

Tim Nielens

commit sha f3ccbef2af24d5d83f82f1fb50bd97a9b75e609f

unit-arg - pr comments

view details

Hirochika Matsumoto

commit sha 5574182b4d2d08c848a88a1ac5633fc194e0465e

Add a new lint to prevent `create_dir` from being used

view details

Hirochika Matsumoto

commit sha 607905d126c55422668007737c22d7a7a89c0d57

Add STD_FS_CREATE_DIR into paths

view details

Hirochika Matsumoto

commit sha 34e302e67c08c9b97d58d062ea83cc1fd860c56e

Fix clippy error

view details

Hirochika Matsumoto

commit sha eebd2483654456e332d7cf53218b56b9cbd6f2f5

Fix errors

view details

bors

commit sha c88c6149415dd47b5f05e69d7307e0a1967c33f2

Auto merge of #5970 - ebroto:changelog_beta_1_47, r=flip1995 Update changelog to beta 1.47 [Rendered](https://github.com/ebroto/rust-clippy/blob/changelog_beta_1_47/CHANGELOG.md) changelog: none

view details

flip1995

commit sha 282c59820b8e1d8c76f440484b81a190c576f91b

Merge commit '3d0b0e66afdfaa519d8855b338b35b4605775945' into clippyup

view details

Eduardo Broto

commit sha 7a66e6502dc3c7085b3f4078c01d4957d96175ed

or_fn_call: ignore nullary associated const fns

view details

Hirochika Matsumoto

commit sha 5b7590f841974255f74c64d573189aecc7a30b2e

Downgrade applicability of `create_dir`

view details

Kyle Huey

commit sha 4972989b616cbf96c015cd9fdf1f4b4464ecaace

Add a lint for an async block/closure that yields a type that is itself awaitable. This catches bugs of the form tokio::spawn(async move { let f = some_async_thing(); f // Oh no I forgot to await f so that work will never complete. });

view details

Kyle Huey

commit sha c1d2b9376a6bb4fc06f845e12b9c2a93079bb2ee

Add a test for an async function.

view details

Kyle Huey

commit sha 04912ca115ff153a97d80b604435b10dcb155dd0

Formatting changes requested by ThibsG.

view details

Dylan MacKenzie

commit sha 1c5b0fbe53f842cd5871ea02e4e48571615d5679

Update dataflow analyses to use new interface

view details

Camelid

commit sha 17b2ba5ded12f59dba63ece659b5cd714b763800

Syntax-highlight `single_char_push_str` lint

view details

push time in 17 days

pull request commentrust-lang/rust

use sort_unstable to sort primitive types

This is one unlucky PR.. @bors retry

matthiaskrgr

comment created time in 17 days

delete branch davidtwco/rust

delete branch : issue-76077-inaccessible-private-fields

delete time in 17 days

pull request commentrust-lang/rust

Introduce a PartitioningCx struct

r? @davidtwco @bors r+

wesleywiser

comment created time in 17 days

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
more