internal static List<InsertionPoint> GetInsertionPoints (IReadonlyTextDocument data, SemanticModel model, ITypeSymbol type, int part) { List<InsertionPoint> result = new List<InsertionPoint> (); type = model.GetEnclosingNamedType (part, default (CancellationToken)) as ITypeSymbol ?? type; var sourceSpan = new TextSpan (part, 0); var filePath = data.FileName; var declaringType = type.DeclaringSyntaxReferences.FirstOrDefault (dsr => dsr.SyntaxTree.FilePath == filePath && dsr.Span.Contains (sourceSpan)) ?? type.DeclaringSyntaxReferences.FirstOrDefault (); if (declaringType == null) return result; return GetInsertionPoints (data, type, result, sourceSpan, declaringType); }