Skip to content

[SR-12399] Bad diagnostic when failing to unwrap an optional #54837

@hamishknight

Description

@hamishknight
Previous ID SR-12399
Radar None
Original Reporter @hamishknight
Type Bug
Status Closed
Resolution Done
Environment

Swift version 5.3-dev (LLVM fa328ef, Swift de46690)
Target: x86_64-apple-darwin18.5.0

Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug, DiagnosticsQoI, TypeChecker
Assignee @hamishknight
Priority Medium

md5: 893b2bc146886084679b87f760198979

Issue Description:

For the following:

func makeArray<T>(_ x: T) -> [T] { [x] }

func foo(_ x: Int?) {
  var s1116 = Set(0...10).subtracting(makeArray(x))
}

We emit the diagnostics:

main.swift:979:20: error: missing argument label '_immutableCocoaSet:' in call [missing_argument_labels]
  var s1116 = Set(0...10).subtracting(makeArray(x))
                   ^
                  _immutableCocoaSet:
main.swift:979:20: error: argument type 'ClosedRange<Int>' expected to be an instance of a class or class-constrained type [cannot_convert_argument_value_anyobject]
  var s1116 = Set(0...10).subtracting(makeArray(x))
                   ^

We should instead provide an optional unwrap diagnostic on x.

Metadata

Metadata

Assignees

Labels

bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.compilerThe Swift compiler itselfdiagnostics QoIBug: Diagnostics Quality of Implementationtype checkerArea → compiler: Semantic analysis

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions