@@ -778,4 +778,64 @@ public Void visitCompilationUnit(CompilationUnitTree node, Void aVoid) {
778778 }
779779 }
780780
781+ public void testImproperlyMappedCommentsMembersStartFromModifiers () throws Exception {
782+ File testFile = new File (work , "Test.java" );
783+ final String origin =
784+ """
785+ public class Test {
786+ static final int I = 1; //trailing
787+
788+ //preceding
789+ @Deprecated
790+ void test() {
791+ }
792+
793+ Test() {}
794+ }
795+ """ ;
796+ TestUtilities .copyStringToFile (testFile , origin );
797+ JavaSource src = getJavaSource (testFile );
798+
799+ Task <WorkingCopy > task = new Task <WorkingCopy >() {
800+ public void run (final WorkingCopy workingCopy ) throws Exception {
801+ workingCopy .toPhase (JavaSource .Phase .PARSED );
802+ final CommentHandlerService service = CommentHandlerService .instance (workingCopy .impl .getJavacTask ().getContext ());
803+
804+ ErrorAwareTreeScanner <Void , Void > w = new ErrorAwareTreeScanner <Void , Void >() {
805+ @ Override
806+ public Void visitClass (ClassTree node , Void p ) {
807+ super .visitClass (node , p );
808+
809+ //verify the comments for the field I are not mapped:
810+ Tree fieldMember = node .getMembers ().get (0 );
811+
812+ assertEquals (Tree .Kind .VARIABLE , fieldMember .getKind ());
813+ assertEquals ("I" , ((VariableTree ) fieldMember ).getName ().toString ());
814+
815+ CommentSetImpl fieldCommentSet = service .getComments (fieldMember );
816+
817+ assertFalse (fieldCommentSet .areCommentsMapped ());
818+ verify (fieldMember , CommentSet .RelativePosition .PRECEDING , service );
819+ verify (fieldMember , CommentSet .RelativePosition .INLINE , service );
820+ verify (fieldMember , CommentSet .RelativePosition .TRAILING , service );
821+ return null ;
822+ }
823+
824+ @ Override
825+ public Void visitMethod (MethodTree node , Void p ) {
826+ if (node .getName ().contentEquals ("test" )) {
827+ workingCopy .getTreeUtilities ().getComments (node .getModifiers (), true );
828+ verify (node , CommentSet .RelativePosition .PRECEDING , service , "//preceding" );
829+ verify (node , CommentSet .RelativePosition .INLINE , service );
830+ verify (node , CommentSet .RelativePosition .TRAILING , service );
831+ }
832+ return super .visitMethod (node , p );
833+ }
834+ };
835+ w .scan (workingCopy .getCompilationUnit (), null );
836+ }
837+ };
838+
839+ src .runModificationTask (task );
840+ }
781841}
0 commit comments