public static PathWalker Borrow(ExpressionSyntax node) { var walker = BorrowAndVisit(node, () => new PathWalker()); if (walker.identifierNames.TryFirst(out var first)) { if (IdentifierTypeWalker.IsLocalOrParameter(first)) { walker.identifierNames.Clear(); } } return(walker); }
private static bool TryGetAssignedExpression(ITypeSymbol containingType, SyntaxNode node, out ExpressionSyntax backing) { backing = null; if (node.IsMissing) { return(false); } if (node is IdentifierNameSyntax identifierName && !IdentifierTypeWalker.IsLocalOrParameter(identifierName) && !containingType.TryFindProperty(identifierName.Identifier.ValueText, out _)) { backing = identifierName; }