@davidtwco does exercises from the C Programming Language, Second Edition by Brian Kernighan and Dennis Ritchie.
@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.
Actix web framework - fork with minor changes for use with Autokrator project.
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 application for Team Project 3 course at the University of Glasgow.
Full financial platform orchestration and management for use in presenting demos.
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.
comment created time in an hour
pull request commentrust-lang/rust
SipHasher128: fix platform-independence confusion
r? @nagisa
comment created time in a day
PR opened rust-lang/rust
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
pr created time in a day
push eventdavidtwco/rust
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 <[email protected]>
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
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 <[email protected]>
commit sha 8aae1eee94f481bd955cff473deae1f03c313451
Move cell exterior test into library unit tests
commit sha f69c5aa428efdbc01685c3d06e63fedd3120e8e5
Move more tests using Cell to unit tests
commit sha af44a2a857618150b180dabe9c3383a3911b3640
move 'cell does not clone' test
commit sha fc152cd67e0b6d3f11f49eae43183d03a3b8bf17
move 'test zip ...' tests
commit sha 85b2d9bf6f2b04ae8996050b2fb276bd58cd92de
fmt
commit sha 949c96660c32ff9b19a639b4be607938c2262653
move format! interface tests
commit sha ed52c7bb7516f12f74704e20457d5046378a49fc
Move deref-lval test
commit sha ac39debeba2b63a39a3833e2d7451f0b1f95b5f2
Move panic safety traits tests
commit sha 8904921c1d6b3636f4352f9dd6d4875132b89998
Move array cycle test
commit sha 275eed7eb1d45e8173b932e2abfdae2201d2cf62
Move vec-slice-drop test
commit sha 6bc0357dadd9d41a8166d4c2ab8a27c0bb8150d3
Move vec-cycle test
commit sha f6a4189d05f8bc7091450289f7285819ebdd3c62
Move vec-cycle-wrapped test
commit sha 5be843fc54f80817c88438efa097a4ba81d4aa9e
Move format-ref-cell test
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.
commit sha ea0065ad4f96153539476e2f3df83bae96018ede
Reposition iterator doc alias reduce before inline
commit sha a61b9638bbbb48f9c2fde0ccbbcf03e64494ea0f
review: fix nits and move panic safety tests to the correct place
commit sha ef83742b2bf9cb26c54576dad76418d872b52a99
Delay bug for non-universal regions in member constraints
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.
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`.
push time in 2 days
pull request commentrust-lang/rust
move candidate_from_obligation_no_cache
@bors r+
comment created time in 2 days
push eventdavidtwco/rust
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.
commit sha f5118a525fcf9db4102d903650331039158eff11
Clarify and add guarantee about `transmute`.
commit sha 83f47aa11bd664ed8a15ef9833063833b7b3e71c
Be clear about the reverse `transmute` guarantees.
commit sha f3d7196caec3f54e572c7389b1cef9fd9e62c1ed
Be clearer about Some/None transmute.
commit sha 8cb8955d570c76631840bfc98825ca49c0dd8eea
Change notation. Co-authored-by: Ralf Jung <[email protected]>
commit sha 55802e3bf3bf6d1db5c76aea581a7912bd752890
Add Rust function pointers. Co-authored-by: Ralf Jung <[email protected]>
commit sha 68209c3fe4e0f5c3758f18e98efc175af31c2e51
Rename the types for clarity.
commit sha 9bac5774d7b452b2227c9fb77a4c6de3f432ee55
Grammar tweak.
commit sha be3d8e5d6cc6833963c00404ec48a7f8f4a0c606
Add missing code examples on HashMap types
commit sha a13239dac2b4b50e389a3e12c638d164e620ea2f
generic ret hardening test
commit sha cd31f40b6f59c8966a09e7f1e2d6c3c5ed1570f1
generic load hardening test
commit sha a7a20860537ddd05f802598866681a6f9cc3413c
Stability annotations on generic trait parameters
commit sha a9d6da576bbc4b80337c14cb3d0fcb2967a934f4
ignore-tidy-linelength generic default stab test Co-authored-by: Tim Diekmann <[email protected]>
commit sha 8b81a17d7353a75e4b2d29f96c2c0c8fb1713fec
Uncomment struct tests
commit sha 88b77b6534d5353a16e597451a22322cc7d92063
Comment out broken tests
commit sha eb7abb9e32a2ba10d0c083b13bb1a2dcd1d22b5d
Unstable default types leak in public fields
commit sha cb7264b22a45b993df57bd17e869a472a5c12b47
Fix tests
commit sha f665ccd3a2f5e58c6ac3828e34f5c8e94f71811c
Add more tests
commit sha a1892f1a798f8b0c24136d0be65fa4cc23e0ff74
Test stability on default parameter of deprecated
commit sha 3947591ee82702f124af9248463036155b83b907
Remove now unneeded check_stability argument
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
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.
commit sha f5118a525fcf9db4102d903650331039158eff11
Clarify and add guarantee about `transmute`.
commit sha 83f47aa11bd664ed8a15ef9833063833b7b3e71c
Be clear about the reverse `transmute` guarantees.
commit sha f3d7196caec3f54e572c7389b1cef9fd9e62c1ed
Be clearer about Some/None transmute.
commit sha 8cb8955d570c76631840bfc98825ca49c0dd8eea
Change notation. Co-authored-by: Ralf Jung <[email protected]>
commit sha 55802e3bf3bf6d1db5c76aea581a7912bd752890
Add Rust function pointers. Co-authored-by: Ralf Jung <[email protected]>
commit sha 68209c3fe4e0f5c3758f18e98efc175af31c2e51
Rename the types for clarity.
commit sha 9bac5774d7b452b2227c9fb77a4c6de3f432ee55
Grammar tweak.
commit sha be3d8e5d6cc6833963c00404ec48a7f8f4a0c606
Add missing code examples on HashMap types
commit sha a13239dac2b4b50e389a3e12c638d164e620ea2f
generic ret hardening test
commit sha cd31f40b6f59c8966a09e7f1e2d6c3c5ed1570f1
generic load hardening test
commit sha a7a20860537ddd05f802598866681a6f9cc3413c
Stability annotations on generic trait parameters
commit sha a9d6da576bbc4b80337c14cb3d0fcb2967a934f4
ignore-tidy-linelength generic default stab test Co-authored-by: Tim Diekmann <[email protected]>
commit sha 8b81a17d7353a75e4b2d29f96c2c0c8fb1713fec
Uncomment struct tests
commit sha 88b77b6534d5353a16e597451a22322cc7d92063
Comment out broken tests
commit sha eb7abb9e32a2ba10d0c083b13bb1a2dcd1d22b5d
Unstable default types leak in public fields
commit sha cb7264b22a45b993df57bd17e869a472a5c12b47
Fix tests
commit sha f665ccd3a2f5e58c6ac3828e34f5c8e94f71811c
Add more tests
commit sha a1892f1a798f8b0c24136d0be65fa4cc23e0ff74
Test stability on default parameter of deprecated
commit sha 3947591ee82702f124af9248463036155b83b907
Remove now unneeded check_stability argument
push time in 3 days
pull request commentrust-lang/rust
Compute underlying type of impl trait types later in compilation
@bors r+
comment created time in 3 days
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.
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!
comment created time in 4 days
push eventdavidtwco/rust
commit sha c5975e9b6c5781b3b7300b7921c14b060086e1c1
Reduce duplicate in liballoc reserve error handling
commit sha 459969f88ff95c94b7b34043a7f0e13de91de4f8
added restriction lint that prohibits the usage of unimplemented, unreachable or panic in a function of type result or option
commit sha ceab1a9167655eba9f9556f8766f8702e49dfef3
removed unnecessary comment
commit sha 8462cce96081b87eba7a5bc89130a1a09fe1f6d0
edited documentation
commit sha b2d8ca9a766703469178ea37d4d46067bb6fa926
ran cargo dev update lints
commit sha b006522393a3c3c2656e1ccdfbb0076ff1bd7e99
added lint for todo and removed option
commit sha a424a2c1676a29c147252873037e8943d54941d3
changed check_impl_item to check_fn and added a few more test cases
commit sha 73a3288282e733bfc5893e9920d29f1de5a21591
uncommented fn
commit sha 27c90b881df93b53fd3f24dcbfed116379c2fc69
initial implementation of OpenOptions to c_int
commit sha eb3906be4ad375cc6b83cd6a6e0116817db22575
Fix typo get openoptions function name Co-authored-by: Ivan Tham <[email protected]>
commit sha d3b9ece4c0028ff7e36e34df2d2b26366f9c0648
add tests related to tuple scalar layout with ZST in last field
commit sha e5d85f917b8965a5e62513c17cbb887366b152bc
allow reordering of the last field of a MaybeUnsized struct if it's a ZST
commit sha e9bc3ddb073f2261ac46832d985efe8db863ed6a
test that we do not change the offset of ZST tuple fields when unsizing
commit sha 68217c9e0f1269d29b4c1c72d08fb1b95bf441cd
ignore zst offsets instead
commit sha 6fc1d8bc13124bb134d7ab54e56237821a55912e
add codegen test
commit sha 24e0913e37cc6fc363b37d13bf519db212f175a2
handle vector layout
commit sha 1bc0627607262cc60a7692b16e205f30fc88b89f
Add as_flag function to the OpenOptionsExt struct
commit sha 2c9e27b759a9e9feeb943fb855e32d7383d1dcc6
Merge branch 'convert-openoptions-cint' of github.com:FedericoPonzi/rust into convert-openoptions-cint
commit sha f9fcbbea03edb735c22311522b55d7b854bd6ac0
fixed bug
commit sha 7c1e5c1dcd25c945f619eda289f639dbe2b002da
Update OpenOptions::as_flags docs, and minor styling
push time in 4 days
push eventdavidtwco/rust
commit sha 459969f88ff95c94b7b34043a7f0e13de91de4f8
added restriction lint that prohibits the usage of unimplemented, unreachable or panic in a function of type result or option
commit sha ceab1a9167655eba9f9556f8766f8702e49dfef3
removed unnecessary comment
commit sha 8462cce96081b87eba7a5bc89130a1a09fe1f6d0
edited documentation
commit sha b2d8ca9a766703469178ea37d4d46067bb6fa926
ran cargo dev update lints
commit sha b006522393a3c3c2656e1ccdfbb0076ff1bd7e99
added lint for todo and removed option
commit sha a424a2c1676a29c147252873037e8943d54941d3
changed check_impl_item to check_fn and added a few more test cases
commit sha 73a3288282e733bfc5893e9920d29f1de5a21591
uncommented fn
commit sha 27c90b881df93b53fd3f24dcbfed116379c2fc69
initial implementation of OpenOptions to c_int
commit sha eb3906be4ad375cc6b83cd6a6e0116817db22575
Fix typo get openoptions function name Co-authored-by: Ivan Tham <[email protected]>
commit sha d3b9ece4c0028ff7e36e34df2d2b26366f9c0648
add tests related to tuple scalar layout with ZST in last field
commit sha e5d85f917b8965a5e62513c17cbb887366b152bc
allow reordering of the last field of a MaybeUnsized struct if it's a ZST
commit sha e9bc3ddb073f2261ac46832d985efe8db863ed6a
test that we do not change the offset of ZST tuple fields when unsizing
commit sha 68217c9e0f1269d29b4c1c72d08fb1b95bf441cd
ignore zst offsets instead
commit sha 6fc1d8bc13124bb134d7ab54e56237821a55912e
add codegen test
commit sha 24e0913e37cc6fc363b37d13bf519db212f175a2
handle vector layout
commit sha 1bc0627607262cc60a7692b16e205f30fc88b89f
Add as_flag function to the OpenOptionsExt struct
commit sha 2c9e27b759a9e9feeb943fb855e32d7383d1dcc6
Merge branch 'convert-openoptions-cint' of github.com:FedericoPonzi/rust into convert-openoptions-cint
commit sha f9fcbbea03edb735c22311522b55d7b854bd6ac0
fixed bug
commit sha 7c1e5c1dcd25c945f619eda289f639dbe2b002da
Update OpenOptions::as_flags docs, and minor styling
commit sha e49a29933be3bd988ccb75b053f480d9c99a7ff5
Working map_err_ignore lint
push time in 4 days
pull request commentrust-lang/rust
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.
comment created time in 4 days
pull request commentrust-lang/rust
Check for missing const-stability attributes in `rustc_passes`
r? @oli-obk
comment created time in 4 days
pull request commentrust-lang/rust
Point at named argument not found when using `format_args_capture` instead of whole format string
@bors r+
comment created time in 5 days
push eventdavidtwco/ale
commit sha e5e39a939a7007cfa4c9d922b41dc2bf5a4ec920
credo now recognizes umbrella projects Use ale#handlers#elixir#FindMixUmbrellaRoot to determine project root instead of ale#handlers#elixir#FindMixProjectRoot
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.
commit sha ece229c06f36efdc172ae6d70c73b72a16bb4cdf
shell: Make description more accurate The shell linter does more than just bash.
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.
commit sha 1e9f870b74cee32af9eb9ea08a06bc997c78cb63
verilog: Add filename to vlog linter output
commit sha 0cea55924ba7780c1f17d17e8509160c77d1ab7c
allow passing custom options to markdownlint
commit sha 07080066e49d68910dccc19e4d95167300fb9422
Add sql-lint as linter
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 <[email protected]>
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.
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.
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.
commit sha b800d24212d4c34b42dd388b8cab120b39893866
add stdin option for supported vint versions
commit sha 2548763d04568823c4ef240f7f115adbb1dcfca2
Add Apple's swift-format as a linter
commit sha 15d590ee5e6779b6dad2640cdb55abc9d357bbe9
fix: don't append newline when buffer is noeol and nofixeol
commit sha b20931571484108d1ec29eaab5b731e754649664
Fixes #3092 - Implement loading `@file` c arguments
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)
commit sha c136061b3f4eeabbbe45ab25b75138aaec1f003d
Enable languagetool for asciidoctor files.
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 <[email protected]> Co-authored-by: w0rp <[email protected]>
commit sha 979062235a23d2f2bbe176c64e649e9182826d2d
Fix #3286 - Fix duplicate tags
commit sha 0b7776633764ab4a3c25b73e8ef8a604bebdd638
Merge pull request #3010 from kevinoid/ps1-powershell Alias ps1 filetype to powershell
push time in 6 days
push eventdavidtwco/ale
commit sha e5e39a939a7007cfa4c9d922b41dc2bf5a4ec920
credo now recognizes umbrella projects Use ale#handlers#elixir#FindMixUmbrellaRoot to determine project root instead of ale#handlers#elixir#FindMixProjectRoot
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.
commit sha ece229c06f36efdc172ae6d70c73b72a16bb4cdf
shell: Make description more accurate The shell linter does more than just bash.
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.
commit sha 1e9f870b74cee32af9eb9ea08a06bc997c78cb63
verilog: Add filename to vlog linter output
commit sha 0cea55924ba7780c1f17d17e8509160c77d1ab7c
allow passing custom options to markdownlint
commit sha 07080066e49d68910dccc19e4d95167300fb9422
Add sql-lint as linter
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 <[email protected]>
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.
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.
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.
commit sha b800d24212d4c34b42dd388b8cab120b39893866
add stdin option for supported vint versions
commit sha 2548763d04568823c4ef240f7f115adbb1dcfca2
Add Apple's swift-format as a linter
commit sha 15d590ee5e6779b6dad2640cdb55abc9d357bbe9
fix: don't append newline when buffer is noeol and nofixeol
commit sha b20931571484108d1ec29eaab5b731e754649664
Fixes #3092 - Implement loading `@file` c arguments
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)
commit sha c136061b3f4eeabbbe45ab25b75138aaec1f003d
Enable languagetool for asciidoctor files.
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 <[email protected]> Co-authored-by: w0rp <[email protected]>
commit sha 979062235a23d2f2bbe176c64e649e9182826d2d
Fix #3286 - Fix duplicate tags
commit sha 0b7776633764ab4a3c25b73e8ef8a604bebdd638
Merge pull request #3010 from kevinoid/ps1-powershell Alias ps1 filetype to powershell
push time in 6 days
pull request commentrust-lang/rust
Preserve doc-comments when generating queries
@bors r+
comment created time in 7 days
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!
comment created 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.
comment created time in 7 days
PR opened rust-lang/rust
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
dwooutput from rustc, or one per codegen-unit as exists currently.
r? @nagisa cc @michaelwoerister @eddyb @alexcrichton @rust-lang/wg-incr-comp
pr created time in 7 days
push eventdavidtwco/rust
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 <[email protected]>
push 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?
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?
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?
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());
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());
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() {
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() {
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()
comment created time in 8 days
push eventdavidtwco/rust
commit sha c5975e9b6c5781b3b7300b7921c14b060086e1c1
Reduce duplicate in liballoc reserve error handling
commit sha 28db5214d2c48e7a58cf79b9e272097260910a33
More implementations of Write for immutable refs Fixes #73836
commit sha 69ffed763d1540c387db3b578848184026da0484
Add error explanation for E0755
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
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.
commit sha ec7f9b927f1896c7f29c602d6b0f961c891d0941
Deduplicates io::Write implementations
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
commit sha eede953c283c7bbe903a0e8abb44c923baf5cfac
Only get ImplKind::Impl once
commit sha ed6c7efd87f17a7d9282f4bc7341cb5cbda8db4d
Use enum for status of non-const ops
commit sha c3607bd7dd323a898b8cc9d2c603dfd14172c73c
Use helper function for searching `allow_internal_unstable`
commit sha e4edc161f20ccbc77fffb7ceb60ebb6102cbd747
Give name to extra `Span` in `LiveDrop` error
commit sha 81b3b66487c7001a0dbadf7f9af41ad714702533
Error if an unstable const eval feature is used in a stable const fn
commit sha 1e1257b8f87d1e3073020df27765dc57fcf2c0cd
Bless `miri-unleashed` tests `const_mut_refs` doesn't actually work in a `const` or `static`
commit sha abc71677da866fd36c70790e768f36d2f809c493
Test that `const_precise_live_drops` can't be depended upon stably
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.
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.
commit sha 026922ad60a9529f16b792e8c2fe805ab3906259
make replace_prefix only take &str as arguments https://github.com/rust-lang/rust/pull/76828#issuecomment-694078200
commit sha 363aff0a9d0b85285b7501cb04dd8263d29d273a
Add test for x.py build cross-compilation
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`
commit sha f7d5080ec3c21c5418649a1c5b3f830ff37734f1
don't take `TyCtxt` by reference
push time in 9 days
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.
comment created time in 9 days
pull request commentrust-lang/rust
lint missing docs for extern items
@bors r+
comment created time in 9 days
PR opened rust-lang/rust
This PR modifies check_attr so that:
- Enum variants are now checked (some attributes would not have been prohibited on variants previously).
check_expr_attributesandcheck_stmt_attributesare removed ascheck_attributescan 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 insrc/test/ui/macros/issue-68060.rschanges below).
pr created time in 9 days
push eventdavidtwco/rust
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.
commit sha cc0d6345500932e8118ba65e98944a6a3bac3277
Liballoc IntoIter limit unsafe to pointer arithmethic
commit sha 50315238aa8ffae08f29b260aa36511e03b5e070
Liballoc DoubleEndedIterator limit unsafe to pointer arithmethic
commit sha 73e27b3e18dcbbef3a36620c4a44306e2bbdcd13
deny(unsafe_op_in_unsafe_fn) in libstd/process.rs
commit sha 00d537dcd03f9ff5ebdf8b86e039dbdb0a7f850c
deny(unsafe_op_in_unsafe_fn) in libstd/path.rs
commit sha 2ecc2ac864739cff6aed2609021e2467dedb117a
unit-arg - improve suggestion
commit sha a7468705cbf0fb551b8b1d8b420123262f7d92b2
Use translated variable for test string Test should be educative, added english translation and pronounciation.
commit sha 688f4471fd553c83ae3ff0306956d89b7d7c2d28
Stabilize future readiness fns
commit sha baf62e7a38854ff6a0039ddccb124ff329a32143
Update changelog to beta 1.47
commit sha f3ccbef2af24d5d83f82f1fb50bd97a9b75e609f
unit-arg - pr comments
commit sha 5574182b4d2d08c848a88a1ac5633fc194e0465e
Add a new lint to prevent `create_dir` from being used
commit sha 607905d126c55422668007737c22d7a7a89c0d57
Add STD_FS_CREATE_DIR into paths
commit sha 34e302e67c08c9b97d58d062ea83cc1fd860c56e
Fix clippy error
commit sha eebd2483654456e332d7cf53218b56b9cbd6f2f5
Fix errors
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
commit sha 282c59820b8e1d8c76f440484b81a190c576f91b
Merge commit '3d0b0e66afdfaa519d8855b338b35b4605775945' into clippyup
commit sha 7a66e6502dc3c7085b3f4078c01d4957d96175ed
or_fn_call: ignore nullary associated const fns
commit sha 5b7590f841974255f74c64d573189aecc7a30b2e
Downgrade applicability of `create_dir`
commit sha ba4c4988161abbe58e973b792c7e271785b4bc4d
Add more info for Vec Drain doc See its documentation for more
commit sha 71484121001b69aefdc41fd7192b7095250517a7
Vec slice example fix style and show type elision
push time in 9 days
push eventdavidtwco/rust
commit sha 00d537dcd03f9ff5ebdf8b86e039dbdb0a7f850c
deny(unsafe_op_in_unsafe_fn) in libstd/path.rs
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 <[email protected]>
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).
commit sha 787b2707a77fa1a98f512a4905662a1a16daf13c
Move const tests for `Result` to `library\core` Part of #76268
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.
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 <[email protected]>
commit sha 6cb671628393e292d5e68e6367f80488ace46532
Add test for checking if-let or-patterns
commit sha 2c8a4c8f73e8b36e72b15e7f97ef29ad36c15e17
Nightly is currently 1.48
commit sha 685f04220ee584f00f60e5ff9d7aca16351c5399
Clean up vec benches bench_in_place style
commit sha 78097d96828c16a259fa9b5c2430e8d9ff1820b3
initial attempt to add aarch64-unknown-linux-musl to dist-linux-arm
commit sha 3d89ee9586354e736cfe4a472d8aaa507d10f77c
Typo fix Thanks, Amanieu Co-authored-by: Amanieu d'Antras <[email protected]>
commit sha caeb5544ecd9dba4d67b68b8c1b32d8132c6d5f2
do not inline black_box when building for Miri
commit sha 4b5cd544d1268df8f95424a7dc77ce6c852bac56
use black_box instead of local optimziation barriers in const tests where possible
commit sha 47668edb64ed1f8676cfcb4c9ccb6fe018f660c5
Separate feature flags Co-authored-by: Ivan Tham <[email protected]>
commit sha 284b16913aa6fccdf7b14edc3bb2693aadd39919
add missing feature flag
commit sha daa62d9081bfeeb0f438f88eb69082c227a5c221
Add as_str() and AsRef to string::Drain.
commit sha 673284058b53992cfd66c04b9db8e551a0dc9996
Show remaining data in string::Drain's Debug impl.
commit sha f5bb523e94b431c35b495b6ad6ae94495b653a5f
Add AsRef<[u8]> for String's Drain.
commit sha f2a32909e0649eb589406ddac63597ba34273c95
Mark AsRef impls for String's Drain as stable. Trait implementations effectively can't be #[unstable].
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).
push time in 9 days
delete branch davidtwco/rust
delete branch : issue-69925-polymorphic-instancedef-fnptrshim
delete time in 9 days
push eventdavidtwco/veritas
commit sha 38c200705ca9c73847f8f8fe3a384d88322d4f05
Update flake lockfile.
commit sha 068a65624a697d657547de3c17ee788dd9ae487d
Disable rust analyzer.
push time in 10 days
pull request commentrust-lang/rust
Avoiding unnecesary allocations at rustc_errors
Thanks for the contribution!
@bors r+
comment created time in 12 days
pull request commentrust-lang/rust
Avoiding unnecesary allocations at rustc_errors
Could you squash the last commit that changes code style?
comment created time in 13 days
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 intosrc/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.
comment created time in 15 days
push eventdavidtwco/rust
commit sha 73e27b3e18dcbbef3a36620c4a44306e2bbdcd13
deny(unsafe_op_in_unsafe_fn) in libstd/process.rs
commit sha a7468705cbf0fb551b8b1d8b420123262f7d92b2
Use translated variable for test string Test should be educative, added english translation and pronounciation.
commit sha ba4c4988161abbe58e973b792c7e271785b4bc4d
Add more info for Vec Drain doc See its documentation for more
commit sha 71484121001b69aefdc41fd7192b7095250517a7
Vec slice example fix style and show type elision
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).
commit sha a80d39041e2d5cd58a846c9ef9e01ee9d691a7ed
Use inline(never) instead of cold inline(never) is better way to avoid optimizer to inline the function instead of cold.
commit sha 0b5e681f5af0d3989b49121969f09cf29f029263
Improve SGX RWLock initializer test
commit sha 79d563c819483eaf6e67b6aaaef9d0ca6030337d
Move const tests for `Ordering` to `library\core` Part of #76268
commit sha b54386ab7a9da8a4f22db3a35a9ec7b0f2b98b6c
Detect overflow in proc_macro_server subspan
commit sha d98bac4e4e3cc87ec9b848c173d570ebe2aa30b6
Add tests for overflow in Vec::drain
commit sha f8cfb2f5ad847b871399dfef9b8b8ff4e84a75cb
Add tests for overflow in String / VecDeque operations using ranges
commit sha 941dca8ed238a04a55741127165e9ad80671ed8a
Add Arith Tests in Library
commit sha dc37b553accd4fb2f8d0c59f69c701b524361cc2
Minor refactoring
commit sha 7d834c87d2ebb3d8dd4895bc5fabc4d44a1d2b52
Move Various str tests in library
commit sha d85db82960db80132a10d25e0fe7dfd5f4736d0f
Add documentation for `impl<T> From<T> for Poll<T>`
commit sha 8b0d0a0cadbaaf0e7f4114e289a71981872c8587
Add documentation for `impl<T> From<BinaryHeap<T>> for Vec<T>`
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
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.
commit sha 21f8326cec03848368e02936a032103aa24cf6d2
Provide suggestion for missing fields in patterns
commit sha c8ee33714becbda0f1deddf1befe0383b4aad135
Use structured suggestion for `impl T` to `Box<dyn T>`
push time in 15 days
push eventdavidtwco/rust
commit sha 73e27b3e18dcbbef3a36620c4a44306e2bbdcd13
deny(unsafe_op_in_unsafe_fn) in libstd/process.rs
commit sha a7468705cbf0fb551b8b1d8b420123262f7d92b2
Use translated variable for test string Test should be educative, added english translation and pronounciation.
commit sha ba4c4988161abbe58e973b792c7e271785b4bc4d
Add more info for Vec Drain doc See its documentation for more
commit sha 71484121001b69aefdc41fd7192b7095250517a7
Vec slice example fix style and show type elision
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).
commit sha a80d39041e2d5cd58a846c9ef9e01ee9d691a7ed
Use inline(never) instead of cold inline(never) is better way to avoid optimizer to inline the function instead of cold.
commit sha 0b5e681f5af0d3989b49121969f09cf29f029263
Improve SGX RWLock initializer test
commit sha 79d563c819483eaf6e67b6aaaef9d0ca6030337d
Move const tests for `Ordering` to `library\core` Part of #76268
commit sha b54386ab7a9da8a4f22db3a35a9ec7b0f2b98b6c
Detect overflow in proc_macro_server subspan
commit sha d98bac4e4e3cc87ec9b848c173d570ebe2aa30b6
Add tests for overflow in Vec::drain
commit sha f8cfb2f5ad847b871399dfef9b8b8ff4e84a75cb
Add tests for overflow in String / VecDeque operations using ranges
commit sha 941dca8ed238a04a55741127165e9ad80671ed8a
Add Arith Tests in Library
commit sha dc37b553accd4fb2f8d0c59f69c701b524361cc2
Minor refactoring
commit sha 7d834c87d2ebb3d8dd4895bc5fabc4d44a1d2b52
Move Various str tests in library
commit sha d85db82960db80132a10d25e0fe7dfd5f4736d0f
Add documentation for `impl<T> From<T> for Poll<T>`
commit sha 8b0d0a0cadbaaf0e7f4114e289a71981872c8587
Add documentation for `impl<T> From<BinaryHeap<T>> for Vec<T>`
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
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.
commit sha 21f8326cec03848368e02936a032103aa24cf6d2
Provide suggestion for missing fields in patterns
commit sha c8ee33714becbda0f1deddf1befe0383b4aad135
Use structured suggestion for `impl T` to `Box<dyn T>`
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.
comment created 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.
Fixed!
comment created time in 15 days
push eventdavidtwco/rust
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 <[email protected]>
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
comment created time in 15 days
push eventdavidtwco/rust
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 <[email protected]>
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.
comment created time in 15 days
push eventdavidtwco/rust
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 <[email protected]>
push time in 15 days
push eventdavidtwco/rust
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 <[email protected]>
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.
comment created time in 15 days
push eventdavidtwco/rust
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 <[email protected]>
push time in 15 days
Pull request review commentrust-lang/rust
passes: prohibit non-static lifetime in anon const
+#![feature(min_const_generics)]
Fixed!
comment created time in 15 days
PR opened rust-lang/rust
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
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+
comment created time in 16 days
pull request commentrust-lang/rust
Detect blocks that could be struct expr bodies
@bors r+
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?
comment created time in 16 days
pull request commentrust-lang/rust
Initial support for riscv32gc_unknown_linux_gnu
@rustbot ping risc-v
comment created time in 16 days
push eventdavidtwco/rust
commit sha 7dd4582f95f0e07349cd34be0a5417280ce1d45b
Add ui test for 74672 and 76571 These tests will fall without the next commit.
commit sha c743fc43420ff09a79cc23316e484631842556dc
Ignore rustc_private items from std docs Apply suggestions from code review Co-authored-by: Joshua Nelson <[email protected]>
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.
commit sha d069c7e928ab2ac95e3f524ea4d56de518aa2329
Stabilize doc_alias feature
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`
push time in 16 days
PR opened rust-lang/rust
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
pr created 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
comment created time in 17 days
push eventdavidtwco/rust
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.
commit sha cc0d6345500932e8118ba65e98944a6a3bac3277
Liballoc IntoIter limit unsafe to pointer arithmethic
commit sha 50315238aa8ffae08f29b260aa36511e03b5e070
Liballoc DoubleEndedIterator limit unsafe to pointer arithmethic
commit sha 2ecc2ac864739cff6aed2609021e2467dedb117a
unit-arg - improve suggestion
commit sha 688f4471fd553c83ae3ff0306956d89b7d7c2d28
Stabilize future readiness fns
commit sha baf62e7a38854ff6a0039ddccb124ff329a32143
Update changelog to beta 1.47
commit sha f3ccbef2af24d5d83f82f1fb50bd97a9b75e609f
unit-arg - pr comments
commit sha 5574182b4d2d08c848a88a1ac5633fc194e0465e
Add a new lint to prevent `create_dir` from being used
commit sha 607905d126c55422668007737c22d7a7a89c0d57
Add STD_FS_CREATE_DIR into paths
commit sha 34e302e67c08c9b97d58d062ea83cc1fd860c56e
Fix clippy error
commit sha eebd2483654456e332d7cf53218b56b9cbd6f2f5
Fix errors
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
commit sha 282c59820b8e1d8c76f440484b81a190c576f91b
Merge commit '3d0b0e66afdfaa519d8855b338b35b4605775945' into clippyup
commit sha 7a66e6502dc3c7085b3f4078c01d4957d96175ed
or_fn_call: ignore nullary associated const fns
commit sha 5b7590f841974255f74c64d573189aecc7a30b2e
Downgrade applicability of `create_dir`
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. });
commit sha c1d2b9376a6bb4fc06f845e12b9c2a93079bb2ee
Add a test for an async function.
commit sha 04912ca115ff153a97d80b604435b10dcb155dd0
Formatting changes requested by ThibsG.
commit sha 1c5b0fbe53f842cd5871ea02e4e48571615d5679
Update dataflow analyses to use new interface
commit sha 17b2ba5ded12f59dba63ece659b5cd714b763800
Syntax-highlight `single_char_push_str` lint
push time in 17 days
pull request commentrust-lang/rust
use sort_unstable to sort primitive types
This is one unlucky PR.. @bors retry
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+
comment created time in 17 days