From b234ab08ac1f1253642c9de224ddc77500c195b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Dinis=20Ferreira?= Date: Mon, 13 Jul 2026 10:51:43 +0200 Subject: [PATCH] fix: baseline CPD duplications in migrated ANTLR generators Enabling CPD (#1397, pmd.cpd.min 100000->100) and migrating the AnnotationAware ANTLR generators to Java (#1429) each passed CI in isolation, but their combination on master surfaced 4 intra-file duplications in the migrated generators that neither PR's build saw: CPD was still effectively disabled when #1429's checks ran, and #1397's baseline predated #1429's Java. The snapshot full scan caught it, leaving master red at cpd-check. These are faithfully migrated Xtend generators with parallel rule-emission structure, baselined with file-scoped CPD-OFF markers consistent with #1397's treatment of the analogous FormatJvmModelInferrer. Verified locally: pmd:cpd-check / checkstyle:check / pmd:check all green on com.avaloq.tools.ddk.xtext.generator. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../AnnotationAwareAntlrContentAssistGrammarGenerator.java | 2 ++ .../parser/antlr/AnnotationAwareAntlrGrammarGenerator.java | 2 ++ .../antlr/AnnotationAwareXtextAntlrGeneratorFragment2.java | 2 ++ 3 files changed, 6 insertions(+) diff --git a/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareAntlrContentAssistGrammarGenerator.java b/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareAntlrContentAssistGrammarGenerator.java index 2fcfb612e..df8ddf510 100644 --- a/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareAntlrContentAssistGrammarGenerator.java +++ b/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareAntlrContentAssistGrammarGenerator.java @@ -83,6 +83,8 @@ @SuppressWarnings({"PMD.UnusedFormalParameter", "nls"}) public class AnnotationAwareAntlrContentAssistGrammarGenerator extends AbstractAnnotationAwareAntlrGrammarGenerator { + // CPD-OFF — migrated Xtend generator code, kept faithful + @Inject private ContentAssistGrammarNaming naming; diff --git a/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareAntlrGrammarGenerator.java b/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareAntlrGrammarGenerator.java index 1ec495562..6598569bb 100644 --- a/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareAntlrGrammarGenerator.java +++ b/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareAntlrGrammarGenerator.java @@ -81,6 +81,8 @@ @SuppressWarnings({"checkstyle:MethodName", "PMD.UnusedFormalParameter", "nls"}) public class AnnotationAwareAntlrGrammarGenerator extends AbstractAnnotationAwareAntlrGrammarGenerator { + // CPD-OFF — migrated Xtend generator code, kept faithful + @Inject private GrammarNaming naming; diff --git a/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareXtextAntlrGeneratorFragment2.java b/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareXtextAntlrGeneratorFragment2.java index 133f03de7..df2271861 100644 --- a/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareXtextAntlrGeneratorFragment2.java +++ b/com.avaloq.tools.ddk.xtext.generator/src/com/avaloq/tools/ddk/xtext/generator/parser/antlr/AnnotationAwareXtextAntlrGeneratorFragment2.java @@ -63,6 +63,8 @@ @SuppressWarnings({"PMD.AvoidDuplicateLiterals", "PMD.TooManyMethods", "PMD.LocalVariableNamingConventions", "nls"}) public class AnnotationAwareXtextAntlrGeneratorFragment2 extends XtextAntlrGeneratorFragment2 { + // CPD-OFF — migrated Xtend generator code, kept faithful + private static final String ADDITIONAL_CA_REQUIRED_BUNDLE = "com.avaloq.tools.ddk.xtext"; @Inject