private bool AddOrUpdateIndexer(string name, bool isGet, IMethod orig) { var holder = _type as IHasIndexers; if (holder == null) { return(false); } var indx = holder.Indexers.FirstOrDefault(p => p.Name == name); if (indx == null) { holder.Indexers.Add(indx = new IndexerImpl(name)); } indx.Visibility = orig.Visibility; if (isGet) { indx.Type = orig.ReturnType; indx.Getter = ""; } else { indx.Type = orig.Parameters.Last().Type; indx.Setter = ""; } indx.Parameters.Clear(); foreach (var parm in orig.Parameters.Take(orig.Parameters.Count - (isGet ? 0 : 1))) { var myParm = new ParameterImpl(parm.Name, parm.Type); indx.Parameters.Add(myParm); } return(true); }
public IndexerTest(ITestOutputHelper testOutputHelper) { LogSettings.RegisterDefaultLogger <XUnitLogger>(LogLevels.Verbose, testOutputHelper); _indexerTest = _indexerImpl = new IndexerImpl(); }