private IAstTypeReference InferType(AstParameterDefinition parameter, IAstFunctionDefinition function, ref int genericIndex) { var types = new HashSet <IAstTypeReference>(); CollectTypesFromUsages(function, parameter, types); if (types.Count == 1) { return(types.Single()); } var placeholder = new AstGenericPlaceholderType("T" + genericIndex, p => types); genericIndex += 1; return(placeholder); }
public void MapDefinition(AstGenericPlaceholderType typeAst, GenericParameter type) { references.Add(typeAst, type); }
protected virtual void AppendGenericPlaceholderType(StringBuilder builder, AstGenericPlaceholderType genericPlaceholderType) { builder.Append(genericPlaceholderType); }