예제 #1
0
        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);
        }
예제 #2
0
 public void MapDefinition(AstGenericPlaceholderType typeAst, GenericParameter type)
 {
     references.Add(typeAst, type);
 }
예제 #3
0
 protected virtual void AppendGenericPlaceholderType(StringBuilder builder, AstGenericPlaceholderType genericPlaceholderType)
 {
     builder.Append(genericPlaceholderType);
 }