Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision b6424d96bff612f23b49fac429887c0b6bc21a2f)
+++ src/Parser/parser.cc	(revision d88f256ade0eaa8dd3de01f0df046f5252ccb73e)
@@ -5111,6 +5111,6 @@
     {
 			Token fn;
-			fn.str = new std::string( "?{}" ); // location undefined
-			(yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );
+			fn.str = new std::string( "?{}" ); // location undefined - use location of '{'?
+			(yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) );
 		}
     break;
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision b6424d96bff612f23b49fac429887c0b6bc21a2f)
+++ src/Parser/parser.yy	(revision d88f256ade0eaa8dd3de01f0df046f5252ccb73e)
@@ -389,6 +389,6 @@
 		{
 			Token fn;
-			fn.str = new std::string( "?{}" ); // location undefined
-			$$ = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 ) ) );
+			fn.str = new std::string( "?{}" ); // location undefined - use location of '{'?
+			$$ = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 ) ) ) );
 		}
 	;
