redhat-developer / redhat-developer/vscode-java

Annotation processor in project incorrectly yields "[Java] <generated type> cannot be resolved to a type"

Aberta
#682 3 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

codegen
Linguagem predominante
TypeScript
Estrelas
2.3k
Forks
547
Merge médio
20h 1min
PRs com merge (30d)
11

Descrição

I have access to a specific (large) project here which makes use of

@SupportedAnnotationTypes({"the.namespace.TheAnnotation"})
@SupportedSourceVersion(SourceVersion.RELEASE_10)

to create an annotation processor

public class TheAnnotationProcessor extends AbstractProcessor {

for an annotation the.namespace.TheAnnotation in that project

public @interface TheAnnotation {

which produces an interface (e.g. GeneratedInterfaceSpecificMapper, see below) with plenty of default. In the very same project, this annotation is also applied to some classes,

@TheAnnotation(Specific.class)
public class SpecificMapper implements GeneratedInterfaceSpecificMapper {  

Evidently, maven discovers the annotation, the annotation processor, runs code generation through the processor (files appear in generated-sources/annotations/...) and is able to also compile the source files that make use of the GeneratedInterfaceSpecificMapper.

The vscode plugin flags the type GeneratedInterfaceSpecificMapper as faulty, with "[Java] cannot be resolved to a type". This seems to indicate that the vscode plugin is not aware of the generated artefacts in generated-sources/annotations/...

I have had a look at https://www.baeldung.com/java-annotation-processing-builder to see whether this produces the error - alas, that setup there seems to be too clean / too simplistic to trigger the problem.

Environment
  • Operating System: Linux Fedora 28
  • JDK version: 10.0.2
  • Visual Studio Code version: 1.28.2
  • Java extension version: java-0.33.0-1252.vsix
Steps To Reproduce

<large project, will try to find time to reduce>

Current Result
  • builds fine in maven
  • red squiggles in IDE / syntax check failure
Expected Result
  • builds fine in maven
  • no red squiggles in IDE
Additional Informations

Not sure whether this related to the issues reported for Lombok - e.g #580 or #458

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelo caminho de processamento de anotações da extensão Java e pela saída em generated-sources/annotations/... descrita no relatório; reproduza a discrepância entre o Maven e a IDE usando o processador de anotações referenciado e GeneratedInterfaceSpecificMapper. É necessário um projeto reduzido ou uma reprodução equivalente, e considera-se concluído quando o Maven continua fazendo o build enquanto a IDE não relata mais o tipo gerado como não resolvido.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
java, typescript, vscode
Domínio
developer-experience, devtools
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
30/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.