Skip to content

Analyzer: Validate literal arguments to StringSyntaxAttribute parameters/members #64009

Description

@stephentoub

#62995 added the new StringSyntaxAttribute, and we annotated a bunch of APIs with it, for the three syntaxes currently identified: Regex, DateTimeFormat, and Json.

Visual Studio will look for these and use it to influence its colorization, IntelliSense, etc., but we can also use them to help warn developers at dev time / build time when they've written something that will produce run-time failures. We can add an analyzer for each syntax that will warn on the literal provided, e.g. these would warn

var r = new Regex("[abc"); //  Invalid pattern '[abc' at offset 4. Unterminated [] set.
DateTime.ParseExact(DateTime.Now.ToString(), "c", null); // Invalid format specifier

Activity

  1. ghost added
    untriagedNew issue has not been triaged by the area owner
    on Jan 19, 2022
  2. removed
    untriagedNew issue has not been triaged by the area owner
    on Jul 15, 2022
  3. added this to the Future milestone on Jul 15, 2022
  4. added
    api-suggestionEarly API idea and discussion, it is NOT ready for implementation
    on Nov 9, 2022
  5. modified the milestones: Future, 8.0.0 on Nov 11, 2022
  6. modified the milestones: 8.0.0, Future on Jul 24, 2023
  7. added
    api-ready-for-reviewAPI is ready for review, it is NOT ready for implementation
    and removed
    api-suggestionEarly API idea and discussion, it is NOT ready for implementation
    on Jul 11, 2026
  8. bartonjs commented on Sep 1, 2026

    @bartonjs
    Member

    Video

    Looks good as proposed.

    Each different supported syntax should use a different diagnostic code.

    Category: Reliability
    Severity: Warning

  9. added
    api-approvedAPI was approved in API review, it can be implemented
    and removed
    api-ready-for-reviewAPI is ready for review, it is NOT ready for implementation
    on Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    api-approvedAPI was approved in API review, it can be implementedarea-System.Runtimecode-analyzerMarks an issue that suggests a Roslyn analyzer

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions