[Sema] Add warning for ambiguous value assignment when using Optional (#21621)
* [sema] emit a diag if the enum case matches Optional<T>.none
* [test] update tests
* [sema] fix indent
* [test] fix indent
* [test] add more test cases
* [test] add even more test cases
* [sema] move the check to CSApply
* [diag] update diagnostic message
* [test] update tests
* [test] fix conflicts
* [diag] reflow lines
* [sema] reindent using spaces
* [test] adds new line
* [diag] update diagnostic message
* [sema] add support for structs as well
* [test] add more test cases
* [sema] check for enum assoc values
* [test] add more test cases
* [diag] add fixit notes
* [sema] emit fix its
* [diag] rename diag names
* [sema] fit within 80 char line limit
* [sema] use baseUnwrappedType's name directly
* [test] adds nested generic enum tests
* [test] fix indent
* [test] adds fixit check
* [test] re-indent some enums
* [sema] [csapply] extract code into a separate function
* [sema] [csapply] remove redundant vardecl check
* [sema] [csapply] reindent
* [sema] [csapply] removes extra line
* [sema] [csapply] use cantype & check for extension on Optional
* [diag] update diagnostic message
* [sema] [csapply] fix ident
* [test] update tests
* [sema] [csapply] fix typo and remove redundant isOptional check
* [sema] [csapply] update var name & comments
* [sema] [csapply] bring back isOptional check
* [test] add expected-note for fix-its
* [sema] [csapply] fix a crash
* [sema] [csapply] move isOptional check outside
* [test] fix indent
* [test] fix typo
* [sema] [csapply] use baseTyUnwrapped for fixit
* [test] fix columns for fixits
* [test] update column numbers
* [sema] [csapply] move code out of for loop