summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Falcone <asfalcone@google.com>2019-07-09 17:17:38 -0400
committerAndrea Falcone <asfalcone@google.com>2019-07-10 10:14:44 -0400
commit52050d57f1a63de2e6d644d55047c8574184a26c (patch)
tree31eb9c961fb81870031d97dbdb287045873f1bdb
parent08bc827b428b81ce79c3592a9bd8cd1edc36e78b (diff)
downloadplatform_external_doclava-52050d57f1a63de2e6d644d55047c8574184a26c.tar.gz
platform_external_doclava-52050d57f1a63de2e6d644d55047c8574184a26c.tar.bz2
platform_external_doclava-52050d57f1a63de2e6d644d55047c8574184a26c.zip
Ignore tags in comments that are actually Java annotations
BUG: 135928616 TEST: ./gradlew tipOfTreeDocsTask Change-Id: I8fcf99e144ff3d08de8ec30977b8042b3e87eef0
-rw-r--r--src/com/google/doclava/Comment.java12
-rw-r--r--src/com/google/doclava/Errors.java1
2 files changed, 11 insertions, 2 deletions
diff --git a/src/com/google/doclava/Comment.java b/src/com/google/doclava/Comment.java
index 63ace55..ea09788 100644
--- a/src/com/google/doclava/Comment.java
+++ b/src/com/google/doclava/Comment.java
@@ -387,8 +387,16 @@ public class Comment {
known = Doclava.knownTags.contains(name);
}
if (!known) {
- Errors.error(Errors.UNKNOWN_TAG, pos == null ? null : new SourcePositionInfo(pos),
- "Unknown tag: " + name);
+ if (name.length() >= 2 && Character.isUpperCase(name.charAt(1))) {
+ // This is a workaround for b/135928616 where parsing of comments fails when there is
+ // a Java annotation and not a tag.
+ Errors.error(Errors.JAVA_TAG_IN_COMMENT,
+ pos == null ? null : new SourcePositionInfo(pos),
+ "Invalid tag: " + name);
+ } else {
+ Errors.error(Errors.UNKNOWN_TAG, pos == null ? null : new SourcePositionInfo(pos),
+ "Unknown tag: " + name);
+ }
}
TagInfo t = new TextTagInfo(name, name, text, pos);
if (isInline) {
diff --git a/src/com/google/doclava/Errors.java b/src/com/google/doclava/Errors.java
index 6b0eee0..a7a3bdf 100644
--- a/src/com/google/doclava/Errors.java
+++ b/src/com/google/doclava/Errors.java
@@ -314,6 +314,7 @@ public class Errors {
public static final Error TODO = new Error(128, LINT);
public static final Error NO_ARTIFACT_DATA = new Error(129, HIDDEN);
public static final Error BROKEN_ARTIFACT_FILE = new Error(130, ERROR);
+ public static final Error JAVA_TAG_IN_COMMENT = new Error(131, LINT);
public static boolean setErrorLevel(int code, int level) {
for (Error e : sErrors) {