Android d.ts generator fails to create typings for nested data class

Ouverte
#1,754 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
38/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
android, kotlin, typescript
Domaine
mobile, tooling

Piste de recherche

Commencez par la déclaration de fonction Kotlin liée dans la reproduction et comparez sa sortie avec les typings générés présentés dans l’issue. Suivez le traitement des data classes imbriquées par Android d.ts Generator et vérifiez que cela se termine en régénérant les typings sans l’accolade manquante du module.

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

Description

Environment
Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):

  • CLI: 8.5
  • Cross-platform modules: 8.5.0
  • Android Runtime: 8.5.0
  • Android d.ts Generator : 3.0.0
  • iOS Runtime (if applicable): 8.5.1
  • Plugin(s):

Describe the bug
It seems Android d.ts generator has trouble generating types for data classes declared inside functions.
Generator log output:

Android d.ts Generator Version : 3.0.0
ignoring definitions in missing dependency: android.text.TextWatcher
ignoring definitions in missing dependency: android.view.View$OnFocusChangeListener
Generation of definitions took 712ms.
Typings have been generated in the following directory: ./typings

To Reproduce
This is the kotlin function with class declaration: https://github.com/RedMadRobot/input-mask-android/blob/eee78324eb4cdb4faab3248ef646d5750507b598/inputmask/src/main/kotlin/com/redmadrobot/inputmask/MaskedTextChangedListener.kt#L294

These are the typings generated, you will notice a brace is missing on module pickMask:

export module MaskedTextChangedListener {
	export module pickMask {
	export module ValueListener {
		export class MaskAffinity {
			public static class: java.lang.Class<com.redmadrobot.inputmask.MaskedTextChangedListener.pickMask.MaskAffinity>;
			public component1(): com.redmadrobot.inputmask.helper.Mask;
			public getAffinity(): number;
			public component2(): number;
			public copy(param0: com.redmadrobot.inputmask.helper.Mask, param1: number): com.redmadrobot.inputmask.MaskedTextChangedListener.pickMask.MaskAffinity;
			public hashCode(): number;
			public equals(param0: any): boolean;
			public getMask(): com.redmadrobot.inputmask.helper.Mask;
			public toString(): string;
			public constructor(param0: com.redmadrobot.inputmask.helper.Mask, param1: number);
		}
	}
}

Expected behavior
Typings should be generated without problems.

Langage dominant
C++
Étoiles
563
Forks
144
Merge moyen
10 h 46 min
PR mergées (30 j)
14

Guide de contribution

Ouvrir le guide de contribution

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 NativeScript/android

Toutes les issues de NativeScript/android

Issues similaires

Plus d'issues C++

Recevez les nouvelles issues par e-mail

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