internal static IReadOnlyList<ArgumentSymbol> MakeParameters(params TypeSymbol[] types) { var ret = new List<ArgumentSymbol>(); for (var i = 0; i < types.Length; ++i) { var p = new ArgumentSymbol(); p.Initialize("@@arg" + (i + 1), VariantType.Let, new List<AttributeSymbol>(), types[i]); ret.Add(p); } return ret; }
public static IReadOnlyList<ArgumentSymbol> MakeArgumentTemplateInstanceList(Root root, IReadOnlyList<GenericsInstance> inst, IReadOnlyList<ArgumentSymbol> args) { var ret = new List<ArgumentSymbol>(); foreach (var v in args) { var t = MakeClassTemplateInstance(root, inst, v.DataType); var p = new ArgumentSymbol(); p.Initialize(v.Name, v.VariantType, v.Attribute, t); ret.Add(p); } return ret; }
private ArgumentSymbol ImportArgument(ParameterInfo prm) { var elem = new ArgumentSymbol(); if (ImportDictionary.ContainsKey(prm)) { return (ArgumentSymbol)ImportDictionary[prm]; } ImportDictionary.Add(prm, elem); var attribute = new List<AttributeSymbol>(); AppendEmbededAttribute(attribute, prm); var dt = ImportType(prm.ParameterType); elem.Initialize(prm.Name, VariantType.Var, attribute, dt); return elem; }