fn ret(s string) string {
	return s
}

fn raise() ?string {
	return none
}

fn xx_prop() string {
	s := ret(raise()?)
	return s
}

struct St {
mut:
	z f64
}

fn (mut s St) raise() !f64 {
	return error('some error')
}

fn retf(f f64) f64 {
	return f
}

fn (mut s St) aa_propagate() {
	f := retf(s.raise()!)
	s.z = 7.5
	println(f)
}
