private static Location GetLocationWithToken(TypeSyntax type, SeparatedSyntaxList<BaseTypeSyntax> baseTypes) { int start; int end; if (baseTypes.Count == 1 || baseTypes.First().Type != type) { start = type.GetFirstToken().GetPreviousToken().Span.Start; end = type.Span.End; } else { start = type.SpanStart; end = type.GetLastToken().GetNextToken().Span.End; } return Location.Create(type.SyntaxTree, new TextSpan(start, end - start)); }