Skip to content

Test plan for UnsignedRightShift feature #60433

@AlekseyTs

Description

@AlekseyTs

Feature branch - https://github.com/dotnet/roslyn/tree/features/UnsignedRightShift
Specification - https://github.com/dotnet/csharplang/blob/main/proposals/csharp-11.0/unsigned-right-shift-operator.md
Proposal: dotnet/csharplang#4682

Compiler

  • LangVer
  • Update test plan
  • Verify behavior of VB
  • Verify behavior of C++/CLI
  • Inform F# of changes

Public APIs

  • IOperation
    • shift: TestBinaryOperators_UnsignedRightShift
    • compound assignment?
    • CFG
  • Symbol display on >>> operator
  • SyntaxNormalizer
  • GetSymbolInfo
    • Intrinsic operators
    • User-defined operators
  • GetSpeculativeSymbolInfo
  • API review

Parsing

  • Expressions
  • Disambiguation with nested generics
    • Presense of tuple types at various levels
  • Operator declaration
    • Regular declarations
    • Explicit implementations

Semantics

  • Operator is called
    • Intrinsic operators
    • User-defined operators
  • dynamic LHS or RHS
  • Lifted operators
    • Intrinsic
    • User-defined
  • Constants and constant folding
  • Disallowed in expression tree (BuiltIn_Lifted_ExpressionTree_*)
  • Results on hover in EE/debugger

Productivity

  • F1 on >>> and >>>= - tests are in place, need to add actual doc pages
  • Declaring >>> operator
  • Using operator in expressions
  • QuickInfo should show used operator
    • User-defined operators
    • Intrinsic operators
  • >>> token classification
  • Syntax normalizer for declarations
  • Go to definition from operator usage and explicit interface implementation
  • Find all references for operators
  • Go To Implementation
  • Operator completion for explicit implementation
  • Operator completion when available (in expressions on types with the operator)
    • Intrinsic operators
    • User-defined operators
  • Implement interface fixer
  • Formatter tests
    • Signature formatting
    • Indentation inside operator
  • Navbar
  • Object Browser
  • Metadata as source
  • Call hierarchy window
  • Code lens

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions