- map<string, FunctionDeclaration *>::iterator i = stage->functions.lower_bound(call.name);
- if(i!=stage->functions.end() && i->second->name==call.name)
+ bool have_declaration = call.constructor;
+ if(!call.constructor)
+ {
+ map<string, FunctionDeclaration *>::iterator i = stage->functions.lower_bound(call.name);
+ have_declaration = (i!=stage->functions.end() && i->second->name==call.name);
+ }
+
+ if(have_declaration)