}
if(defId == null && couldHaveBeenParsedAsId(ref)) {
defId = convertRefIdToDef(ref);
return conclude(sr, isVariadic ?
new TemplateTupleParam(defId) :
new TemplateTypeParam(defId, typeSpecialization, paramDefault.toReference().node));
} else {
defId = defId != null ? defId : createEmptyDefSymbol(ref.getEndPos());
return conclude(sr,
new TemplateValueParam(ref, defId, valueSpecialization, paramDefault.toExpression().node));
}