Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test plan for "raw string literals" #55306

Closed
28 of 33 tasks
jcouv opened this issue Jul 31, 2021 · 2 comments
Closed
28 of 33 tasks

Test plan for "raw string literals" #55306

jcouv opened this issue Jul 31, 2021 · 2 comments

Comments

@jcouv
Copy link
Member

jcouv commented Jul 31, 2021

Spec: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-11.0/raw-string-literal.md
Championed issue: dotnet/csharplang#4304

Compiler

  • Address PROTOTYPE comments
  • test semantic model APIs (GetTypeInfo in literal and expressions in holes)
  • Review any public API changes
  • nullability
  • consider improving diagnostic for bad indent
  • Expression trees (see AsStringInExpressionTrees_01)
  • constant interpolations (see TestInConstantFieldInitializer...).
  • Update test plan
  • verify order of evaluation of interpolations, definite assignment
  • LangVer
  • balanced and unbalanced open and close braces
  • test parsing with @$$ and $$@ (errors)
  • test interpolated single-line raw string with newlines in interpolation hole/expression
  • nested interpolated strings of different kinds (interpolated, interpolated verbatim, interpolated raw)
  • formats
  • SyntaxNormalizer (see TestSpacingOnRawInterpolatedString)
  • Conversion of interpolations to IFormattable and FormattableString result in calling FormattableStringFactory.Create, otherwise natural type string results in string.Format
  • Newline in format specifier (see TrailingSpaceInFormatSpecifier02)
  • interpolation handlers

Productivity

  • Review IDE code that references SyntaxKind.InterpolatedStringStartToken (there's a few locations)
  • Typing/completion
  • Colorization
  • QuickInfo
    • test multi-line in immediate window and QuickWatch/watch
    • QuickInfo should display constant value
  • Formatting/indentation
  • below minbar below:
  • Display indentation line
  • Convert to raw string literal (PR Add refactoring to convert normal (or verbatim) strings to raw strings. #59180)
  • Add a " on both ends
  • Add a $
  • Interaction with regexes /*regex*/ """[0-9a-z]*"""; (should colorization correctly)
  • Interaction with datetime completion DateTime.Now.ToString(... typing here ...)

IDE follow-up work: #58356
For exploratory testing, see IDE test plan: https://github.com/dotnet/roslyn/blob/main/docs/wiki/Manual-Testing.md

@dotnet-issue-labeler dotnet-issue-labeler bot added Area-Compilers untriaged Issues and PRs which have not yet been triaged by a lead labels Jul 31, 2021
@jcouv jcouv removed the untriaged Issues and PRs which have not yet been triaged by a lead label Jul 31, 2021
@jcouv jcouv added this to the Compiler.Next milestone Jul 31, 2021
@jcouv jcouv modified the milestones: Compiler.Next, 17.2 Dec 7, 2021
@jcouv jcouv added this to Language in Compiler: Julien's umbrellas Dec 7, 2021
@allisonchou
Copy link
Contributor

Link to Roslyn IDE planned feature list: #58356

@jcouv
Copy link
Member Author

jcouv commented Feb 2, 2022

Closing as completed :-) The feature was merged and follow-up IDE work is tracked by #58356

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

4 participants