From 0c0171c9b53e40481e68ec8042b5c204168e95d1 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Mon, 31 Jul 2023 11:43:26 -0700 Subject: [PATCH] Fix comment duplication bug. The change on line 130 (filter out ancestor comments) is the relevant one. This is just a matter of accidentally deleting one tiny bit of code that was in master. --- core/src/main/java/org/lflang/ast/ToLf.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/lflang/ast/ToLf.java b/core/src/main/java/org/lflang/ast/ToLf.java index 929dbf6d54..9646bea79c 100644 --- a/core/src/main/java/org/lflang/ast/ToLf.java +++ b/core/src/main/java/org/lflang/ast/ToLf.java @@ -125,9 +125,13 @@ public MalleableString doSwitch(EObject eObject) { .forEach(allComments::add); } else { Stream precedingComments = - ASTUtils.getPrecedingComments(node, doesNotBelongToPrevious).map(String::strip); + ASTUtils.getPrecedingComments(node, doesNotBelongToPrevious.and(doesNotBelongToAncestor)) + .map(String::strip); precedingComments.forEachOrdered(allComments::add); - getContainedCodeComments(node).stream().map(INode::getText).forEach(allComments::add); + getContainedCodeComments(node).stream() + .filter(doesNotBelongToAncestor) + .map(INode::getText) + .forEach(allComments::add); } allComments.addAll(followingComments); if (allComments.stream().anyMatch(s -> KEEP_FORMAT_COMMENT.matcher(s).matches())) { @@ -146,6 +150,7 @@ static Set getAncestorComments(INode node) { ancestor = ancestor.getParent()) { ancestorComments.addAll(getContainedCodeComments(ancestor)); ASTUtils.getPrecedingCommentNodes(ancestor, u -> true).forEachOrdered(ancestorComments::add); + ancestorComments.addAll(getContainedCodeComments(ancestor)); } return ancestorComments; }