Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
00ec38a2
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看板
提交
00ec38a2
编写于
6月 20, 2012
作者:
J
jjg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7174143: encapsulate doc comment table
Reviewed-by: ksrini, mcimadamore
上级
d2313a46
变更
24
隐藏空白更改
内联
并排
Showing
24 changed file
with
251 addition
and
112 deletion
+251
-112
src/share/classes/com/sun/tools/javac/api/JavacTrees.java
src/share/classes/com/sun/tools/javac/api/JavacTrees.java
+4
-3
src/share/classes/com/sun/tools/javac/comp/Enter.java
src/share/classes/com/sun/tools/javac/comp/Enter.java
+2
-2
src/share/classes/com/sun/tools/javac/comp/Lower.java
src/share/classes/com/sun/tools/javac/comp/Lower.java
+2
-2
src/share/classes/com/sun/tools/javac/jvm/CRTable.java
src/share/classes/com/sun/tools/javac/jvm/CRTable.java
+2
-2
src/share/classes/com/sun/tools/javac/jvm/Gen.java
src/share/classes/com/sun/tools/javac/jvm/Gen.java
+2
-2
src/share/classes/com/sun/tools/javac/model/JavacElements.java
...hare/classes/com/sun/tools/javac/model/JavacElements.java
+5
-4
src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java
...are/classes/com/sun/tools/javac/parser/JavaTokenizer.java
+7
-7
src/share/classes/com/sun/tools/javac/parser/JavacParser.java
...share/classes/com/sun/tools/javac/parser/JavacParser.java
+25
-20
src/share/classes/com/sun/tools/javac/parser/SimpleDocCommentTable.java
...ses/com/sun/tools/javac/parser/SimpleDocCommentTable.java
+67
-0
src/share/classes/com/sun/tools/javac/parser/Tokens.java
src/share/classes/com/sun/tools/javac/parser/Tokens.java
+11
-11
src/share/classes/com/sun/tools/javac/tree/DocCommentTable.java
...are/classes/com/sun/tools/javac/tree/DocCommentTable.java
+57
-0
src/share/classes/com/sun/tools/javac/tree/EndPosTable.java
src/share/classes/com/sun/tools/javac/tree/EndPosTable.java
+2
-3
src/share/classes/com/sun/tools/javac/tree/JCTree.java
src/share/classes/com/sun/tools/javac/tree/JCTree.java
+10
-12
src/share/classes/com/sun/tools/javac/tree/Pretty.java
src/share/classes/com/sun/tools/javac/tree/Pretty.java
+8
-10
src/share/classes/com/sun/tools/javac/tree/TreeInfo.java
src/share/classes/com/sun/tools/javac/tree/TreeInfo.java
+10
-4
src/share/classes/com/sun/tools/javac/util/DiagnosticSource.java
...re/classes/com/sun/tools/javac/util/DiagnosticSource.java
+2
-2
src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java
src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java
+2
-2
src/share/classes/com/sun/tools/javac/util/Log.java
src/share/classes/com/sun/tools/javac/util/Log.java
+2
-2
src/share/classes/com/sun/tools/javadoc/JavadocEnter.java
src/share/classes/com/sun/tools/javadoc/JavadocEnter.java
+10
-7
src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java
...are/classes/com/sun/tools/javadoc/JavadocMemberEnter.java
+8
-5
test/tools/javac/6304921/TestLog.java
test/tools/javac/6304921/TestLog.java
+2
-2
test/tools/javac/failover/CheckAttributedTree.java
test/tools/javac/failover/CheckAttributedTree.java
+2
-2
test/tools/javac/tree/DocCommentToplevelTest.java
test/tools/javac/tree/DocCommentToplevelTest.java
+7
-6
test/tools/javac/tree/TreePosTest.java
test/tools/javac/tree/TreePosTest.java
+2
-2
未找到文件。
src/share/classes/com/sun/tools/javac/api/JavacTrees.java
浏览文件 @
00ec38a2
...
...
@@ -60,7 +60,7 @@ import com.sun.tools.javac.comp.Env;
import
com.sun.tools.javac.comp.MemberEnter
;
import
com.sun.tools.javac.comp.Resolve
;
import
com.sun.tools.javac.model.JavacElements
;
import
com.sun.tools.javac.
parser
.EndPosTable
;
import
com.sun.tools.javac.
tree
.EndPosTable
;
import
com.sun.tools.javac.processing.JavacProcessingEnvironment
;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.tree.JCTree.*
;
...
...
@@ -240,10 +240,11 @@ public class JavacTrees extends Trees {
public
String
getDocComment
(
TreePath
path
)
{
CompilationUnitTree
t
=
path
.
getCompilationUnit
();
if
(
t
instanceof
JCTree
.
JCCompilationUnit
)
{
Tree
leaf
=
path
.
getLeaf
();
if
(
t
instanceof
JCTree
.
JCCompilationUnit
&&
leaf
instanceof
JCTree
)
{
JCCompilationUnit
cu
=
(
JCCompilationUnit
)
t
;
if
(
cu
.
docComments
!=
null
)
{
return
cu
.
docComments
.
get
(
path
.
getLeaf
()
);
return
cu
.
docComments
.
get
CommentText
((
JCTree
)
leaf
);
}
}
return
null
;
...
...
src/share/classes/com/sun/tools/javac/comp/Enter.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -312,7 +312,7 @@ public class Enter extends JCTree.Visitor {
tree
.
packge
);
if
(
addEnv
||
(
tree0
.
packageAnnotations
.
isEmpty
()
&&
tree
.
docComments
!=
null
&&
tree
.
docComments
.
get
(
tree
)
!=
null
))
{
tree
.
docComments
.
hasComment
(
tree
)
))
{
typeEnvs
.
put
(
tree
.
packge
,
topEnv
);
}
}
...
...
src/share/classes/com/sun/tools/javac/comp/Lower.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -40,7 +40,7 @@ import com.sun.tools.javac.tree.JCTree.*;
import
com.sun.tools.javac.code.Type.*
;
import
com.sun.tools.javac.jvm.Target
;
import
com.sun.tools.javac.
parser
.EndPosTable
;
import
com.sun.tools.javac.
tree
.EndPosTable
;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Flags
.*;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Flags
.
BLOCK
;
...
...
src/share/classes/com/sun/tools/javac/jvm/CRTable.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2001, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -31,7 +31,7 @@ import com.sun.tools.javac.tree.*;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.util.List
;
import
com.sun.tools.javac.tree.JCTree.*
;
import
com.sun.tools.javac.
parser
.EndPosTable
;
import
com.sun.tools.javac.
tree
.EndPosTable
;
/** This class contains the CharacterRangeTable for some method
* and the hashtable for mapping trees or lists of trees to their
...
...
src/share/classes/com/sun/tools/javac/jvm/Gen.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -37,7 +37,7 @@ import com.sun.tools.javac.code.Symbol.*;
import
com.sun.tools.javac.code.Type.*
;
import
com.sun.tools.javac.jvm.Code.*
;
import
com.sun.tools.javac.jvm.Items.*
;
import
com.sun.tools.javac.
parser
.EndPosTable
;
import
com.sun.tools.javac.
tree
.EndPosTable
;
import
com.sun.tools.javac.tree.JCTree.*
;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Flags
.*;
...
...
src/share/classes/com/sun/tools/javac/model/JavacElements.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2005, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -28,11 +28,14 @@ package com.sun.tools.javac.model;
import
java.lang.annotation.Annotation
;
import
java.lang.annotation.Inherited
;
import
java.util.Map
;
import
javax.lang.model.SourceVersion
;
import
javax.lang.model.element.*
;
import
javax.lang.model.type.DeclaredType
;
import
javax.lang.model.util.Elements
;
import
javax.tools.JavaFileObject
;
import
static
javax
.
lang
.
model
.
util
.
ElementFilter
.
methodsIn
;
import
com.sun.tools.javac.code.*
;
import
com.sun.tools.javac.code.Symbol.*
;
import
com.sun.tools.javac.code.TypeTags
;
...
...
@@ -47,9 +50,7 @@ import com.sun.tools.javac.tree.TreeInfo;
import
com.sun.tools.javac.tree.TreeScanner
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.util.Name
;
import
static
com
.
sun
.
tools
.
javac
.
tree
.
JCTree
.
Tag
.*;
import
static
javax
.
lang
.
model
.
util
.
ElementFilter
.
methodsIn
;
/**
* Utility methods for operating on program elements.
...
...
@@ -361,7 +362,7 @@ public class JavacElements implements Elements {
JCCompilationUnit
toplevel
=
treeTop
.
snd
;
if
(
toplevel
.
docComments
==
null
)
return
null
;
return
toplevel
.
docComments
.
get
(
tree
);
return
toplevel
.
docComments
.
get
CommentText
(
tree
);
}
public
PackageElement
getPackageOf
(
Element
e
)
{
...
...
src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -571,7 +571,7 @@ public class JavaTokenizer {
reader
.
scanCommentChar
();
}
while
(
reader
.
ch
!=
CR
&&
reader
.
ch
!=
LF
&&
reader
.
bp
<
reader
.
buflen
);
if
(
reader
.
bp
<
reader
.
buflen
)
{
comments
=
add
DocReader
(
comments
,
processComment
(
pos
,
reader
.
bp
,
CommentStyle
.
LINE
));
comments
=
add
Comment
(
comments
,
processComment
(
pos
,
reader
.
bp
,
CommentStyle
.
LINE
));
}
break
;
}
else
if
(
reader
.
ch
==
'*'
)
{
...
...
@@ -597,7 +597,7 @@ public class JavaTokenizer {
}
if
(
reader
.
ch
==
'/'
)
{
reader
.
scanChar
();
comments
=
add
DocReader
(
comments
,
processComment
(
pos
,
reader
.
bp
,
style
));
comments
=
add
Comment
(
comments
,
processComment
(
pos
,
reader
.
bp
,
style
));
break
;
}
else
{
lexError
(
pos
,
"unclosed.comment"
);
...
...
@@ -693,10 +693,10 @@ public class JavaTokenizer {
}
}
//where
List
<
Comment
>
add
DocReader
(
List
<
Comment
>
docReaders
,
Comment
docReader
)
{
return
docReader
s
==
null
?
List
.
of
(
docReader
)
:
docReaders
.
prepend
(
docReader
);
List
<
Comment
>
add
Comment
(
List
<
Comment
>
comments
,
Comment
comment
)
{
return
comment
s
==
null
?
List
.
of
(
comment
)
:
comments
.
prepend
(
comment
);
}
/** Return the position where a lexical error occurred;
...
...
src/share/classes/com/sun/tools/javac/parser/JavacParser.java
浏览文件 @
00ec38a2
...
...
@@ -117,7 +117,7 @@ public class JavacParser implements Parser {
this
.
allowMethodReferences
=
source
.
allowMethodReferences
()
&&
fac
.
options
.
isSet
(
"allowMethodReferences"
);
this
.
keepDocComments
=
keepDocComments
;
docComments
=
keepDocComments
?
new
HashMap
<
JCTree
,
String
>()
:
null
;
docComments
=
newDocCommentTable
(
keepDocComments
)
;
this
.
keepLineMap
=
keepLineMap
;
this
.
errorTree
=
F
.
Erroneous
();
endPosTable
=
newEndPosTable
(
keepEndPositions
);
...
...
@@ -128,6 +128,11 @@ public class JavacParser implements Parser {
?
new
SimpleEndPosTable
()
:
new
EmptyEndPosTable
();
}
protected
DocCommentTable
newDocCommentTable
(
boolean
keepDocComments
)
{
return
keepDocComments
?
new
SimpleDocCommentTable
()
:
null
;
}
/** Switch: Should generics be recognized?
*/
boolean
allowGenerics
;
...
...
@@ -417,21 +422,21 @@ public class JavacParser implements Parser {
/* ---------- doc comments --------- */
/** A
hash
table to store all documentation comments
/** A table to store all documentation comments
* indexed by the tree nodes they refer to.
* defined only if option flag keepDocComment is set.
*/
private
final
Map
<
JCTree
,
String
>
docComments
;
private
final
DocCommentTable
docComments
;
/** Make an entry into docComments hashtable,
* provided flag keepDocComments is set and given doc comment is non-null.
* @param tree The tree to be used as index in the hashtable
* @param dc The doc comment to associate with the tree, or null.
*/
void
attach
(
JCTree
tree
,
String
dc
)
{
void
attach
(
JCTree
tree
,
Comment
dc
)
{
if
(
keepDocComments
&&
dc
!=
null
)
{
// System.out.println("doc comment = ");System.out.println(dc);//DEBUG
docComments
.
put
(
tree
,
dc
);
docComments
.
put
Comment
(
tree
,
dc
);
}
}
...
...
@@ -1858,7 +1863,7 @@ public class JavacParser implements Parser {
return
List
.
of
(
parseStatement
());
case
MONKEYS_AT:
case
FINAL:
{
String
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
Comment
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
JCModifiers
mods
=
modifiersOpt
();
if
(
token
.
kind
==
INTERFACE
||
token
.
kind
==
CLASS
||
...
...
@@ -1875,13 +1880,13 @@ public class JavacParser implements Parser {
}
}
case
ABSTRACT:
case
STRICTFP:
{
String
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
Comment
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
JCModifiers
mods
=
modifiersOpt
();
return
List
.
of
(
classOrInterfaceOrEnumDeclaration
(
mods
,
dc
));
}
case
INTERFACE:
case
CLASS:
String
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
Comment
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
return
List
.
of
(
classOrInterfaceOrEnumDeclaration
(
modifiersOpt
(),
dc
));
case
ENUM:
case
ASSERT:
...
...
@@ -2418,7 +2423,7 @@ public class JavacParser implements Parser {
JCExpression
type
,
Name
name
,
boolean
reqInit
,
String
dc
,
Comment
dc
,
T
vdefs
)
{
vdefs
.
append
(
variableDeclaratorRest
(
pos
,
mods
,
type
,
name
,
reqInit
,
dc
));
...
...
@@ -2434,7 +2439,7 @@ public class JavacParser implements Parser {
/** VariableDeclarator = Ident VariableDeclaratorRest
* ConstantDeclarator = Ident ConstantDeclaratorRest
*/
JCVariableDecl
variableDeclarator
(
JCModifiers
mods
,
JCExpression
type
,
boolean
reqInit
,
String
dc
)
{
JCVariableDecl
variableDeclarator
(
JCModifiers
mods
,
JCExpression
type
,
boolean
reqInit
,
Comment
dc
)
{
return
variableDeclaratorRest
(
token
.
pos
,
mods
,
type
,
ident
(),
reqInit
,
dc
);
}
...
...
@@ -2445,7 +2450,7 @@ public class JavacParser implements Parser {
* @param dc The documentation comment for the variable declarations, or null.
*/
JCVariableDecl
variableDeclaratorRest
(
int
pos
,
JCModifiers
mods
,
JCExpression
type
,
Name
name
,
boolean
reqInit
,
String
dc
)
{
boolean
reqInit
,
Comment
dc
)
{
type
=
bracketsOpt
(
type
);
JCExpression
init
=
null
;
if
(
token
.
kind
==
EQ
)
{
...
...
@@ -2539,7 +2544,7 @@ public class JavacParser implements Parser {
seenImport
=
true
;
defs
.
append
(
importDeclaration
());
}
else
{
String
docComment
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
Comment
docComment
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
if
(
firstTypeDecl
&&
!
seenImport
&&
!
seenPackage
)
{
docComment
=
firstToken
.
comment
(
CommentStyle
.
JAVADOC
);
consumedToplevelDoc
=
true
;
...
...
@@ -2597,7 +2602,7 @@ public class JavacParser implements Parser {
/** TypeDeclaration = ClassOrInterfaceOrEnumDeclaration
* | ";"
*/
JCTree
typeDeclaration
(
JCModifiers
mods
,
String
docComment
)
{
JCTree
typeDeclaration
(
JCModifiers
mods
,
Comment
docComment
)
{
int
pos
=
token
.
pos
;
if
(
mods
==
null
&&
token
.
kind
==
SEMI
)
{
nextToken
();
...
...
@@ -2612,7 +2617,7 @@ public class JavacParser implements Parser {
* @param mods Any modifiers starting the class or interface declaration
* @param dc The documentation comment for the class, or null.
*/
JCStatement
classOrInterfaceOrEnumDeclaration
(
JCModifiers
mods
,
String
dc
)
{
JCStatement
classOrInterfaceOrEnumDeclaration
(
JCModifiers
mods
,
Comment
dc
)
{
if
(
token
.
kind
==
CLASS
)
{
return
classDeclaration
(
mods
,
dc
);
}
else
if
(
token
.
kind
==
INTERFACE
)
{
...
...
@@ -2656,7 +2661,7 @@ public class JavacParser implements Parser {
* @param mods The modifiers starting the class declaration
* @param dc The documentation comment for the class, or null.
*/
protected
JCClassDecl
classDeclaration
(
JCModifiers
mods
,
String
dc
)
{
protected
JCClassDecl
classDeclaration
(
JCModifiers
mods
,
Comment
dc
)
{
int
pos
=
token
.
pos
;
accept
(
CLASS
);
Name
name
=
ident
();
...
...
@@ -2685,7 +2690,7 @@ public class JavacParser implements Parser {
* @param mods The modifiers starting the interface declaration
* @param dc The documentation comment for the interface, or null.
*/
protected
JCClassDecl
interfaceDeclaration
(
JCModifiers
mods
,
String
dc
)
{
protected
JCClassDecl
interfaceDeclaration
(
JCModifiers
mods
,
Comment
dc
)
{
int
pos
=
token
.
pos
;
accept
(
INTERFACE
);
Name
name
=
ident
();
...
...
@@ -2708,7 +2713,7 @@ public class JavacParser implements Parser {
* @param mods The modifiers starting the enum declaration
* @param dc The documentation comment for the enum, or null.
*/
protected
JCClassDecl
enumDeclaration
(
JCModifiers
mods
,
String
dc
)
{
protected
JCClassDecl
enumDeclaration
(
JCModifiers
mods
,
Comment
dc
)
{
int
pos
=
token
.
pos
;
accept
(
ENUM
);
Name
name
=
ident
();
...
...
@@ -2767,7 +2772,7 @@ public class JavacParser implements Parser {
/** EnumeratorDeclaration = AnnotationsOpt [TypeArguments] IDENTIFIER [ Arguments ] [ "{" ClassBody "}" ]
*/
JCTree
enumeratorDeclaration
(
Name
enumName
)
{
String
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
Comment
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
int
flags
=
Flags
.
PUBLIC
|
Flags
.
STATIC
|
Flags
.
FINAL
|
Flags
.
ENUM
;
if
(
token
.
deprecatedFlag
())
{
flags
|=
Flags
.
DEPRECATED
;
...
...
@@ -2856,7 +2861,7 @@ public class JavacParser implements Parser {
nextToken
();
return
List
.<
JCTree
>
nil
();
}
else
{
String
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
Comment
dc
=
token
.
comment
(
CommentStyle
.
JAVADOC
);
int
pos
=
token
.
pos
;
JCModifiers
mods
=
modifiersOpt
();
if
(
token
.
kind
==
CLASS
||
...
...
@@ -2936,7 +2941,7 @@ public class JavacParser implements Parser {
Name
name
,
List
<
JCTypeParameter
>
typarams
,
boolean
isInterface
,
boolean
isVoid
,
String
dc
)
{
Comment
dc
)
{
List
<
JCVariableDecl
>
params
=
formalParameters
();
if
(!
isVoid
)
type
=
bracketsOpt
(
type
);
List
<
JCExpression
>
thrown
=
List
.
nil
();
...
...
src/share/classes/com/sun/tools/javac/parser/SimpleDocCommentTable.java
0 → 100644
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package
com.sun.tools.javac.parser
;
import
java.util.HashMap
;
import
java.util.Map
;
import
com.sun.tools.javac.parser.Tokens.Comment
;
import
com.sun.tools.javac.tree.DocCommentTable
;
import
com.sun.tools.javac.tree.JCTree
;
/**
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
public
class
SimpleDocCommentTable
implements
DocCommentTable
{
Map
<
JCTree
,
Comment
>
table
;
SimpleDocCommentTable
()
{
table
=
new
HashMap
<
JCTree
,
Comment
>();
}
public
boolean
hasComment
(
JCTree
tree
)
{
return
table
.
containsKey
(
tree
);
}
public
Comment
getComment
(
JCTree
tree
)
{
return
table
.
get
(
tree
);
}
public
String
getCommentText
(
JCTree
tree
)
{
Comment
c
=
getComment
(
tree
);
return
(
c
==
null
)
?
null
:
c
.
getText
();
}
public
void
putComment
(
JCTree
tree
,
Comment
c
)
{
table
.
put
(
tree
,
c
);
}
}
src/share/classes/com/sun/tools/javac/parser/Tokens.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -371,11 +371,11 @@ public class Tokens {
* Preserve classic semantics - if multiple javadocs are found on the token
* the last one is returned
*/
public
String
comment
(
Comment
.
CommentStyle
style
)
{
List
<
Comment
>
readers
=
getReader
s
(
Comment
.
CommentStyle
.
JAVADOC
);
return
reader
s
.
isEmpty
()
?
public
Comment
comment
(
Comment
.
CommentStyle
style
)
{
List
<
Comment
>
comments
=
getComment
s
(
Comment
.
CommentStyle
.
JAVADOC
);
return
comment
s
.
isEmpty
()
?
null
:
readers
.
head
.
getText
()
;
comments
.
head
;
}
/**
...
...
@@ -383,22 +383,22 @@ public class Tokens {
* javadoc comment attached to this token contains the '@deprecated' string
*/
public
boolean
deprecatedFlag
()
{
for
(
Comment
r
:
getReader
s
(
Comment
.
CommentStyle
.
JAVADOC
))
{
if
(
r
.
isDeprecated
())
{
for
(
Comment
c
:
getComment
s
(
Comment
.
CommentStyle
.
JAVADOC
))
{
if
(
c
.
isDeprecated
())
{
return
true
;
}
}
return
false
;
}
private
List
<
Comment
>
get
Reader
s
(
Comment
.
CommentStyle
style
)
{
private
List
<
Comment
>
get
Comment
s
(
Comment
.
CommentStyle
style
)
{
if
(
comments
==
null
)
{
return
List
.
nil
();
}
else
{
ListBuffer
<
Comment
>
buf
=
ListBuffer
.
lb
();
for
(
Comment
r
:
comments
)
{
if
(
r
.
getStyle
()
==
style
)
{
buf
.
add
(
r
);
for
(
Comment
c
:
comments
)
{
if
(
c
.
getStyle
()
==
style
)
{
buf
.
add
(
c
);
}
}
return
buf
.
toList
();
...
...
src/share/classes/com/sun/tools/javac/tree/DocCommentTable.java
0 → 100644
浏览文件 @
00ec38a2
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package
com.sun.tools.javac.tree
;
import
com.sun.tools.javac.parser.Tokens.Comment
;
/**
* A table giving the doc comment, if any, for any tree node.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own
* risk. This code and its internal interfaces are subject to change
* or deletion without notice.</b>
*/
public
interface
DocCommentTable
{
/**
* Check if a tree node has a corresponding doc comment.
*/
public
boolean
hasComment
(
JCTree
tree
);
/**
* Get the Comment token containing the doc comment, if any, for a tree node.
*/
public
Comment
getComment
(
JCTree
tree
);
/**
* Get the plain text of the doc comment, if any, for a tree node.
*/
public
String
getCommentText
(
JCTree
tree
);
/**
* Set the Comment to be associated with a tree node.
*/
public
void
putComment
(
JCTree
tree
,
Comment
c
);
}
src/share/classes/com/sun/tools/javac/
parser
/EndPosTable.java
→
src/share/classes/com/sun/tools/javac/
tree
/EndPosTable.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011,
2012,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -22,9 +22,8 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package
com.sun.tools.javac.parser
;
import
com.sun.tools.javac.tree.JCT
ree
;
package
com.sun.tools.javac.t
ree
;
/**
* Specifies the methods to access a mappings of syntax trees to end positions.
...
...
src/share/classes/com/sun/tools/javac/tree/JCTree.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -25,25 +25,23 @@
package
com.sun.tools.javac.tree
;
import
java.util.*
;
import
java.io.IOException
;
import
java.io.StringWriter
;
import
java.util.*
;
import
javax.lang.model.element.Modifier
;
import
javax.lang.model.type.TypeKind
;
import
javax.tools.JavaFileObject
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition
;
import
com.sun.tools.javac.util.List
;
import
com.sun.tools.javac.code.*
;
import
com.sun.tools.javac.code.Scope.*
;
import
com.sun.tools.javac.code.Symbol.*
;
import
com.sun.tools.javac.parser.EndPosTable
;
import
com.sun.source.tree.*
;
import
com.sun.source.tree.LambdaExpressionTree.BodyKind
;
import
com.sun.source.tree.MemberReferenceTree.ReferenceMode
;
import
com.sun.tools.javac.code.*
;
import
com.sun.tools.javac.code.Scope.*
;
import
com.sun.tools.javac.code.Symbol.*
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition
;
import
com.sun.tools.javac.util.List
;
import
static
com
.
sun
.
tools
.
javac
.
code
.
BoundKind
.*;
import
static
com
.
sun
.
tools
.
javac
.
tree
.
JCTree
.
Tag
.*;
...
...
@@ -491,7 +489,7 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
public
ImportScope
namedImportScope
;
public
StarImportScope
starImportScope
;
public
Position
.
LineMap
lineMap
=
null
;
public
Map
<
JCTree
,
String
>
docComments
=
null
;
public
DocCommentTable
docComments
=
null
;
public
EndPosTable
endPositions
=
null
;
protected
JCCompilationUnit
(
List
<
JCAnnotation
>
packageAnnotations
,
JCExpression
pid
,
...
...
src/share/classes/com/sun/tools/javac/tree/Pretty.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -29,14 +29,12 @@ import java.io.*;
import
java.util.*
;
import
com.sun.source.tree.MemberReferenceTree.ReferenceMode
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.util.List
;
import
com.sun.tools.javac.code.*
;
import
com.sun.tools.javac.code.Symbol.*
;
import
com.sun.tools.javac.parser.Tokens.Comment
;
import
com.sun.tools.javac.tree.JCTree.*
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.util.List
;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Flags
.*;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Flags
.
ANNOTATION
;
import
static
com
.
sun
.
tools
.
javac
.
tree
.
JCTree
.
Tag
.*;
...
...
@@ -78,10 +76,10 @@ public class Pretty extends JCTree.Visitor {
*/
Name
enclClassName
;
/** A
hash
table mapping trees to their documentation comments
/** A table mapping trees to their documentation comments
* (can be null)
*/
Map
<
JCTree
,
String
>
docComments
=
null
;
DocCommentTable
docComments
=
null
;
/** Align code to be indented to left margin.
*/
...
...
@@ -233,7 +231,7 @@ public class Pretty extends JCTree.Visitor {
*/
public
void
printDocComment
(
JCTree
tree
)
throws
IOException
{
if
(
docComments
!=
null
)
{
String
dc
=
docComments
.
get
(
tree
);
String
dc
=
docComments
.
get
CommentText
(
tree
);
if
(
dc
!=
null
)
{
print
(
"/**"
);
println
();
int
pos
=
0
;
...
...
@@ -480,7 +478,7 @@ public class Pretty extends JCTree.Visitor {
public
void
visitVarDef
(
JCVariableDecl
tree
)
{
try
{
if
(
docComments
!=
null
&&
docComments
.
get
(
tree
)
!=
null
)
{
if
(
docComments
!=
null
&&
docComments
.
hasComment
(
tree
)
)
{
println
();
align
();
}
printDocComment
(
tree
);
...
...
src/share/classes/com/sun/tools/javac/tree/TreeInfo.java
浏览文件 @
00ec38a2
...
...
@@ -25,15 +25,14 @@
package
com.sun.tools.javac.tree
;
import
com.sun.source.tree.Tree
;
import
com.sun.tools.javac.code.*
;
import
com.sun.tools.javac.comp.AttrContext
;
import
com.sun.tools.javac.comp.Env
;
import
com.sun.tools.javac.tree.JCTree.*
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition
;
import
com.sun.tools.javac.code.*
;
import
com.sun.tools.javac.parser.EndPosTable
;
import
com.sun.tools.javac.tree.JCTree.*
;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Flags
.*;
import
static
com
.
sun
.
tools
.
javac
.
tree
.
JCTree
.
Tag
.*;
import
static
com
.
sun
.
tools
.
javac
.
tree
.
JCTree
.
Tag
.
BLOCK
;
...
...
@@ -282,6 +281,13 @@ public class TreeInfo {
return
(
lit
.
typetag
==
TypeTags
.
BOT
);
}
public
static
String
getCommentText
(
Env
<?>
env
,
JCTree
tree
)
{
DocCommentTable
docComments
=
(
tree
.
hasTag
(
JCTree
.
Tag
.
TOPLEVEL
))
?
((
JCCompilationUnit
)
tree
).
docComments
:
env
.
toplevel
.
docComments
;
return
docComments
.
getCommentText
(
tree
);
}
/** The position of the first statement in a block, or the position of
* the block itself if it is empty.
*/
...
...
src/share/classes/com/sun/tools/javac/util/DiagnosticSource.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -32,7 +32,7 @@ import java.util.Map;
import
javax.tools.JavaFileObject
;
import
com.sun.tools.javac.file.JavacFileManager
;
import
com.sun.tools.javac.
parser
.EndPosTable
;
import
com.sun.tools.javac.
tree
.EndPosTable
;
import
com.sun.tools.javac.tree.JCTree
;
import
static
com
.
sun
.
tools
.
javac
.
util
.
LayoutCharacters
.*;
...
...
src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2003, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -35,7 +35,7 @@ import javax.tools.JavaFileObject;
import
com.sun.tools.javac.api.DiagnosticFormatter
;
import
com.sun.tools.javac.code.Lint.LintCategory
;
import
com.sun.tools.javac.
parser
.EndPosTable
;
import
com.sun.tools.javac.
tree
.EndPosTable
;
import
com.sun.tools.javac.tree.JCTree
;
import
static
com
.
sun
.
tools
.
javac
.
util
.
JCDiagnostic
.
DiagnosticType
.*;
...
...
src/share/classes/com/sun/tools/javac/util/Log.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -37,7 +37,7 @@ import javax.tools.JavaFileObject;
import
com.sun.tools.javac.api.DiagnosticFormatter
;
import
com.sun.tools.javac.main.Main
;
import
com.sun.tools.javac.main.Option
;
import
com.sun.tools.javac.
parser
.EndPosTable
;
import
com.sun.tools.javac.
tree
.EndPosTable
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticType
;
...
...
src/share/classes/com/sun/tools/javadoc/JavadocEnter.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2001, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -25,14 +25,17 @@
package
com.sun.tools.javadoc
;
import
com.sun.tools.javac.util.Context
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition
;
import
com.sun.tools.javac.util.List
;
import
javax.tools.JavaFileObject
;
import
com.sun.tools.javac.code.Kinds
;
import
com.sun.tools.javac.code.Symbol.*
;
import
com.sun.tools.javac.comp.Enter
;
import
com.sun.tools.javac.tree.JCTree.*
;
import
javax.tools.JavaFileObject
;
import
com.sun.tools.javac.tree.TreeInfo
;
import
com.sun.tools.javac.util.Context
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition
;
import
com.sun.tools.javac.util.List
;
/**
* Javadoc's own enter phase does a few things above and beyond that
...
...
@@ -77,7 +80,7 @@ public class JavadocEnter extends Enter {
public
void
visitTopLevel
(
JCCompilationUnit
tree
)
{
super
.
visitTopLevel
(
tree
);
if
(
tree
.
sourcefile
.
isNameCompatible
(
"package-info"
,
JavaFileObject
.
Kind
.
SOURCE
))
{
String
comment
=
tree
.
docComments
.
get
(
tree
);
String
comment
=
TreeInfo
.
getCommentText
(
env
,
tree
);
docenv
.
makePackageDoc
(
tree
.
packge
,
comment
,
tree
);
}
}
...
...
@@ -87,7 +90,7 @@ public class JavadocEnter extends Enter {
super
.
visitClassDef
(
tree
);
if
(
tree
.
sym
==
null
)
return
;
if
(
tree
.
sym
.
kind
==
Kinds
.
TYP
||
tree
.
sym
.
kind
==
Kinds
.
ERR
)
{
String
comment
=
env
.
toplevel
.
docComments
.
get
(
tree
);
String
comment
=
TreeInfo
.
getCommentText
(
env
,
tree
);
ClassSymbol
c
=
tree
.
sym
;
docenv
.
makeClassDoc
(
c
,
comment
,
tree
,
env
.
toplevel
.
lineMap
);
}
...
...
src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2003, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -25,13 +25,14 @@
package
com.sun.tools.javadoc
;
import
com.sun.tools.javac.util.Context
;
import
com.sun.tools.javac.util.Position
;
import
com.sun.tools.javac.code.Flags
;
import
com.sun.tools.javac.code.Kinds
;
import
com.sun.tools.javac.code.Symbol.*
;
import
com.sun.tools.javac.comp.MemberEnter
;
import
com.sun.tools.javac.tree.JCTree.*
;
import
com.sun.tools.javac.tree.TreeInfo
;
import
com.sun.tools.javac.util.Context
;
import
com.sun.tools.javac.util.Position
;
/**
* Javadoc's own memberEnter phase does a few things above and beyond that
...
...
@@ -61,11 +62,12 @@ public class JavadocMemberEnter extends MemberEnter {
docenv
=
DocEnv
.
instance
(
context
);
}
@Override
public
void
visitMethodDef
(
JCMethodDecl
tree
)
{
super
.
visitMethodDef
(
tree
);
MethodSymbol
meth
=
tree
.
sym
;
if
(
meth
==
null
||
meth
.
kind
!=
Kinds
.
MTH
)
return
;
String
docComment
=
env
.
toplevel
.
docComments
.
get
(
tree
);
String
docComment
=
TreeInfo
.
getCommentText
(
env
,
tree
);
Position
.
LineMap
lineMap
=
env
.
toplevel
.
lineMap
;
if
(
meth
.
isConstructor
())
docenv
.
makeConstructorDoc
(
meth
,
docComment
,
tree
,
lineMap
);
...
...
@@ -75,12 +77,13 @@ public class JavadocMemberEnter extends MemberEnter {
docenv
.
makeMethodDoc
(
meth
,
docComment
,
tree
,
lineMap
);
}
@Override
public
void
visitVarDef
(
JCVariableDecl
tree
)
{
super
.
visitVarDef
(
tree
);
if
(
tree
.
sym
!=
null
&&
tree
.
sym
.
kind
==
Kinds
.
VAR
&&
!
isParameter
(
tree
.
sym
))
{
String
docComment
=
env
.
toplevel
.
docComments
.
get
(
tree
);
String
docComment
=
TreeInfo
.
getCommentText
(
env
,
tree
);
Position
.
LineMap
lineMap
=
env
.
toplevel
.
lineMap
;
docenv
.
makeFieldDoc
(
tree
.
sym
,
docComment
,
tree
,
lineMap
);
}
...
...
test/tools/javac/6304921/TestLog.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2005, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -33,9 +33,9 @@ import java.net.URI;
import
javax.tools.JavaFileObject
;
import
javax.tools.SimpleJavaFileObject
;
import
com.sun.tools.javac.file.JavacFileManager
;
import
com.sun.tools.javac.parser.EndPosTable
;
import
com.sun.tools.javac.parser.Parser
;
import
com.sun.tools.javac.parser.ParserFactory
;
import
com.sun.tools.javac.tree.EndPosTable
;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.tree.TreeScanner
;
import
com.sun.tools.javac.util.Context
;
...
...
test/tools/javac/failover/CheckAttributedTree.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2010, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -68,7 +68,7 @@ import com.sun.source.util.TaskListener;
import
com.sun.tools.javac.api.JavacTool
;
import
com.sun.tools.javac.code.Symbol
;
import
com.sun.tools.javac.code.Type
;
import
com.sun.tools.javac.
parser
.EndPosTable
;
import
com.sun.tools.javac.
tree
.EndPosTable
;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.tree.JCTree.JCCompilationUnit
;
import
com.sun.tools.javac.tree.JCTree.JCImport
;
...
...
test/tools/javac/tree/DocCommentToplevelTest.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011,
2012,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -29,6 +29,7 @@
import
com.sun.source.tree.*
;
import
com.sun.source.util.*
;
import
com.sun.tools.javac.tree.DocCommentTable
;
import
com.sun.tools.javac.tree.JCTree
;
import
java.net.URI
;
...
...
@@ -137,16 +138,16 @@ public class DocCommentToplevelTest {
new
TreeScanner
<
ClassTree
,
Void
>()
{
Map
<
JCTree
,
String
>
docComments
;
DocCommentTable
docComments
;
@Override
public
ClassTree
visitCompilationUnit
(
CompilationUnitTree
node
,
Void
unused
)
{
docComments
=
((
JCTree
.
JCCompilationUnit
)
node
).
docComments
;
boolean
expectedComment
=
tdk
==
ToplevelDocKind
.
HAS_DOC
&&
(
pk
!=
PackageKind
.
NO_PKG
||
ik
!=
ImportKind
.
ZERO
);
boolean
foundComment
=
docComments
.
get
(
node
)
!=
null
;
boolean
foundComment
=
docComments
.
hasComment
((
JCTree
)
node
)
;
if
(
expectedComment
!=
foundComment
)
{
error
(
"Unexpected comment "
+
docComments
.
get
(
node
)
+
" on toplevel"
);
error
(
"Unexpected comment "
+
docComments
.
get
Comment
((
JCTree
)
node
)
+
" on toplevel"
);
}
return
super
.
visitCompilationUnit
(
node
,
null
);
}
...
...
@@ -156,9 +157,9 @@ public class DocCommentToplevelTest {
boolean
expectedComment
=
tdk
==
ToplevelDocKind
.
HAS_DOC
&&
pk
==
PackageKind
.
NO_PKG
&&
ik
==
ImportKind
.
ZERO
&&
node
.
getSimpleName
().
toString
().
equals
(
"First"
);
boolean
foundComment
=
docComments
.
get
(
node
)
!=
null
;
boolean
foundComment
=
docComments
.
hasComment
((
JCTree
)
node
)
;
if
(
expectedComment
!=
foundComment
)
{
error
(
"Unexpected comment "
+
docComments
.
get
(
node
)
+
" on class "
+
node
.
getSimpleName
());
error
(
"Unexpected comment "
+
docComments
.
get
Comment
((
JCTree
)
node
)
+
" on class "
+
node
.
getSimpleName
());
}
return
super
.
visitClass
(
node
,
unused
);
}
...
...
test/tools/javac/tree/TreePosTest.java
浏览文件 @
00ec38a2
/*
* Copyright (c) 2010, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010, 201
2
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -73,7 +73,7 @@ import com.sun.source.tree.CompilationUnitTree;
import
com.sun.source.util.JavacTask
;
import
com.sun.tools.javac.api.JavacTool
;
import
com.sun.tools.javac.code.Flags
;
import
com.sun.tools.javac.
parser
.EndPosTable
;
import
com.sun.tools.javac.
tree
.EndPosTable
;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.tree.JCTree.JCCompilationUnit
;
import
com.sun.tools.javac.tree.JCTree.JCNewClass
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录