mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-03 10:47:16 +00:00
30 lines
667 B
Rust
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);
|
|
}
|