RenderSVGContext parentBuilder2 = getParentBuilder(parentSEN);
String key = getKey(parentSEN);
+ n.setIgnore(false);
Element doc = renderSVGNode((IG2DNode)node);
+ n.setIgnore(true);
String svg = printSVGDocument(doc);
parentBuilder2.append(SELECTION_SECTION, "\n<g style=\"visibility:hidden\" class=\"selection\" id=\"" + key + "\">");
parentBuilder2.append(SELECTION_SECTION, svg);
parentBuilder2.append(SELECTION_MASK_SECTION,"></rect>");
}
parentBuilder2.append(SELECTION_MASK_SECTION,"\n</g>");
+
}
} else if (node instanceof SVGNode) {
SVGNode svg = (SVGNode)node;
return Types.metaVar(Kinds.STAR);
}
if(alias != null) {
- if(parameters.length != alias.getArity()) {
+ int arity = alias.getArity();
+ if(parameters.length < arity) {
context.getErrorLog().log(location, "Wrong number of parameters are given to the type alias. Expected " +
- alias.getArity() + " parameters, got " + parameters.length + " parameters.");
+ arity + " parameters, got " + parameters.length + " parameters.");
return Types.metaVar(Kinds.metaVar());
}
- Type[] parameterTypes = new Type[parameters.length];
- for(int i=0;i<parameters.length;++i)
+ Type[] parameterTypes = new Type[arity];
+ for(int i=0;i<arity;++i)
parameterTypes[i] = parameters[i].toType(context, Kinds.metaVar());
- return alias.body.replace(alias.parameters, parameterTypes);
+ Type result = alias.body.replace(alias.parameters, parameterTypes);
+ for(int i=arity;i<parameters.length;++i)
+ result = Types.apply(result, parameters[i].toType(context, Kinds.metaVar()));
+ return result;
}
}