rust/tests/ui/resolve/resolve-same-name-struct.rs
2025-07-01 15:29:29 +05:00

30 lines
667 B
Rust

//! Test that name resolution works correctly when a struct and its constructor
//! function have the same name within a nested scope. This checks that the
//! compiler can distinguish between type names and value names in the same
//! namespace.
//@ run-pass
struct Point {
i: isize,
}
impl Point {
fn get_value(&self) -> isize {
return 37;
}
}
// Constructor function with the same name as the struct
#[allow(non_snake_case)]
fn Point(i: isize) -> Point {
Point { i }
}
pub fn main() {
// Test that we can use the constructor function
let point = Point(42);
assert_eq!(point.i, 42);
assert_eq!(point.get_value(), 37);
}