blob: 1d968f8cf4af74f496f6df30a4f30c176ce58201 [file] [log] [blame]
//! Test basic closure syntax and usage with generic functions.
//!
//! This test checks that closure syntax works correctly for:
//! - Closures with parameters and return values
//! - Closures without parameters (both expression and block forms)
//! - Integration with generic functions and FnOnce trait bounds
//@ run-pass
fn f<F>(i: isize, f: F) -> isize
where
F: FnOnce(isize) -> isize,
{
f(i)
}
fn g<G>(_g: G)
where
G: FnOnce(),
{
}
pub fn main() {
// Closure with parameter that returns the same value
assert_eq!(f(10, |a| a), 10);
// Closure without parameters - expression form
g(|| ());
// Test closure reuse in generic context
assert_eq!(f(10, |a| a), 10);
// Closure without parameters - block form
g(|| {});
}