Skip to content

Commit 26ef17d

Browse files
committed
Add regression test for #22312
Closes #22312
1 parent edf29a7 commit 26ef17d

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

src/test/compile-fail/issue-22312.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
use std::ops::Index;
12+
13+
pub trait Array2D: Index<usize> {
14+
fn rows(&self) -> usize;
15+
fn columns(&self) -> usize;
16+
fn get<'a>(&'a self, y: usize, x: usize) -> Option<&'a <Self as Index<usize>>::Output> {
17+
if y >= self.rows() || x >= self.columns() {
18+
return None;
19+
}
20+
let i = y * self.columns() + x;
21+
let indexer = &(*self as &Index<usize, Output = <Self as Index<usize>>::Output>);
22+
//~^ERROR non-scalar cast
23+
Some(indexer.index(i))
24+
}
25+
}
26+
27+
fn main() {}

0 commit comments

Comments
 (0)