[SR-15111] “Type of expression is ambiguous” error when initializing a class

Abierto
#57,437 13 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
32/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
swift
Área
compilers

Línea de trabajo

Ejecuta el ejemplo de Swift proporcionado en el entorno de Xcode indicado y compara los diagnósticos del argumento directo de un miembro opcional y de la variable intermedia. Investiga el comportamiento del comprobador de tipos del compilador descrito por las etiquetas Compiler y TypeChecker; se considera terminado cuando la llamada directa informa del mismo diagnóstico de incompatibilidad de tipos que la segunda llamada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug compiler diagnostics quality expressions good first issue optional chaining swift 5.9 type checker type inference
Previous ID SR-15111
Radar rdar://problem/82407752
Original Reporter elidy (JIRA User)
Type Bug
Environment

Xcode Version 13.0 beta 4 (13A5201i)

Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug, DiagnosticsQoI, StarterBug, TypeChecker
Assignee elidy (JIRA)
Priority Medium

md5: 37c1160eb7b2424ea42b3ec849906fef

Issue Description:

When a class is initialized, passing an argument as a property of an optional class instance of incorrect type results in “Type of expression is ambiguous” error.

 class IntClass {
    var int: Int?
    
    init(int: Int?) {
        self.int = int
    }
}

class StringClass {
    var string: String? = "hello"
}

var stringClass: StringClass? = StringClass()

IntClass(int: stringClass?.string)
//Type of expression is ambiguous without more context
//Expected error: Cannot convert value of type 'String?' to expected argument type 'Int?'

var stringValue = stringClass?.string
IntClass(int: stringValue)
//Cannot convert value of type 'String?' to expected argument type 'Int?'

Lenguaje dominante
Swift
Estrellas
70.4k
Forks
10.8k
Merge medio
2 d 2 h
PR fusionados (30 d)
461

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de swiftlang/swift

Todos los issues de swiftlang/swift

Issues similares

Más issues de Swift

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.