Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision 3403534e2b90c8ea3761ef2743ab04b0f002e8d8)
+++ src/Parser/parser.cc	(revision b6fe7e6c491f467e31d7ef488c6c0c23df6534a8)
@@ -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 3403534e2b90c8ea3761ef2743ab04b0f002e8d8)
+++ src/Parser/parser.yy	(revision b6fe7e6c491f467e31d7ef488c6c0c23df6534a8)
@@ -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 ) ) ) );
 		}
 	;
