private AnonymousTypeTemplateSymbol CreatePlaceholderTemplate(Microsoft.CodeAnalysis.Emit.AnonymousTypeKey key) { var fields = key.Fields.SelectAsArray(f => new AnonymousTypeField(f.Name, Location.None, (TypeSymbol)null)); var typeDescr = new AnonymousTypeDescriptor(fields, Location.None); return(new AnonymousTypeTemplateSymbol(this, typeDescr)); }
internal IReadOnlyDictionary <Microsoft.CodeAnalysis.Emit.AnonymousTypeKey, Microsoft.CodeAnalysis.Emit.AnonymousTypeValue> GetAnonymousTypeMap() { var result = new Dictionary <Microsoft.CodeAnalysis.Emit.AnonymousTypeKey, Microsoft.CodeAnalysis.Emit.AnonymousTypeValue>(); var templates = GetAllCreatedTemplates(); foreach (AnonymousTypeTemplateSymbol template in templates) { var nameAndIndex = template.NameAndIndex; var key = new Microsoft.CodeAnalysis.Emit.AnonymousTypeKey(template.GetPropertyNames()); var value = new Microsoft.CodeAnalysis.Emit.AnonymousTypeValue(nameAndIndex.Name, nameAndIndex.Index, template); result.Add(key, value); } return(result); }