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 14 pull requests #81102

Closed
wants to merge 108 commits into from
Closed

Conversation

m-ou-se
Copy link
Member

@m-ou-se m-ou-se commented Jan 16, 2021

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

flip1995 and others added 30 commits December 17, 2020 21:44
The core issue was the usage of `reference_file_path.file_name()`, which
provided a non-existent path if the file to be updated was in a
subdirectory.

Instead we have to provide the whole path after 'tests/ui/' as the
'filename'. This part of the path is called `test_name` in the code now.
This should make the code slightly more understandable
fixes rust-lang#6522

changelog: field_reassign_with_default: don't expand macros in lint suggestion (rust-lang#6522)
Update CHANGELOG for Rust 1.50

changelog: none

r? `@flip1995`
field_reassign_with_default: don't expand macros in suggestion

fixes rust-lang#6522

changelog: field_reassign_with_default: don't expand macros in lint suggestion (rust-lang#6522)
Ensure `Copy` exception in trait definition for `wrong_self_conventio…

Add a test case to ensure `Copy` exception is preserved also in trait definition, when passing `self` by value.

Follow up of rust-lang#6316

changelog: none
Fix blessing of test output in subdirectories

The core issue was the usage of `reference_file_path.file_name()`, which
provided a non-existent path if the file to be updated was in a
subdirectory.

Instead we have to provide the whole path after 'tests/ui/' as the
'filename'. This part of the path is called `test_name` in the code now.

changelog: none
… enable/disable it particularly

This splits up clippy::collapsible_if into collapsible_if for
if x {
  if y { }
}
=>
if x && y { }

and collapsible_else_if for

if x {
} else {
 if y { }
}

=>
if x {

} else if y {

}

so that we can lint for only the latter but not the first if we desire.

changelog: collapsible_if: split up linting for if x {} else { if y {} } into collapsible_else_if lint
collapsible_if: split collapsible_else_if into its own lint so we can enable/disable it particularly

This splits up clippy::collapsible_if into collapsible_if for
if x {
  if y { }
}
=>
if x && y { }

and collapsible_else_if for

if x {
} else {
 if y { }
}

=>
if x {

} else if y {

}

so that we can lint for only the latter but not the first if we desire.

changelog: collapsible_if: split up linting for if x {} else { if y {} } into collapsible_else_if lint
Needless Question Mark Lint

Fixes rust-lang#6410, i.e the needless question mark lint

changelog: [`needless_question_mark`] New lint
Add ui-internal to cargo dev bless

changelog: internal
LingMan and others added 16 commits January 16, 2021 20:13
correctly deal with late-bound lifetimes in anon consts

adds support for using late bound lifetimes of the parent context in anon consts.
```rust
#![feature(const_generics)]
const fn inner<'a>() -> usize where &'a (): Sized { 3 }

fn test<'a>() {
    let _: [u8; inner::<'a>()];
}
```
The lifetime `'a` is late bound in `test` so it's not included in its generics but is instead dealt with separately in borrowck.
This didn't previously work for anon consts as they have to use the late bound lifetimes of their parent which has
to be explicitly handled.

r? `@matthewjasper` cc `@varkor` `@eddyb`
resolve: Reject ambiguity built-in attr vs different built-in attr

Fixes rust-lang#79798.

Resolution ensures that inert attributes cannot be used through imports like this, but built-in attributes don't go through initial resolution (only through resolution validation), so we have to keep some extra data (the built-in attribute name) to prevent it from happening.
…mbol, r=nikomatsakis`

Improve diagnostics when closure doesn't meet trait bound

Improves the diagnostics when closure doesn't meet trait bound by modifying `TypeckResuts::closure_kind_origins` such that `hir::Place` is used instead of `Symbol`. Using `hir::Place` to describe which capture influenced the decision of selecting a trait a closure satisfies to (Fn/FnMut/FnOnce, Copy) allows us to show precise path in the diagnostics when `capture_disjoint_field` feature is enabled.

Closes rust-lang/project-rfc-2229/issues/21

r? `@nikomatsakis`
… r=nikomatsakis

Allow Trait inheritance with cycles on associated types take 2

This reverts the revert of rust-lang#79209 and fixes the ICEs that's occasioned by that PR exposing some problems that are addressed in rust-lang#80648 and rust-lang#79811.
For easier review I'd say, check only the last commit, the first one is just a revert of the revert of rust-lang#79209 which was already approved.

This also could be considered part or the actual fix of rust-lang#79560 but I guess for that to be closed and fixed completely we would need to land rust-lang#80648 and rust-lang#79811 too.

r? `@nikomatsakis`
cc `@Aaron1011`
…ewjasper

resolve: Simplify collection of traits in scope

"Traits in scope" for a given location are collected by walking all scopes in type namespace, collecting traits in them and pruning traits that don't have an associated item with the given name and namespace.

Previously we tried to prune traits using some kind of hygienic resolution for associated items, but that was complex and likely incorrect, e.g. in rust-lang#80762 correction to visibilites of trait items caused some traits to not be in scope anymore.
I previously had some comments and concerns about this in rust-lang#65351.

In this PR we are doing some much simpler pruning based on `Symbol` and `Namespace` comparisons, it should be enough to throw away 99.9% of unnecessary traits.
It is not necessary for pruning to be precise because for trait aliases, for example, we don't do any pruning at all, and precise hygienic resolution for associated items needs to be done in typeck anyway.

The somewhat unexpected effect is that trait imports introduced by macros 2.0 now bring traits into scope due to the removed hygienic check on associated item names.
I'm not sure whether it is desirable or not, but I think it's acceptable for now.
The old check was certainly incorrect because macros 2.0 did bring trait aliases into scope.
If doing this is not desirable, then we should come up with some other way to avoid bringing traits from macros 2.0 into scope, that would accommodate for trait aliases as well.

---

The PR also contains a couple of pure refactorings
- Scope walk is done by using `visit_scopes` instead of a hand-rolled version.
- Code is restructured to accomodate for rustdoc that also wants to query traits in scope, but doesn't want to filter them by associated items at all.

r? `@matthewjasper`
Use PlaceRef projection abstractions more consistently in rustc_mir

PlaceRef contains abstractions for dealing with the `projections` array. This PR uses these abstractions more consistently within the `rustc_mir` crate.

See associated issue: rust-lang#80647.

r? `@RalfJung`
…k-Simulacrum

Allow downloading LLVM on Windows and MacOS

- Don't ignore packaging `llvm/lib/` for `rust-dev` when LLVM is linked
statically
- Add `link-type.txt` so bootstrap knows whether llvm was linked
  statically or dynamically
- Don't assume CI LLVM is linked dynamically in `bootstrap::config`
- Fall back to dynamic linking if `link-type.txt` doesn't exist
- Fix existing bug that split the output of `llvm-config` on lines, not spaces
- Only special case MacOS when dynamic linking. Static linking works fine.
- Enable building LLVM tests

  This works around the following llvm bug:

  ```
  llvm-config: error: component libraries and shared library

  llvm-config: error: missing: /home/joshua/rustc2/build/x86_64-unknown-linux-gnu/llvm/build/lib/libgtest.a
  llvm-config: error: missing: /home/joshua/rustc2/build/x86_64-unknown-linux-gnu/llvm/build/lib/libgtest_main.a
  llvm-config: error: missing: /home/joshua/rustc2/build/x86_64-unknown-linux-gnu/llvm/build/lib/libLLVMTestingSupport.a
  thread 'main' panicked at 'command did not execute successfully: "/home/joshua/rustc2/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-config" "--libfiles"
  ```

  I'm not sure why llvm-config thinks these are required, but to avoid
  the error, this builds them anyway.

- Bump version of `download-ci-llvm-stamp`

  `src/llvm-project` hasn't changed, but the generated tarball has.

Fixes rust-lang#77084.

# Current Status

This works on both MacOS and Windows! 🎉 🎉 Thanks to `@nagisa,` `@halkcyon,` `@Lokathor,` `@jryans,` and `@poliorcetics` for helping me test!

The `if-available` check now supports all tier 1 platforms. Although only x64 apple and x64 msvc have been tested, none of the changes here are Windows or Mac specific, and I expect this to work anywhere that LLVM artifacts are uploaded to CI (i.e. the `rust-dev` component exists).

## Windows

Note that if you have an old version of MSVC build tools you'll need to update them. VS Build Tools 2019 14.28 and later are known to work. With old tools, you may see an error like the following:

```
error LNK2001: unresolved external symbol __imp___std_init_once_complete
```
Update Clippy

Biweekly Clippy update

r? `@Manishearth`
…k, r=jyn514

Support non-stage0 check

Seems to work locally - a full stage 1 check succeeds, building std (because we can't get away with checking it), and then checking the compiler and other tools. This ran into the problem that a unconditional x.py check in stage 1 *both* checks and builds stage 1 std, and then has to clean up because for some reason the rmeta and rlib artifacts conflict (though I'm not actually entirely sure why, but it doesn't seem worth digging in in too much detail).

Ideally we wouldn't be building and checking like that but it's a minor worry as checking std is pretty fast and you can avoid it if you're aiming for speed by passing the compiler (e.g., compiler/rustc) explicitly.

r? `@jyn514`
rustc_parse_format: Fix character indices in find_skips

Fixes rust-lang#81006
…ark-Simulacrum

BTreeMap: clean up a few more comments

And mark `pop` as unsafe.
r? `@Mark-Simulacrum`
Use Option::map instead of open-coding it

r? `@oli-obk`
`@rustbot` modify labels +C-cleanup +T-compiler
Use Option::unwrap_or instead of open-coding it

r? `@oli-obk` Noticed this while we were talking about the other PR just now 😆
`@rustbot` modify labels +C-cleanup +T-compiler
@rustbot rustbot added the rollup A PR which is a rollup label Jan 16, 2021
@m-ou-se
Copy link
Member Author

m-ou-se commented Jan 16, 2021

@bors r+ p=14 rollup=never

@bors
Copy link
Contributor

bors commented Jan 16, 2021

📌 Commit 576c3d5 has been approved by m-ou-se

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jan 16, 2021
@bors
Copy link
Contributor

bors commented Jan 17, 2021

⌛ Testing commit 576c3d5 with merge f0a29744440efaaec96bcdb95cd72275f82895b1...

@rust-log-analyzer
Copy link
Collaborator

The job dist-armhf-linux failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[2593/2631] Building CXX object tools/llvm-extract/CMakeFiles/llvm-extract.dir/llvm-extract.cpp.o
[2594/2631] Building CXX object tools/llvm-microsoft-demangle-fuzzer/CMakeFiles/llvm-microsoft-demangle-fuzzer.dir/DummyDemanglerFuzzer.cpp.o
[2595/2631] Building CXX object tools/llvm-microsoft-demangle-fuzzer/CMakeFiles/llvm-microsoft-demangle-fuzzer.dir/llvm-microsoft-demangle-fuzzer.cpp.o
[2596/2631] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2obj.cpp.o
[2597/2631] Building CXX object unittests/Passes/CMakeFiles/TestPlugin.dir/TestPlugin.cpp.o
[2598/2631] Building CXX object unittests/Support/DynamicLibrary/CMakeFiles/SecondLib.dir/PipSqueak.cpp.o
[2599/2631] Building CXX object unittests/Support/DynamicLibrary/CMakeFiles/PipSqueak.dir/PipSqueak.cpp.o
[2600/2631] Building CXX object unittests/Support/DynamicLibrary/CMakeFiles/DynamicLibraryLib.dir/ExportedFuncs.cpp.o
[2601/2631] Building CXX object utils/unittest/CMakeFiles/gtest.dir/googletest/src/gtest-all.cc.o
[2602/2631] Linking CXX executable bin/llvm-extract
[2603/2631] Building CXX object utils/unittest/CMakeFiles/gtest.dir/googlemock/src/gmock-all.cc.o
[2605/2631] Linking CXX shared library unittests/Support/DynamicLibrary/SecondLib.so
[2606/2631] Building CXX object tools/llvm-exegesis/lib/Mips/CMakeFiles/LLVMExegesisMips.dir/Target.cpp.o
[2607/2631] Building CXX object tools/llvm-exegesis/lib/X86/CMakeFiles/LLVMExegesisX86.dir/Target.cpp.o
[2608/2631] Building CXX object tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o
[2608/2631] Building CXX object tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o
[2609/2631] Building CXX object tools/llvm-exegesis/lib/PowerPC/CMakeFiles/LLVMExegesisPowerPC.dir/Target.cpp.o
[2610/2631] Linking CXX executable bin/llvm-microsoft-demangle-fuzzer
[2611/2631] Linking CXX shared module unittests/Passes/TestPlugin.so
[2612/2631] Linking CXX executable bin/yaml2obj
[2613/2631] Linking CXX shared library unittests/Support/DynamicLibrary/PipSqueak.so
[2614/2631] Linking CXX static library lib/libDynamicLibraryLib.a
[2616/2631] Linking CXX static library lib/libgtest.a
[2617/2631] Linking CXX static library lib/libLLVMExegesisMips.a
[2618/2631] Building CXX object lib/Testing/Support/CMakeFiles/LLVMTestingSupport.dir/Annotations.cpp.o
[2619/2631] Building CXX object lib/Testing/Support/CMakeFiles/LLVMTestingSupport.dir/Error.cpp.o
[2619/2631] Building CXX object lib/Testing/Support/CMakeFiles/LLVMTestingSupport.dir/Error.cpp.o
[2620/2631] Building CXX object lib/Testing/Support/CMakeFiles/LLVMTestingSupport.dir/SupportHelpers.cpp.o
[2621/2631] Building CXX object utils/unittest/UnitTestMain/CMakeFiles/gtest_main.dir/TestMain.cpp.o
[2623/2631] Linking CXX static library lib/libLLVMExegesisAArch64.a
[2624/2631] Linking CXX static library lib/libLLVMExegesisX86.a
[2625/2631] Building CXX object tools/llvm-exegesis/CMakeFiles/llvm-exegesis.dir/llvm-exegesis.cpp.o
[2626/2631] Linking CXX static library lib/libLLVMTestingSupport.a
---
/x-tools/arm-unknown-linux-gnueabihf/arm-unknown-linux-gnueabihf/include/c++/8.3.0/bits/vector.tcc:109:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<llvm::wasm::WasmSymbolInfo*, std::vector<llvm::wasm::WasmSymbolInfo> >' changed in GCC 7.1
    _M_realloc_insert(end(), std::forward<_Args>(__args)...);
    ^~~~~~~~~~~~~~~~~
[959/2631] Creating export file for BugpointPasses
[960/2631] Building CXX object unittests/Passes/CMakeFiles/TestPlugin.dir/TestPlugin.cpp.o
[961/2631] Building CXX object unittests/Support/DynamicLibrary/CMakeFiles/SecondLib.dir/PipSqueak.cpp.o
[963/2631] Linking CXX static library lib/libLLVMObject.a
[963/2631] Linking CXX static library lib/libLLVMObject.a
[964/2631] Building CXX object unittests/Support/DynamicLibrary/CMakeFiles/PipSqueak.dir/PipSqueak.cpp.o
[966/2631] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCustom.cpp.o
[967/2631] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompiland.cpp.o
[968/2631] Linking CXX executable bin/llvm-rc
[969/2631] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompilandDetails.cpp.o
---
[1034/2631] Creating library symlink lib/libRemarks.so
[1035/2631] Linking CXX shared library unittests/Support/DynamicLibrary/SecondLib.so
[1036/2631] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyCallGraph.cpp.o
[1037/2631] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyValueInfo.cpp.o
[1038/2631] Linking CXX shared library unittests/Support/DynamicLibrary/PipSqueak.so
[1040/2631] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LegacyDivergenceAnalysis.cpp.o
[1040/2631] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LegacyDivergenceAnalysis.cpp.o
[1041/2631] Building CXX object unittests/Support/DynamicLibrary/CMakeFiles/DynamicLibraryLib.dir/ExportedFuncs.cpp.o
[1043/2631] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopAccessAnalysis.cpp.o
[1044/2631] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopAnalysisManager.cpp.o
[1045/2631] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopCacheAnalysis.cpp.o
[1046/2631] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopNestAnalysis.cpp.o
---
/x-tools/arm-unknown-linux-gnueabihf/arm-unknown-linux-gnueabihf/include/c++/8.3.0/bits/vector.tcc: In member function 'virtual void llvm::exegesis::{anonymous}::BenchmarkCodeStreamer::HandleComment(llvm::SMLoc, llvm::StringRef)':
/x-tools/arm-unknown-linux-gnueabihf/arm-unknown-linux-gnueabihf/include/c++/8.3.0/bits/vector.tcc:109:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<llvm::exegesis::RegisterValue*, std::vector<llvm::exegesis::RegisterValue> >' changed in GCC 7.1
    _M_realloc_insert(end(), std::forward<_Args>(__args)...);
    ^~~~~~~~~~~~~~~~~
[2604/2631] Linking CXX static library lib/libDynamicLibraryLib.a
[2605/2631] Building CXX object utils/unittest/CMakeFiles/gtest.dir/googlemock/src/gmock-all.cc.o
                 from /checkout/src/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:25,
                 from /checkout/src/llvm-project/llvm/include/llvm/ADT/StringExtras.h:16,
                 from /checkout/src/llvm-project/llvm/include/llvm/Support/Error.h:19,
                 from /checkout/src/llvm-project/llvm/tools/llvm-exegesis/lib/Error.h:13,
---
    ^~~~~~~~~~~~~~~~~
/x-tools/arm-unknown-linux-gnueabihf/arm-unknown-linux-gnueabihf/include/c++/8.3.0/bits/vector.tcc:109:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<llvm::exegesis::InstructionTemplate*, std::vector<llvm::exegesis::InstructionTemplate> >' changed in GCC 7.1
    _M_realloc_insert(end(), std::forward<_Args>(__args)...);
    ^~~~~~~~~~~~~~~~~
[2606/2631] Building CXX object utils/unittest/CMakeFiles/gtest.dir/googletest/src/gtest-all.cc.o
                 from /x-tools/arm-unknown-linux-gnueabihf/arm-unknown-linux-gnueabihf/include/c++/8.3.0/bits/random.h:34,
                 from /x-tools/arm-unknown-linux-gnueabihf/arm-unknown-linux-gnueabihf/include/c++/8.3.0/random:49,
                 from /checkout/src/llvm-project/llvm/tools/llvm-exegesis/lib/MCInstrDescView.h:22,
                 from /checkout/src/llvm-project/llvm/tools/llvm-exegesis/lib/LlvmState.h:17,
---
    ^~~~~~~~~~~~~~~~~
[2621/2631] Linking CXX static library lib/libLLVMExegesisX86.a
[2622/2631] Building CXX object tools/bugpoint-passes/CMakeFiles/BugpointPasses.dir/TestPasses.cpp.o
[2623/2631] Linking CXX shared module lib/BugpointPasses.so
[2624/2631] Linking CXX static library lib/libgtest.a
[2625/2631] Building CXX object lib/Testing/Support/CMakeFiles/LLVMTestingSupport.dir/Annotations.cpp.o
[2626/2631] Building CXX object lib/Testing/Support/CMakeFiles/LLVMTestingSupport.dir/Error.cpp.o
[2627/2631] Building CXX object lib/Testing/Support/CMakeFiles/LLVMTestingSupport.dir/SupportHelpers.cpp.o
[2628/2631] Building CXX object utils/unittest/UnitTestMain/CMakeFiles/gtest_main.dir/TestMain.cpp.o
[2629/2631] Linking CXX static library lib/libLLVMTestingSupport.a
[2630/2631] Linking CXX static library lib/libgtest_main.a
-- Install configuration: "Release"
-- Installing: /checkout/obj/build/arm-unknown-linux-gnueabihf/llvm/include/llvm
-- Installing: /checkout/obj/build/arm-unknown-linux-gnueabihf/llvm/include/llvm/MCA
-- Installing: /checkout/obj/build/arm-unknown-linux-gnueabihf/llvm/include/llvm/MCA/Context.h
---
[RUSTC-TIMING] salsa_macros test:false 2.086
   Compiling salsa v0.16.0
[RUSTC-TIMING] tracing_attributes test:false 2.100
   Compiling tracing v0.1.22
error[E0221]: ambiguous associated type `Group` in bounds of `Q`
   --> /cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/interned.rs:466:57
    |
466 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<Q::Group>>::group_storage(db);
    |                                                         ^^^^^^^^ ambiguous associated type `Group`
   ::: /cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/lib.rs:431:5
    |
    |
431 |     type Group: plumbing::QueryGroup<GroupStorage = Self::GroupStorage>;
    |     |
    |     |
    |     ambiguous `Group` from `for<'d> QueryDb<'d>`
    |     ambiguous `Group` from `for<'d> QueryDb<'d>`
    |
help: use fully qualified syntax to disambiguate
    |
466 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<<Q as for<'d> QueryDb<'d>>::Group>>::group_storage(db);
    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: use fully qualified syntax to disambiguate
    |
466 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<<Q as for<'d> QueryDb<'d>>::Group>>::group_storage(db);


error[E0221]: ambiguous associated type `Group` in bounds of `Q`
   --> /cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/interned.rs:478:57
    |
478 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<Q::Group>>::group_storage(db);
    |                                                         ^^^^^^^^ ambiguous associated type `Group`
   ::: /cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/lib.rs:431:5
    |
    |
431 |     type Group: plumbing::QueryGroup<GroupStorage = Self::GroupStorage>;
    |     |
    |     |
    |     ambiguous `Group` from `for<'d> QueryDb<'d>`
    |     ambiguous `Group` from `for<'d> QueryDb<'d>`
    |
help: use fully qualified syntax to disambiguate
    |
478 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<<Q as for<'d> QueryDb<'d>>::Group>>::group_storage(db);
    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: use fully qualified syntax to disambiguate
    |
478 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<<Q as for<'d> QueryDb<'d>>::Group>>::group_storage(db);


error[E0221]: ambiguous associated type `Group` in bounds of `Q`
   --> /cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/interned.rs:490:57
    |
490 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<Q::Group>>::group_storage(db);
    |                                                         ^^^^^^^^ ambiguous associated type `Group`
   ::: /cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/lib.rs:431:5
    |
    |
431 |     type Group: plumbing::QueryGroup<GroupStorage = Self::GroupStorage>;
    |     |
    |     |
    |     ambiguous `Group` from `for<'d> QueryDb<'d>`
    |     ambiguous `Group` from `for<'d> QueryDb<'d>`
    |
help: use fully qualified syntax to disambiguate
    |
490 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<<Q as for<'d> QueryDb<'d>>::Group>>::group_storage(db);
    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: use fully qualified syntax to disambiguate
    |
490 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<<Q as for<'d> QueryDb<'d>>::Group>>::group_storage(db);


error[E0221]: ambiguous associated type `Group` in bounds of `Q`
   --> /cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/interned.rs:512:57
    |
512 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<Q::Group>>::group_storage(db);
    |                                                         ^^^^^^^^ ambiguous associated type `Group`
   ::: /cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/lib.rs:431:5
    |
    |
431 |     type Group: plumbing::QueryGroup<GroupStorage = Self::GroupStorage>;
    |     |
    |     |
    |     ambiguous `Group` from `for<'d> QueryDb<'d>`
    |     ambiguous `Group` from `for<'d> QueryDb<'d>`
    |
help: use fully qualified syntax to disambiguate
    |
512 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<<Q as for<'d> QueryDb<'d>>::Group>>::group_storage(db);
    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: use fully qualified syntax to disambiguate
    |
512 |             <<Q as QueryDb<'_>>::DynDb as HasQueryGroup<<Q as for<'d> QueryDb<'d>>::Group>>::group_storage(db);

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0221`.
---
[RUSTC-TIMING] serde_derive test:false 4.941
error: build failed
command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "arm-unknown-linux-gnueabihf" "-Zdual-proc-macros" "-Zbinary-dep-depinfo" "-j" "16" "--release" "--locked" "--color" "always" "--manifest-path" "/checkout/src/tools/rust-analyzer/crates/rust-analyzer/Cargo.toml" "--message-format" "json-render-diagnostics"
expected success, got: exit code: 101
thread 'main' panicked at 'rust-analyzer always builds', src/bootstrap/dist.rs:1075:14
[TIMING] ToolBuild { compiler: Compiler { stage: 1, host: TargetSelection { triple: "x86_64-unknown-linux-gnu", file: None } }, target: TargetSelection { triple: "arm-unknown-linux-gnueabihf", file: None }, tool: "rust-analyzer", path: "src/tools/rust-analyzer/crates/rust-analyzer", mode: ToolRustc, is_optional_tool: true, source_type: Submodule, extra_features: [] } -- 19.136
[TIMING] RustAnalyzer { compiler: Compiler { stage: 1, host: TargetSelection { triple: "x86_64-unknown-linux-gnu", file: None } }, target: TargetSelection { triple: "arm-unknown-linux-gnueabihf", file: None }, extra_features: [] } -- 0.000
failed to run: /checkout/obj/build/bootstrap/debug/bootstrap dist --host arm-unknown-linux-gnueabihf --target arm-unknown-linux-gnueabihf
Build completed unsuccessfully in 0:26:04

@bors
Copy link
Contributor

bors commented Jan 17, 2021

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 17, 2021
@m-ou-se m-ou-se mentioned this pull request Jan 17, 2021
@m-ou-se m-ou-se closed this Jan 17, 2021
@m-ou-se m-ou-se deleted the rollup-010rdgs branch January 17, 2021 11:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet