private static bool IsNotNullableReplacable(this NameSyntax name, TypeSyntax reducedName) { var isNotNullableReplacable = false; var isLeftSideOfDot = name.IsLeftSideOfDot(); var isRightSideOfDot = name.IsRightSideOfDot(); if (reducedName.CSharpKind() == SyntaxKind.NullableType) { if (((NullableTypeSyntax)reducedName).ElementType.CSharpKind() == SyntaxKind.OmittedTypeArgument) { isNotNullableReplacable = true; } else { isNotNullableReplacable = name.IsLeftSideOfDot() || name.IsRightSideOfDot(); } } return isNotNullableReplacable; }