Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 77448 Details for
Bug 86769
[javadoc] Warn/Error for 'Missing javadoc comments' doesn't recognize private inner classes
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
patch + test case
b87500_b86769_on_top_HEAD(v809)_v13.txt (text/plain), 43.87 KB, created by
Eric Jodet
on 2007-08-31 04:45:22 EDT
(
hide
)
Description:
patch + test case
Filename:
MIME Type:
Creator:
Eric Jodet
Created:
2007-08-31 04:45:22 EDT
Size:
43.87 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java,v >retrieving revision 1.82 >diff -u -r1.82 FieldDeclaration.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java 12 Apr 2007 10:37:18 -0000 1.82 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java 31 Aug 2007 08:44:47 -0000 >@@ -10,12 +10,15 @@ > *******************************************************************************/ > package org.eclipse.jdt.internal.compiler.ast; > >+import org.eclipse.jdt.core.compiler.IProblem; > import org.eclipse.jdt.internal.compiler.ASTVisitor; > import org.eclipse.jdt.internal.compiler.impl.*; > import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; > import org.eclipse.jdt.internal.compiler.codegen.*; > import org.eclipse.jdt.internal.compiler.flow.*; > import org.eclipse.jdt.internal.compiler.lookup.*; >+import org.eclipse.jdt.internal.compiler.problem.ProblemReporter; >+import org.eclipse.jdt.internal.compiler.problem.ProblemSeverities; > > public class FieldDeclaration extends AbstractVariableDeclaration { > >@@ -251,14 +254,35 @@ > } > // Resolve Javadoc comment if one is present > if (this.javadoc != null) { >- /* >- if (classScope != null) { >- this.javadoc.resolve(classScope); >- } >- */ > this.javadoc.resolve(initializationScope); >- } else if (this.binding.declaringClass != null && !this.binding.declaringClass.isLocalType()) { >- initializationScope.problemReporter().javadocMissing(this.sourceStart, this.sourceEnd, this.binding.modifiers); >+ } else if (this.binding != null && this.binding.declaringClass != null && !this.binding.declaringClass.isLocalType()) { >+ // Set javadoc visibility >+ int javadocVisibility = this.binding.modifiers & ExtraCompilerModifiers.AccVisibilityMASK; >+ ProblemReporter reporter = initializationScope.problemReporter(); >+ int severity = reporter.computeSeverity(IProblem.JavadocMissing); >+ if (severity != ProblemSeverities.Ignore && classScope != null) { >+ TypeDeclaration enclosingType = classScope.referenceType(); >+ while (enclosingType != null) { >+ switch (enclosingType.modifiers & ExtraCompilerModifiers.AccVisibilityMASK) { >+ case ClassFileConstants.AccPrivate: >+ javadocVisibility = ClassFileConstants.AccPrivate; >+ break; >+ case ClassFileConstants.AccDefault: >+ if (javadocVisibility != ClassFileConstants.AccPrivate) { >+ javadocVisibility = ClassFileConstants.AccDefault; >+ } >+ break; >+ case ClassFileConstants.AccProtected: >+ if (javadocVisibility == ClassFileConstants.AccPublic) { >+ javadocVisibility = ClassFileConstants.AccProtected; >+ } >+ break; >+ } >+ enclosingType = enclosingType.enclosingType; >+ } >+ } >+ int javadocModifiers = (this.binding.modifiers & ~ExtraCompilerModifiers.AccVisibilityMASK) | javadocVisibility; >+ reporter.javadocMissing(this.sourceStart, this.sourceEnd, severity, javadocModifiers); > } > } finally { > initializationScope.initializedField = previousField; >Index: compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java,v >retrieving revision 1.137 >diff -u -r1.137 TypeDeclaration.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java 25 Apr 2007 16:59:23 -0000 1.137 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java 31 Aug 2007 08:44:48 -0000 >@@ -1091,10 +1091,35 @@ > // if the type is package-info, the javadoc was resolved as part of the compilation unit javadoc > this.javadoc.resolve(this.scope); > } >- } else if (sourceType != null && !sourceType.isLocalType()) { >- this.scope.problemReporter().javadocMissing(this.sourceStart, this.sourceEnd, sourceType.modifiers); >- } >- >+ } else if (!sourceType.isLocalType()) { >+ // Set javadoc visibility >+ int visibility = sourceType.modifiers & ExtraCompilerModifiers.AccVisibilityMASK; >+ ProblemReporter reporter = this.scope.problemReporter(); >+ int severity = reporter.computeSeverity(IProblem.JavadocMissing); >+ if (severity != ProblemSeverities.Ignore && this.enclosingType != null) { >+ TypeDeclaration enclosing = this.enclosingType; >+ while (enclosing != null) { >+ switch (enclosing.modifiers & ExtraCompilerModifiers.AccVisibilityMASK) { >+ case ClassFileConstants.AccPrivate: >+ visibility = ClassFileConstants.AccPrivate; >+ break; >+ case ClassFileConstants.AccDefault: >+ if (visibility != ClassFileConstants.AccPrivate) { >+ visibility = ClassFileConstants.AccDefault; >+ } >+ break; >+ case ClassFileConstants.AccProtected: >+ if (visibility == ClassFileConstants.AccPublic) { >+ visibility = ClassFileConstants.AccProtected; >+ } >+ break; >+ } >+ enclosing = enclosing.enclosingType; >+ } >+ } >+ int javadocModifiers = (this.binding.modifiers & ~ExtraCompilerModifiers.AccVisibilityMASK) | visibility; >+ reporter.javadocMissing(this.sourceStart, this.sourceEnd, severity, javadocModifiers); >+ } > } catch (AbortType e) { > this.ignoreFurtherInvestigation = true; > return; >Index: compiler/org/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java,v >retrieving revision 1.92 >diff -u -r1.92 AbstractMethodDeclaration.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java 25 Apr 2007 16:59:23 -0000 1.92 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java 31 Aug 2007 08:44:47 -0000 >@@ -418,7 +418,34 @@ > return; > } > if (this.binding.declaringClass != null && !this.binding.declaringClass.isLocalType()) { >- this.scope.problemReporter().javadocMissing(this.sourceStart, this.sourceEnd, this.binding.modifiers); >+ // Set javadoc visibility >+ int javadocVisibility = this.binding.modifiers & ExtraCompilerModifiers.AccVisibilityMASK; >+ ClassScope classScope = scope.classScope(); >+ ProblemReporter reporter = this.scope.problemReporter(); >+ int severity = reporter.computeSeverity(IProblem.JavadocMissing); >+ if (severity != ProblemSeverities.Ignore && classScope != null) { >+ TypeDeclaration enclosingType = classScope.referenceType(); >+ while (enclosingType != null) { >+ switch (enclosingType.modifiers & ExtraCompilerModifiers.AccVisibilityMASK) { >+ case ClassFileConstants.AccPrivate: >+ javadocVisibility = ClassFileConstants.AccPrivate; >+ break; >+ case ClassFileConstants.AccDefault: >+ if (javadocVisibility != ClassFileConstants.AccPrivate) { >+ javadocVisibility = ClassFileConstants.AccDefault; >+ } >+ break; >+ case ClassFileConstants.AccProtected: >+ if (javadocVisibility == ClassFileConstants.AccPublic) { >+ javadocVisibility = ClassFileConstants.AccProtected; >+ } >+ break; >+ } >+ enclosingType = enclosingType.enclosingType; >+ } >+ } >+ int javadocModifiers = (this.binding.modifiers & ~ExtraCompilerModifiers.AccVisibilityMASK) | javadocVisibility; >+ reporter.javadocMissing(this.sourceStart, this.sourceEnd, severity, javadocModifiers); > } > } > >Index: compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java,v >retrieving revision 1.351 >diff -u -r1.351 ProblemReporter.java >--- compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java 19 Jul 2007 14:07:25 -0000 1.351 >+++ compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java 31 Aug 2007 08:44:50 -0000 >@@ -4265,6 +4265,9 @@ > } > public void javadocMissing(int sourceStart, int sourceEnd, int modifiers){ > int severity = computeSeverity(IProblem.JavadocMissing); >+ this.javadocMissing(sourceStart, sourceEnd, severity, modifiers); >+} >+public void javadocMissing(int sourceStart, int sourceEnd, int severity, int modifiers){ > if (severity == ProblemSeverities.Ignore) return; > boolean overriding = (modifiers & (ExtraCompilerModifiers.AccImplementing|ExtraCompilerModifiers.AccOverriding)) != 0; > boolean report = (this.options.getSeverity(CompilerOptions.MissingJavadocComments) != ProblemSeverities.Ignore) >#P org.eclipse.jdt.core.tests.compiler >Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java,v >retrieving revision 1.36 >diff -u -r1.36 JavadocBugsTest.java >--- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 16 Mar 2007 18:31:22 -0000 1.36 >+++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 31 Aug 2007 08:44:53 -0000 >@@ -25,6 +25,7 @@ > String reportMissingJavadocComments = null; > String reportDeprecation = CompilerOptions.ERROR; > String reportJavadocDeprecation = null; >+ String reportMissingJavadocCommentsVisibility = null; > > public JavadocBugsTest(String name) { > super(name); >@@ -59,6 +60,9 @@ > if (reportMissingJavadocComments != null) { > options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportMissingJavadocComments); > options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsOverriding, CompilerOptions.ENABLED); >+ if (reportMissingJavadocCommentsVisibility != null) { >+ options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsVisibility, reportMissingJavadocCommentsVisibility); >+ } > } else { > options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportInvalidJavadoc); > } >@@ -87,6 +91,7 @@ > reportMissingJavadocTags = CompilerOptions.IGNORE; > reportMissingJavadocComments = CompilerOptions.IGNORE; > reportDeprecation = CompilerOptions.ERROR; >+ reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC; > } > > /** >@@ -5773,4 +5778,464 @@ > "Javadoc: Missing tag for parameter anotherInt\n" + > "----------\n"); > } >+ >+ /** >+ * Bug 86769: [javadoc] Warn/Error for 'Missing javadoc comments' doesn't recognize private inner classes >+ * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=86769" >+ */ >+ public void testBug86769_Classes1() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ reportMissingJavadocCommentsVisibility = CompilerOptions.PROTECTED; >+ runNegativeTest( >+ new String[] { >+ "A.java", >+ "/**\n" + >+ " * Test bug 86769 \n" + >+ " */\n" + >+ "public class A {\n" + >+ " private class Level1Private {\n" + >+ " private class Level2_PrivPriv {}\n" + >+ " class Level2_PrivDef {}\n" + >+ " protected class Level2_PrivPro {}\n" + >+ " public class Level2_PrivPub {}\n" + >+ " }\n" + >+ " class Level1Default{\n" + >+ " private class Level2_DefPriv {}\n" + >+ " class Level2_DefDef {}\n" + >+ " protected class Level2_DefPro {}\n" + >+ " public class Level2_DefPub {}\n" + >+ " }\n" + >+ " protected class Level1Protected {\n" + >+ " private class Level2_ProtPriv {}\n" + >+ " class Level2_ProDef {}\n" + >+ " protected class Level2_ProPro {}\n" + >+ " public class Level2_ProPub {} \n" + >+ " }\n" + >+ " public class Level1Public {\n" + >+ " private class Level2_PubPriv {}\n" + >+ " class Level2_PubDef {}\n" + >+ " protected class Level2_PubPro {}\n" + >+ " public class Level2_PubPub {}\n" + >+ " }\n" + >+ "}\n" >+ }, >+ "----------\n" + >+ "1. ERROR in A.java (at line 17)\n" + >+ " protected class Level1Protected {\n" + >+ " ^^^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for protected declaration\n" + >+ "----------\n" + >+ "2. ERROR in A.java (at line 20)\n" + >+ " protected class Level2_ProPro {}\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for protected declaration\n" + >+ "----------\n" + >+ "3. ERROR in A.java (at line 21)\n" + >+ " public class Level2_ProPub {} \n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for protected declaration\n" + >+ "----------\n" + >+ "4. ERROR in A.java (at line 23)\n" + >+ " public class Level1Public {\n" + >+ " ^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "5. ERROR in A.java (at line 26)\n" + >+ " protected class Level2_PubPro {}\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for protected declaration\n" + >+ "----------\n" + >+ "6. ERROR in A.java (at line 27)\n" + >+ " public class Level2_PubPub {}\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" >+ ); >+ } >+ public void testBug86769_Classes2() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT; >+ runNegativeTest( >+ new String[] { >+ "B.java", >+ "/**\n" + >+ " * Test bug 86769\n" + >+ " */\n" + >+ "public class B {\n" + >+ " class Level0_Default {\n" + >+ " private class Level1Private {\n" + >+ " private class Level2_PrivPriv {}\n" + >+ " class Level2_PrivDef {}\n" + >+ " protected class Level2_PrivPro {}\n" + >+ " public class Level2_PrivPub {}\n" + >+ " }\n" + >+ " }\n" + >+ " public class Level0_Public {\n" + >+ " class Level1Default{\n" + >+ " private class Level2_DefPriv {}\n" + >+ " class Level2_DefDef {}\n" + >+ " protected class Level2_DefPro {}\n" + >+ " public class Level2_DefPub {}\n" + >+ " }\n" + >+ " }\n" + >+ " protected class Level0_Protected {\n" + >+ " protected class Level1Protected {\n" + >+ " private class Level2_ProtPriv {}\n" + >+ " class Level2_ProDef {}\n" + >+ " protected class Level2_ProPro {}\n" + >+ " public class Level2_ProPub {} \n" + >+ " }\n" + >+ " }\n" + >+ " private class Level0_Private {\n" + >+ " public class Level1Public {\n" + >+ " private class Level2_PubPriv {}\n" + >+ " class Level2_PubDef {}\n" + >+ " protected class Level2_PubPro {}\n" + >+ " public class Level2_PubPub {}\n" + >+ " }\n" + >+ " }\n" + >+ "}\n" >+ }, >+ "----------\n" + >+ "1. ERROR in B.java (at line 5)\n" + >+ " class Level0_Default {\n" + >+ " ^^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "2. ERROR in B.java (at line 13)\n" + >+ " public class Level0_Public {\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "3. ERROR in B.java (at line 14)\n" + >+ " class Level1Default{\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "4. ERROR in B.java (at line 16)\n" + >+ " class Level2_DefDef {}\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "5. ERROR in B.java (at line 17)\n" + >+ " protected class Level2_DefPro {}\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "6. ERROR in B.java (at line 18)\n" + >+ " public class Level2_DefPub {}\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "7. ERROR in B.java (at line 21)\n" + >+ " protected class Level0_Protected {\n" + >+ " ^^^^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for protected declaration\n" + >+ "----------\n" + >+ "8. ERROR in B.java (at line 22)\n" + >+ " protected class Level1Protected {\n" + >+ " ^^^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for protected declaration\n" + >+ "----------\n" + >+ "9. ERROR in B.java (at line 24)\n" + >+ " class Level2_ProDef {}\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "10. ERROR in B.java (at line 25)\n" + >+ " protected class Level2_ProPro {}\n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for protected declaration\n" + >+ "----------\n" + >+ "11. ERROR in B.java (at line 26)\n" + >+ " public class Level2_ProPub {} \n" + >+ " ^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for protected declaration\n" + >+ "----------\n" >+ ); >+ } >+ public void testBug86769_Field1() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC; >+ runNegativeTest( >+ new String[] { >+ "A.java", >+ "/**\n" + >+ " * Test bug 86769\n" + >+ " */\n" + >+ "public class A {\n" + >+ " private class InnerPrivate {\n" + >+ " private int pri_pri;\n" + >+ " int pri_def;\n" + >+ " protected int pri_pro;\n" + >+ " public int pri_pub;\n" + >+ " }\n" + >+ " class InnerDefault{\n" + >+ " private int def_pri;\n" + >+ " int def_def;\n" + >+ " protected int def_pro;\n" + >+ " public int def_pub;\n" + >+ " }\n" + >+ " protected class InnerProtected {\n" + >+ " private int pro_pri;\n" + >+ " int pro_def;\n" + >+ " protected int pro_pro;\n" + >+ " public int pro_pub; \n" + >+ " }\n" + >+ " public class InnerPublic {\n" + >+ " private int pub_pri;\n" + >+ " int pub_def;\n" + >+ " protected int pub_pro;\n" + >+ " public int pub_pub;\n" + >+ " }\n" + >+ "}\n" >+ }, >+ "----------\n" + >+ "1. ERROR in A.java (at line 23)\n" + >+ " public class InnerPublic {\n" + >+ " ^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "2. ERROR in A.java (at line 27)\n" + >+ " public int pub_pub;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" >+ ); >+ } >+ public void testBug86769_Fields2() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE; >+ runNegativeTest( >+ new String[] { >+ "B.java", >+ "/**\n" + >+ " * Test bug 86769\n" + >+ " */\n" + >+ "public class B {\n" + >+ " private class Level1 {\n" + >+ " private class InnerPrivate {\n" + >+ " private int pri_pri;\n" + >+ " int pri_def;\n" + >+ " protected int pri_pro;\n" + >+ " public int pri_pub;\n" + >+ " }\n" + >+ " class InnerDefault{\n" + >+ " private int def_pri;\n" + >+ " int def_def;\n" + >+ " protected int def_pro;\n" + >+ " public int def_pub;\n" + >+ " }\n" + >+ " protected class InnerProtected {\n" + >+ " private int pro_pri;\n" + >+ " int pro_def;\n" + >+ " protected int pro_pro;\n" + >+ " public int pro_pub; \n" + >+ " }\n" + >+ " public class InnerPublic {\n" + >+ " private int pub_pri;\n" + >+ " int pub_def;\n" + >+ " protected int pub_pro;\n" + >+ " public int pub_pub;\n" + >+ " }\n" + >+ " }\n" + >+ "}\n" >+ }, >+ "----------\n" + >+ "1. ERROR in B.java (at line 5)\n" + >+ " private class Level1 {\n" + >+ " ^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "2. ERROR in B.java (at line 6)\n" + >+ " private class InnerPrivate {\n" + >+ " ^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "3. ERROR in B.java (at line 7)\n" + >+ " private int pri_pri;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "4. ERROR in B.java (at line 8)\n" + >+ " int pri_def;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "5. ERROR in B.java (at line 9)\n" + >+ " protected int pri_pro;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "6. ERROR in B.java (at line 10)\n" + >+ " public int pri_pub;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "7. ERROR in B.java (at line 12)\n" + >+ " class InnerDefault{\n" + >+ " ^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "8. ERROR in B.java (at line 13)\n" + >+ " private int def_pri;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "9. ERROR in B.java (at line 14)\n" + >+ " int def_def;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "10. ERROR in B.java (at line 15)\n" + >+ " protected int def_pro;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "11. ERROR in B.java (at line 16)\n" + >+ " public int def_pub;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "12. ERROR in B.java (at line 18)\n" + >+ " protected class InnerProtected {\n" + >+ " ^^^^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "13. ERROR in B.java (at line 19)\n" + >+ " private int pro_pri;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "14. ERROR in B.java (at line 20)\n" + >+ " int pro_def;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "15. ERROR in B.java (at line 21)\n" + >+ " protected int pro_pro;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "16. ERROR in B.java (at line 22)\n" + >+ " public int pro_pub; \n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "17. ERROR in B.java (at line 24)\n" + >+ " public class InnerPublic {\n" + >+ " ^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "18. ERROR in B.java (at line 25)\n" + >+ " private int pub_pri;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "19. ERROR in B.java (at line 26)\n" + >+ " int pub_def;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "20. ERROR in B.java (at line 27)\n" + >+ " protected int pub_pro;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" + >+ "21. ERROR in B.java (at line 28)\n" + >+ " public int pub_pub;\n" + >+ " ^^^^^^^\n" + >+ "Javadoc: Missing comment for private declaration\n" + >+ "----------\n" >+ ); >+ } >+ public void testBug86769_Metthods1() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC; >+ runNegativeTest( >+ new String[] { >+ "A.java", >+ "/**\n" + >+ " * Test bug 86769\n" + >+ " */\n" + >+ "public class A {\n" + >+ " private class InnerPrivate {\n" + >+ " private void pri_pri() {}\n" + >+ " void pri_def() {}\n" + >+ " protected void pri_pro() {}\n" + >+ " public void pri_pub() {}\n" + >+ " }\n" + >+ " class InnerDefault{\n" + >+ " private void def_pri() {}\n" + >+ " void def_def() {}\n" + >+ " protected void def_pro() {}\n" + >+ " public void def_pub() {}\n" + >+ " }\n" + >+ " protected class InnerProtected {\n" + >+ " private void pro_pri() {}\n" + >+ " void pro_def() {}\n" + >+ " protected void pro_pro() {}\n" + >+ " public void pro_pub() {} \n" + >+ " }\n" + >+ " public class InnerPublic {\n" + >+ " private void pub_pri() {}\n" + >+ " void pub_def() {}\n" + >+ " protected void pub_pro() {}\n" + >+ " public void pub_pub() {}\n" + >+ " }\n" + >+ "}\n" >+ }, >+ "----------\n" + >+ "1. ERROR in A.java (at line 23)\n" + >+ " public class InnerPublic {\n" + >+ " ^^^^^^^^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "2. ERROR in A.java (at line 27)\n" + >+ " public void pub_pub() {}\n" + >+ " ^^^^^^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" >+ ); >+ } >+ public void testBug86769_Methods2() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ reportMissingJavadocCommentsVisibility = CompilerOptions.PROTECTED; >+ runConformTest( >+ new String[] { >+ "B.java", >+ "/**\n" + >+ " * Test bug 86769\n" + >+ " */\n" + >+ "public class B {\n" + >+ " private class Level1 {\n" + >+ " private class InnerPrivate {\n" + >+ " private void pri_pri() {}\n" + >+ " void pri_def() {}\n" + >+ " protected void pri_pro() {}\n" + >+ " public void pri_pub() {}\n" + >+ " }\n" + >+ " class InnerDefault{\n" + >+ " private void def_pri() {}\n" + >+ " void def_def() {}\n" + >+ " protected void def_pro() {}\n" + >+ " public void def_pub() {}\n" + >+ " }\n" + >+ " protected class InnerProtected {\n" + >+ " private void pro_pri() {}\n" + >+ " void pro_def() {}\n" + >+ " protected void pro_pro() {}\n" + >+ " public void pro_pub() {} \n" + >+ " }\n" + >+ " public class InnerPublic {\n" + >+ " private void pub_pri() {}\n" + >+ " void pub_def() {}\n" + >+ " protected void pub_pro() {}\n" + >+ " public void pub_pub() {}\n" + >+ " }\n" + >+ " }\n" + >+ "}\n" >+ } >+ ); >+ } > } >Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_4.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_4.java,v >retrieving revision 1.31 >diff -u -r1.31 JavadocTest_1_4.java >--- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_4.java 6 Mar 2007 04:42:12 -0000 1.31 >+++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_4.java 31 Aug 2007 08:44:55 -0000 >@@ -2507,6 +2507,165 @@ > } > > /** >+ * Bug 86769: [javadoc] Warn/Error for 'Missing javadoc comments' doesn't recognize private inner classes >+ * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=86769" >+ */ >+ public void testBug86769() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ runNegativeTest( >+ new String[] { >+ "E.java", >+ "public enum E {\n" + >+ " A,\n" + >+ " DC{\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " E() {}\n" + >+ " public void foo() {}\n" + >+ " private enum Epriv {\n" + >+ " Apriv,\n" + >+ " Cpriv {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Epriv() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ " enum Edef {\n" + >+ " Adef,\n" + >+ " Cdef {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Edef() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ " protected enum Epro {\n" + >+ " Apro,\n" + >+ " Cpro {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Epro() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ " public enum Epub {\n" + >+ " Apub,\n" + >+ " Cpub {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Epub() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ "}\n" >+ }, >+ "----------\n" + >+ "1. ERROR in E.java (at line 1)\n" + >+ " public enum E {\n" + >+ " ^^^^\n" + >+ "Syntax error on token \"enum\", interface expected\n" + >+ "----------\n" + >+ "2. ERROR in E.java (at line 1)\n" + >+ " public enum E {\n" + >+ " ^\n" + >+ "Syntax error on token \"{\", extends expected\n" + >+ "----------\n" + >+ "3. ERROR in E.java (at line 5)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "4. ERROR in E.java (at line 5)\n" + >+ " };\n" + >+ " E() {}\n" + >+ " public void foo() {}\n" + >+ " private enum Epriv {\n" + >+ " Apriv,\n" + >+ " Cpriv {\n" + >+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + >+ "Syntax error on token(s), misplaced construct(s)\n" + >+ "----------\n" + >+ "5. WARNING in E.java (at line 8)\n" + >+ " private enum Epriv {\n" + >+ " ^^^^\n" + >+ "\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + >+ "----------\n" + >+ "6. ERROR in E.java (at line 8)\n" + >+ " private enum Epriv {\n" + >+ " ^^^^^\n" + >+ "Syntax error on token \"Epriv\", = expected after this token\n" + >+ "----------\n" + >+ "7. ERROR in E.java (at line 12)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "8. WARNING in E.java (at line 16)\n" + >+ " enum Edef {\n" + >+ " ^^^^\n" + >+ "\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + >+ "----------\n" + >+ "9. ERROR in E.java (at line 16)\n" + >+ " enum Edef {\n" + >+ " ^^^^\n" + >+ "Syntax error on token \"enum\", interface expected\n" + >+ "----------\n" + >+ "10. ERROR in E.java (at line 16)\n" + >+ " enum Edef {\n" + >+ " ^\n" + >+ "Syntax error on token \"{\", extends expected\n" + >+ "----------\n" + >+ "11. ERROR in E.java (at line 20)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "12. WARNING in E.java (at line 24)\n" + >+ " protected enum Epro {\n" + >+ " ^^^^\n" + >+ "\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + >+ "----------\n" + >+ "13. ERROR in E.java (at line 24)\n" + >+ " protected enum Epro {\n" + >+ " ^^^^\n" + >+ "Syntax error on token \"enum\", interface expected\n" + >+ "----------\n" + >+ "14. ERROR in E.java (at line 24)\n" + >+ " protected enum Epro {\n" + >+ " ^\n" + >+ "Syntax error on token \"{\", extends expected\n" + >+ "----------\n" + >+ "15. ERROR in E.java (at line 28)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "16. WARNING in E.java (at line 32)\n" + >+ " public enum Epub {\n" + >+ " ^^^^\n" + >+ "\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + >+ "----------\n" + >+ "17. ERROR in E.java (at line 32)\n" + >+ " public enum Epub {\n" + >+ " ^^^^\n" + >+ "Syntax error on token \"enum\", interface expected\n" + >+ "----------\n" + >+ "18. ERROR in E.java (at line 32)\n" + >+ " public enum Epub {\n" + >+ " ^\n" + >+ "Syntax error on token \"{\", extends expected\n" + >+ "----------\n" + >+ "19. ERROR in E.java (at line 36)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "20. ERROR in E.java (at line 40)\n" + >+ " }\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" >+ ); >+ } >+ >+ /** > * Bug 95286: [1.5][javadoc] package-info.java incorrectly flags "Missing comment for public declaration" > * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=95286" > */ >Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_3.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_3.java,v >retrieving revision 1.28 >diff -u -r1.28 JavadocTest_1_3.java >--- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_3.java 6 Mar 2007 04:42:12 -0000 1.28 >+++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_3.java 31 Aug 2007 08:44:54 -0000 >@@ -2467,6 +2467,165 @@ > } > > /** >+ * Bug 86769: [javadoc] Warn/Error for 'Missing javadoc comments' doesn't recognize private inner classes >+ * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=86769" >+ */ >+ public void testBug86769() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ runNegativeTest( >+ new String[] { >+ "E.java", >+ "public enum E {\n" + >+ " A,\n" + >+ " DC{\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " E() {}\n" + >+ " public void foo() {}\n" + >+ " private enum Epriv {\n" + >+ " Apriv,\n" + >+ " Cpriv {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Epriv() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ " enum Edef {\n" + >+ " Adef,\n" + >+ " Cdef {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Edef() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ " protected enum Epro {\n" + >+ " Apro,\n" + >+ " Cpro {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Epro() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ " public enum Epub {\n" + >+ " Apub,\n" + >+ " Cpub {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Epub() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ "}\n" >+ }, >+ "----------\n" + >+ "1. ERROR in E.java (at line 1)\n" + >+ " public enum E {\n" + >+ " ^^^^\n" + >+ "Syntax error on token \"enum\", interface expected\n" + >+ "----------\n" + >+ "2. ERROR in E.java (at line 1)\n" + >+ " public enum E {\n" + >+ " ^\n" + >+ "Syntax error on token \"{\", extends expected\n" + >+ "----------\n" + >+ "3. ERROR in E.java (at line 5)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "4. ERROR in E.java (at line 5)\n" + >+ " };\n" + >+ " E() {}\n" + >+ " public void foo() {}\n" + >+ " private enum Epriv {\n" + >+ " Apriv,\n" + >+ " Cpriv {\n" + >+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + >+ "Syntax error on token(s), misplaced construct(s)\n" + >+ "----------\n" + >+ "5. WARNING in E.java (at line 8)\n" + >+ " private enum Epriv {\n" + >+ " ^^^^\n" + >+ "\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + >+ "----------\n" + >+ "6. ERROR in E.java (at line 8)\n" + >+ " private enum Epriv {\n" + >+ " ^^^^^\n" + >+ "Syntax error on token \"Epriv\", = expected after this token\n" + >+ "----------\n" + >+ "7. ERROR in E.java (at line 12)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "8. WARNING in E.java (at line 16)\n" + >+ " enum Edef {\n" + >+ " ^^^^\n" + >+ "\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + >+ "----------\n" + >+ "9. ERROR in E.java (at line 16)\n" + >+ " enum Edef {\n" + >+ " ^^^^\n" + >+ "Syntax error on token \"enum\", interface expected\n" + >+ "----------\n" + >+ "10. ERROR in E.java (at line 16)\n" + >+ " enum Edef {\n" + >+ " ^\n" + >+ "Syntax error on token \"{\", extends expected\n" + >+ "----------\n" + >+ "11. ERROR in E.java (at line 20)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "12. WARNING in E.java (at line 24)\n" + >+ " protected enum Epro {\n" + >+ " ^^^^\n" + >+ "\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + >+ "----------\n" + >+ "13. ERROR in E.java (at line 24)\n" + >+ " protected enum Epro {\n" + >+ " ^^^^\n" + >+ "Syntax error on token \"enum\", interface expected\n" + >+ "----------\n" + >+ "14. ERROR in E.java (at line 24)\n" + >+ " protected enum Epro {\n" + >+ " ^\n" + >+ "Syntax error on token \"{\", extends expected\n" + >+ "----------\n" + >+ "15. ERROR in E.java (at line 28)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "16. WARNING in E.java (at line 32)\n" + >+ " public enum Epub {\n" + >+ " ^^^^\n" + >+ "\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + >+ "----------\n" + >+ "17. ERROR in E.java (at line 32)\n" + >+ " public enum Epub {\n" + >+ " ^^^^\n" + >+ "Syntax error on token \"enum\", interface expected\n" + >+ "----------\n" + >+ "18. ERROR in E.java (at line 32)\n" + >+ " public enum Epub {\n" + >+ " ^\n" + >+ "Syntax error on token \"{\", extends expected\n" + >+ "----------\n" + >+ "19. ERROR in E.java (at line 36)\n" + >+ " };\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" + >+ "20. ERROR in E.java (at line 40)\n" + >+ " }\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n" >+ ); >+ } >+ >+ /** > * Bug 83804: [1.5][javadoc] Missing Javadoc node for package declaration > * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83804" > */ >Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java,v >retrieving revision 1.32 >diff -u -r1.32 JavadocTest_1_5.java >--- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java 17 Nov 2006 16:11:36 -0000 1.32 >+++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java 31 Aug 2007 08:44:55 -0000 >@@ -1687,6 +1687,100 @@ > } > > /** >+ * Bug 86769: [javadoc] Warn/Error for 'Missing javadoc comments' doesn't recognize private inner classes >+ * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=86769" >+ */ >+ public void testBug86769() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ runNegativeTest( >+ new String[] { >+ "E.java", >+ "public enum E {\n" + >+ " A,\n" + >+ " DC{\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " E() {}\n" + >+ " public void foo() {}\n" + >+ " private enum Epriv {\n" + >+ " Apriv,\n" + >+ " Cpriv {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Epriv() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ " enum Edef {\n" + >+ " Adef,\n" + >+ " Cdef {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Edef() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ " protected enum Epro {\n" + >+ " Apro,\n" + >+ " Cpro {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Epro() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ " public enum Epub {\n" + >+ " Apub,\n" + >+ " Cpub {\n" + >+ " public void foo() {}\n" + >+ " };\n" + >+ " Epub() {}\n" + >+ " public void foo() {}\n" + >+ " }\n" + >+ "}\n" >+ }, >+ "----------\n" + >+ "1. ERROR in E.java (at line 1)\n" + >+ " public enum E {\n" + >+ " ^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "2. ERROR in E.java (at line 2)\n" + >+ " A,\n" + >+ " ^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "3. ERROR in E.java (at line 3)\n" + >+ " DC{\n" + >+ " ^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "4. ERROR in E.java (at line 7)\n" + >+ " public void foo() {}\n" + >+ " ^^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "5. ERROR in E.java (at line 32)\n" + >+ " public enum Epub {\n" + >+ " ^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "6. ERROR in E.java (at line 33)\n" + >+ " Apub,\n" + >+ " ^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "7. ERROR in E.java (at line 34)\n" + >+ " Cpub {\n" + >+ " ^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" + >+ "8. ERROR in E.java (at line 38)\n" + >+ " public void foo() {}\n" + >+ " ^^^^^\n" + >+ "Javadoc: Missing comment for public declaration\n" + >+ "----------\n" >+ ); >+ } >+ >+ /** > * Bug 95286: [1.5][javadoc] package-info.java incorrectly flags "Missing comment for public declaration" > * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=95286" > */ >@@ -2938,4 +3032,65 @@ > } > ); > } >+ >+ >+ /** >+ * Bug 87500: [1.5][javadoc][options] Add a 'Consider enum values' option to warn/error on 'Missing javadoc comments'. >+ * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=87500" >+ */ >+ public void testBug87500a() { >+ reportMissingJavadocComments = CompilerOptions.ERROR; >+ reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT; >+ runNegativeTest( >+ new String[] { >+ "A.java", >+ "enum A {\n" + >+ " clubs,\n" + >+ " diamonds,\n" + >+ " hearts,\n" + >+ " spades\n" + >+ "}\n" >+ }, >+ "----------\n" + >+ "1. ERROR in A.java (at line 1)\n" + >+ " enum A {\n" + >+ " ^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "2. ERROR in A.java (at line 2)\n" + >+ " clubs,\n" + >+ " ^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "3. ERROR in A.java (at line 3)\n" + >+ " diamonds,\n" + >+ " ^^^^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "4. ERROR in A.java (at line 4)\n" + >+ " hearts,\n" + >+ " ^^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" + >+ "5. ERROR in A.java (at line 5)\n" + >+ " spades\n" + >+ " ^^^^^^\n" + >+ "Javadoc: Missing comment for default declaration\n" + >+ "----------\n" >+ ); >+ } >+ >+ public void testBug87500b() { >+ reportMissingJavadocComments = CompilerOptions.IGNORE; >+ runConformTest( >+ new String[] { >+ "A.java", >+ "enum A {\n" + >+ " clubs,\n" + >+ " diamonds,\n" + >+ " hearts,\n" + >+ " spades\n" + >+ "}\n" >+ }); >+ } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 86769
:
36881
|
77448
|
77452