Protocols with default methods in extension fail to compile
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza con la fase de análisis y la generación de interfaces extraídas descritas en la issue, y después reproduce el ejemplo de protocol y extension. Traza cómo se distinguen los requisitos del protocol de las declaraciones en las extensions; se considera terminado cuando el ejemplo compila sin tratar el método de la extension como un requisito abstracto de la interfaz, y las declaraciones de la extension se representan de acuerdo con el comportamiento previsto de los métodos predeterminados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
If you have a protocol which has a default method implemented in an extension, the generated code will fail to compile because the Java compiler will complain about the extracted interface "is not abstract and does not override abstract method".
Consider the following
protocol MyProtocol {}
extension MyProtocol {
public func myDefaultMethod() {}
}
will fail with:
error: MyProtocol is not abstract and does not override abstract method myDefaultMethod() in MyProtocol
Instead we should not generate any methods, variables and initializers defined in extensions as part of the extracted interface. But we could generate them as default methods instead. This means we need to change the analysis phase to know what decls are defined in an extension and which come from the protocol requirements themselves.
- Lenguaje dominante
- Swift
- Estrellas
- 1.3k
- Forks
- 127
- Merge medio
- 2 d 14 h
- PR fusionados (30 d)
- 5
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de swiftlang/swift-java
-
wrap-java: Optional convenience methods can fail to compile when a parameter shadows the method nameAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
swiftlang/swift-java#945 ·
Los mantenedores suelen responder en 1 día
-
android
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
swiftlang/swift-java#663 · 4 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 56/100
swiftlang/swift-java#949 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
swiftlang/swift-java#948 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 54/100
swiftlang/swift-java#947 ·
Los mantenedores suelen responder en 1 día
Todos los issues de swiftlang/swift-java
Issues similares
-
Mac proof: carets blink and the inspector's thread lands in different places from run to runAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
AttilaTheFun/visor#244 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
abue-ammar/tinycast#1819 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[Bug]: cua-driver skill fails Agent Skills frontmatter validationPosiblemente ocupada @Mearman la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
follow-up needs-triage S3: minor
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
manaflow-ai/cmux#36856 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
type:defect
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
snowplow/snowplow-ios-tracker#962 ·