Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
cf124cb4
D
dragonwell8_langtools
项目概览
openanolis
/
dragonwell8_langtools
通知
0
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_langtools
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
cf124cb4
编写于
1月 16, 2013
作者:
J
jjg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8006236: doclint: structural issue hidden
Reviewed-by: darcy
上级
e119c6fd
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
85 addition
and
2 deletion
+85
-2
src/share/classes/com/sun/tools/doclint/Checker.java
src/share/classes/com/sun/tools/doclint/Checker.java
+21
-2
test/tools/doclint/EndTagsTest.java
test/tools/doclint/EndTagsTest.java
+39
-0
test/tools/doclint/EndTagsTest.out
test/tools/doclint/EndTagsTest.out
+25
-0
未找到文件。
src/share/classes/com/sun/tools/doclint/Checker.java
浏览文件 @
cf124cb4
...
...
@@ -25,6 +25,7 @@
package
com.sun.tools.doclint
;
import
com.sun.source.doctree.LiteralTree
;
import
java.util.regex.Matcher
;
import
com.sun.source.doctree.LinkTree
;
import
java.net.URI
;
...
...
@@ -359,9 +360,8 @@ public class Checker extends DocTreeScanner<Void, Void> {
env
.
messages
.
error
(
HTML
,
tree
,
"dc.tag.unknown"
,
treeName
);
}
else
if
(
t
.
endKind
==
HtmlTag
.
EndKind
.
NONE
)
{
env
.
messages
.
error
(
HTML
,
tree
,
"dc.tag.end.not.permitted"
,
treeName
);
}
else
if
(
tagStack
.
isEmpty
())
{
env
.
messages
.
error
(
HTML
,
tree
,
"dc.tag.end.unexpected"
,
treeName
);
}
else
{
boolean
done
=
false
;
while
(!
tagStack
.
isEmpty
())
{
TagStackItem
top
=
tagStack
.
peek
();
if
(
t
==
top
.
tag
)
{
...
...
@@ -383,6 +383,7 @@ public class Checker extends DocTreeScanner<Void, Void> {
env
.
messages
.
error
(
HTML
,
tree
,
"dc.text.not.allowed"
,
treeName
);
}
tagStack
.
pop
();
done
=
true
;
break
;
}
else
if
(
top
.
tag
==
null
||
top
.
tag
.
endKind
!=
HtmlTag
.
EndKind
.
REQUIRED
)
{
tagStack
.
pop
();
...
...
@@ -400,10 +401,15 @@ public class Checker extends DocTreeScanner<Void, Void> {
tagStack
.
pop
();
}
else
{
env
.
messages
.
error
(
HTML
,
tree
,
"dc.tag.end.unexpected"
,
treeName
);
done
=
true
;
break
;
}
}
}
if
(!
done
&&
tagStack
.
isEmpty
())
{
env
.
messages
.
error
(
HTML
,
tree
,
"dc.tag.end.unexpected"
,
treeName
);
}
}
return
super
.
visitEndElement
(
tree
,
ignore
);
...
...
@@ -545,6 +551,19 @@ public class Checker extends DocTreeScanner<Void, Void> {
}
}
@Override
public
Void
visitLiteral
(
LiteralTree
tree
,
Void
ignore
)
{
if
(
tree
.
getKind
()
==
DocTree
.
Kind
.
CODE
)
{
for
(
TagStackItem
tsi:
tagStack
)
{
if
(
tsi
.
tag
==
HtmlTag
.
CODE
)
{
env
.
messages
.
warning
(
HTML
,
tree
,
"dc.tag.nested.not.allowed"
,
"code"
);
break
;
}
}
}
return
super
.
visitLiteral
(
tree
,
ignore
);
}
@Override
public
Void
visitParam
(
ParamTree
tree
,
Void
ignore
)
{
boolean
typaram
=
tree
.
isTypeParameter
();
...
...
test/tools/doclint/EndTagsTest.java
0 → 100644
浏览文件 @
cf124cb4
/*
* @test /nodynamiccopyright/
* @bug 8006236
* @summary doclint: structural issue hidden
* @build DocLintTester
* @run main DocLintTester -Xmsgs:-html EndTagsTest.java
* @run main DocLintTester -ref EndTagsTest.out EndTagsTest.java
*/
/** */
public
class
EndTagsTest
{
/** <p> <a name="a1"> text <img alt="image" src="image.png"> </a> </p> */
public
void
valid_all
()
{
}
/** <p> <a name="a2"> text <img alt="image" src="image.png"> </a> */
public
void
valid_omit_optional_close
()
{
}
/** </a> */
public
void
invalid_missing_start
()
{
}
/** <p> </a> */
public
void
invalid_missing_start_2
()
{
}
/** <p> text </p> </a> */
public
void
invalid_missing_start_3
()
{
}
/** <img alt="image" src="image.png"> </img> */
public
void
invalid_end
()
{
}
/** <invalid> </invalid> */
public
void
unknown_start_end
()
{
}
/** <invalid> */
public
void
unknown_start
()
{
}
/** </invalid> */
public
void
unknown_end
()
{
}
}
test/tools/doclint/EndTagsTest.out
0 → 100644
浏览文件 @
cf124cb4
EndTagsTest.java:18: error: unexpected end tag: </a>
/** </a> */
^
EndTagsTest.java:21: error: unexpected end tag: </a>
/** <p> </a> */
^
EndTagsTest.java:24: error: unexpected end tag: </a>
/** <p> text </p> </a> */
^
EndTagsTest.java:27: error: invalid end tag: </img>
/** <img alt="image" src="image.png"> </img> */
^
EndTagsTest.java:30: error: unknown tag: invalid
/** <invalid> </invalid> */
^
EndTagsTest.java:30: error: unknown tag: invalid
/** <invalid> </invalid> */
^
EndTagsTest.java:33: error: unknown tag: invalid
/** <invalid> */
^
EndTagsTest.java:36: error: unknown tag: invalid
/** </invalid> */
^
8 errors
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录