redhat-developer / redhat-developer/vscode-java

instanceof pattern inside lambda causes issues.

Ouverte
#2,089 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

content-assist upstream
Langage dominant
TypeScript
Étoiles
2.3k
Forks
546
Merge moyen
20 h 1 min
PR mergées (30 j)
11

Description

Using instanceof pattern inside of lambdas breaks multiple features. Examples:

  • hovering over elements stops showing the signature
  • Renaming from inside the method with the pattern pops an internal error (https://pastebin.com/iTZDjVq0)
  • Attempting to Go To Definition of a field or method doesn't work inside the method with the pattern
  • Sometime intellisense stops suggesting things
Environment
  • Operating System: Windows 10 PRO 1909
  • JDK version: Graalvm Java 16 21.1.0
  • Visual Studio Code version: 1.59.1(2021-08-19)
  • Java extension version: v0.81.0

[Please attach a sample project reproducing the error]

public class Test {
    public static final void bug() {
        Optional.empty().ifPresent(o-> {
            if(o instanceof byte[] array) {
                Object local = null;
            }
        });
    }
}

Please attach logs

https://pastebin.com/iTZDjVq0
https://pastebin.com/bc7rGyfE

Additional Informations

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.

Piste de recherche

Commencez par ouvrir l’exemple Java fourni dans VS Code avec la Java extension indiquée et reproduisez les échecs de hovering, rename, Go To Definition et IntelliSense. Activez les Java extension logs à l’aide du guide de troubleshooting lié et comparez le comportement avec les deux pastebins liés. Le travail est considéré comme terminé lorsque ces fonctionnalités du langage fonctionnent dans le pattern instanceof utilisé dans le lambda.

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

Évaluation

Stack technique
java, typescript
Domaine
developer-experience, devtools
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
52/100

Recevez les nouvelles issues par e-mail

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