fn int? abc()
{
	return 1;
}
macro test()
{
	return @catch(abc())~!!;
}

macro test2()
{
	return @catch(abc())~;
}

fn void a()
{
	String s = $typeof(test()).qnameof; // #error: This expression lacks
}

fn void b()
{
	$sizeof(test()); // #error: This expression lacks
}

fn void c()
{
	$sizeof(test2() ?? 1);
}

fn void? d()
{
	$typeof(test2()!) g; // #error: This expression lacks a concrete type
}

macro e()
{
	var g = test2()!; // #error: No type can be inferred from the optional result
}

fn void? h()
{
	e();
}
