Skip to content

Commit

Permalink
Auto merge of #113027 - matthiaskrgr:rollup-mpes684, r=matthiaskrgr
Browse files Browse the repository at this point in the history
Rollup of 2 pull requests

Successful merges:

 - #113007 (Revert "Structurally resolve correctly in check_pat_lit")
 - #113023 (Migrate GUI colors test to original CSS color format)

r? `@ghost`
`@rustbot` modify labels: rollup
  • Loading branch information
bors committed Jun 25, 2023
2 parents c51fbb3 + d2f82a0 commit db3c394
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 6 deletions.
5 changes: 3 additions & 2 deletions compiler/rustc_hir_typeck/src/pat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -393,8 +393,9 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
// They can denote both statically and dynamically-sized byte arrays.
let mut pat_ty = ty;
if let hir::ExprKind::Lit(Spanned { node: ast::LitKind::ByteStr(..), .. }) = lt.kind {
if let ty::Ref(_, inner_ty, _) = *self.structurally_resolved_type(span, expected).kind()
&& self.structurally_resolved_type(span, inner_ty).is_slice()
let expected = self.structurally_resolved_type(span, expected);
if let ty::Ref(_, inner_ty, _) = expected.kind()
&& matches!(inner_ty.kind(), ty::Slice(_))
{
let tcx = self.tcx;
trace!(?lt.hir_id.local_id, "polymorphic byte string lit");
Expand Down
6 changes: 3 additions & 3 deletions tests/rustdoc-gui/docblock-code-block-line-number.goml
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ define-function: (
)
call-function: ("check-colors", {
"theme": "ayu",
"color": "rgb(92, 103, 115)",
"color": "#5c6773",
})
call-function: ("check-colors", {
"theme": "dark",
"color": "rgb(59, 145, 226)",
"color": "#3b91e2",
})
call-function: ("check-colors", {
"theme": "light",
"color": "rgb(198, 126, 45)",
"color": "#c67e2d",
})

// The first code block has two lines so let's check its `<pre>` elements lists both of them.
Expand Down
15 changes: 15 additions & 0 deletions tests/ui/pattern/byte-string-inference.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// check-pass

fn load<L>() -> Option<L> {
todo!()
}

fn main() {
while let Some(tag) = load() {
match &tag {
b"NAME" => {}
b"DATA" => {}
_ => {}
}
}
}
2 changes: 1 addition & 1 deletion tests/ui/traits/new-solver/slice-match-byte-lit.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// compile-flags: -Ztrait-solver=next
// check-pass
// known-bug: rust-lang/trait-system-refactor-initiative#38

fn test(s: &[u8]) {
match &s[0..3] {
Expand Down
11 changes: 11 additions & 0 deletions tests/ui/traits/new-solver/slice-match-byte-lit.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
error[E0271]: type mismatch resolving `[u8; 3] <: <Range<usize> as SliceIndex<[u8]>>::Output`
--> $DIR/slice-match-byte-lit.rs:6:9
|
LL | match &s[0..3] {
| -------- this expression has type `&<std::ops::Range<usize> as SliceIndex<[u8]>>::Output`
LL | b"uwu" => {}
| ^^^^^^ types differ

error: aborting due to previous error

For more information about this error, try `rustc --explain E0271`.

0 comments on commit db3c394

Please sign in to comment.