wrap-java: Optional convenience methods can fail to compile when a parameter shadows the method name

Ouverte Adaptée aux débutants
#945 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
70/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
java, swift
Domaine
backend

Piste de recherche

Commencez par localiser le code de wrap-java qui génère les méthodes de commodité pour Optional et examinez comment il construit l’appel à la méthode d’origine lorsqu’un paramètre porte le même nom. L’exemple fournit un reproducer minimal : enveloppez arg0(OptionalLong value) et vérifiez le Swift généré. Le travail est terminé lorsque l’appel généré cible la méthode d’origine et compile ; l’issue ne nomme ni test ni fichier source.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Problem

Optional convenience methods generated by wrap-java invoke the original method without a receiver. A parameter can therefore shadow that method and make the generated Swift fail to compile.

Example

This Java declaration:

public OptionalLong arg0(OptionalLong value) { return value; }

produces a Swift convenience method whose argument is also named arg0:

open func arg0Optional(_ arg0: Int64?) -> Int64? {
  Optional(javaOptional: arg0(arg0.toJavaOptional()))
}

The body attempts to call the Optional argument as a function instead of calling the original method.

Reference workaround implementation: https://github.com/qoncept/swift-java/pull/8

Langage dominant
Swift
Étoiles
1.3k
Forks
127
Merge moyen
1 h 6 min
PR mergées (30 j)
3

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de swiftlang/swift-java

Toutes les issues de swiftlang/swift-java

Issues similaires

Plus d'issues Swift

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.