Classes with a type parameter fail to compile

Ouverte
#533 3 commentaires 1 réaction 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é
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
À clarifier
Activité
À l'abandon
Stack technique
swift
Domaine
compilers

Piste de recherche

Commencez par Samples/SwiftJavaExtractFFMSampleApp/Sources/MySwiftLibrary/Foo.swift et examinez le wrapper Swift généré au niveau de la fonction swiftjava_getType_MySwiftLibrary_Foo indiquée. Reproduisez l’échec de compilation pour Foo et suivez la manière dont le type générique est représenté dans le wrapper. Le travail est terminé lorsque les wrappers Swift se compilent pour la classe publique générique sans l’erreur d’inférence du paramètre générique.

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

Description

feature:jextract

I searched through the issues, but couldn't find an explicit issue about the missing support for generics. In particular if you have a public class such as:

public class Foo<T> {
    public init() {}
}

in Samples/SwiftJavaExtractFFMSampleApp/Sources/MySwiftLibrary/Foo.swift, then the Swift wrappers compilation currently fails with:

error: generic parameter 'T' could not be inferred
 26 | @_cdecl("swiftjava_getType_MySwiftLibrary_Foo")
 27 | public func swiftjava_getType_MySwiftLibrary_Foo() -> UnsafeMutableRawPointer /* Any.Type */ {
 28 |   return unsafeBitCast(Foo.self, to: UnsafeMutableRawPointer.self)
    |                        |- error: generic parameter 'T' could not be inferred
    |                        `- note: explicitly specify the generic arguments to fix this issue
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.