Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 6 pull requests #103832

Merged
merged 17 commits into from
Nov 1, 2022
Merged

Rollup of 6 pull requests #103832

merged 17 commits into from
Nov 1, 2022

Commits on Oct 27, 2022

  1. Configuration menu
    Copy the full SHA
    c0472a5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    545702e View commit details
    Browse the repository at this point in the history
  3. Remove redundant braces

    zbyrn committed Oct 27, 2022
    Configuration menu
    Copy the full SHA
    20a8427 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a10737c View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2022

  1. Configuration menu
    Copy the full SHA
    d366471 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2022

  1. Configuration menu
    Copy the full SHA
    a1672ad View commit details
    Browse the repository at this point in the history
  2. Use AdtDef in wfcheck.

    cjgillot committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    6802e1d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    65f77b7 View commit details
    Browse the repository at this point in the history
  4. Use AdtDef to check enum.

    cjgillot committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    abc1ad7 View commit details
    Browse the repository at this point in the history
  5. Update mod.rs

    tyggja committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    7fe1622 View commit details
    Browse the repository at this point in the history
  6. Rewrite implementation of #[alloc_error_handler]

    The new implementation doesn't use weak lang items and instead changes
    `#[alloc_error_handler]` to an attribute macro just like
    `#[global_allocator]`.
    
    The attribute will generate the `__rg_oom` function which is called by
    the compiler-generated `__rust_alloc_error_handler`. If no `__rg_oom`
    function is defined in any crate then the compiler shim will call
    `__rdl_oom` in the alloc crate which will simply panic.
    
    This also fixes link errors with `-C link-dead-code` with
    `default_alloc_error_handler`: `__rg_oom` was previously defined in the
    alloc crate and would attempt to reference the `oom` lang item, even if
    it didn't exist. This worked as long as `__rg_oom` was excluded from
    linking since it was not called.
    
    This is a prerequisite for the stabilization of
    `default_alloc_error_handler` (rust-lang#102318).
    Amanieu committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    56074b5 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2022

  1. Rollup merge of rust-lang#103061 - Amanieu:rewrite_alloc_error_handle…

    …r, r=bjorn3
    
    Rewrite implementation of `#[alloc_error_handler]`
    
    The new implementation doesn't use weak lang items and instead changes `#[alloc_error_handler]` to an attribute macro just like `#[global_allocator]`.
    
    The attribute will generate the `__rg_oom` function which is called by the compiler-generated `__rust_alloc_error_handler`. If no `__rg_oom` function is defined in any crate then the compiler shim will call `__rdl_oom` in the alloc crate which will simply panic.
    
    This also fixes link errors with `-C link-dead-code` with `default_alloc_error_handler`: `__rg_oom` was previously defined in the alloc crate and would attempt to reference the `oom` lang item, even if it didn't exist. This worked as long as `__rg_oom` was excluded from linking since it was not called.
    
    This is a prerequisite for the stabilization of `default_alloc_error_handler` (rust-lang#102318).
    Dylan-DPC committed Nov 1, 2022
    Configuration menu
    Copy the full SHA
    4363467 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#103584 - ouz-a:issue-102303, r=oli-obk

    Remove bounds check when array is indexed by enum
    
    As the title says, this reverts the behavior introduced with 1.64.
    
    Fixes rust-lang#102303
    
    r? `@oli-obk`
    Dylan-DPC committed Nov 1, 2022
    Configuration menu
    Copy the full SHA
    94241e7 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#103706 - zbyrn:issue-101637-fix, r=estebank

    Fix E0433 No Typo Suggestions
    
    Fixes rust-lang#48676
    Fixes rust-lang#87791
    Fixes rust-lang#96625
    Fixes rust-lang#95462
    Fixes rust-lang#101637
    Follows up PR rust-lang#72923
    
    Several open issues refer to the problem that E0433 does not suggest typos like other errors normally do. This fix augments the implementation of PR rust-lang#72923.
    
    **Background**
    When the path of a function call, e.g. `Struct::foo()`, involves names that cannot be resolved, there are two errors that could be emitted by the compiler:
     - If `Struct` is not found, it is ``E0433: failed to resolve: use of undeclared type `Struct` ``.
     - If `foo` is not found in `Struct`, it is ``E0599: no function or associated item named `foo` found for struct `Struct` in the current scope``
    
    When a name is used as a type, `e.g. fn foo() -> Struct`, and the name cannot be resolved, it is ``E0412: cannot find type `Struct` in this scope``.
    
    Before rust-lang#72923, `E0433` does not implement any suggestions, and the PR introduces suggestions for missing `use`s. When a resolution error occurs in the path of a function call, it tries to smart resolve just the type part of the path, e.g. `module::Struct` of a call to `module::Struct::foo()`. However, along with the suggestions, the smart-resolve function will report `E0412` since it only knows that it is a type that we cannot resolve instead of being a part of the path. So, the original implementation swap out `E0412` errors returned by the smart-resolve function with the real `E0433` error, but keeps the "missing `use`" suggestions to be reported to the programmer.
    
    **Issue**
    The current implementation only reports if there are "missing `use`" suggestions returned by the smart-resolve function; otherwise, it would fall back the normal reporting, which does not emit suggestions. But the smart-resolve function could also produce typo suggestions, which are omitted currently.
    
    Also, it seems like that not all info has been swapped out when there are missing suggestions. The error message underlining the name in the snippet still says ``not found in this scope``, which is a `E0412` messages, if there are `use` suggestions, but says the normal `use of undeclared type` otherwise.
    
    **Fixes**
    This fix swaps out all fields in `Diagnostic` returned by the smart-resolve function except for `suggestions` with the current error, and merges the `suggestions` of the returned error and that of the current error together. If there are `use` suggestions, the error is saved to `use_injection` to be reported at the end; otherwise, the error is emitted immediately as `Resolver::report_error` does.
    
    Some tests are updated to use the correct underlining error messages, and one additional test for typo suggestion is added to the test suite.
    
    r? rust-lang/diagnostics
    Dylan-DPC committed Nov 1, 2022
    Configuration menu
    Copy the full SHA
    7dc3ace View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#103729 - RalfJung:align-of-val-packed, r=ol…

    …i-obk
    
    interpret: fix align_of_val on packed types
    
    Fixes rust-lang/miri#2632
    
    r? `@oli-obk`
    Dylan-DPC committed Nov 1, 2022
    Configuration menu
    Copy the full SHA
    20528ba View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#103759 - cjgillot:adt-collect, r=davidtwco

    Use `adt_def` during type collection.
    
    This removes a wrapper which is close to what `adt_def` does.
    Dylan-DPC committed Nov 1, 2022
    Configuration menu
    Copy the full SHA
    09f4f7c View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#103809 - tyggja:patch-1, r=JohnTitor

    Fix a typo in std::net mod doc comment
    
    net-doc syntax
    Dylan-DPC committed Nov 1, 2022
    Configuration menu
    Copy the full SHA
    5d30bfc View commit details
    Browse the repository at this point in the history