Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
27214fe3
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看板
提交
27214fe3
编写于
2月 11, 2013
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
715709dc
e7f186d4
变更
64
展开全部
隐藏空白更改
内联
并排
Showing
64 changed file
with
2026 addition
and
189 deletion
+2026
-189
make/Makefile-classic
make/Makefile-classic
+1
-0
make/build.properties
make/build.properties
+1
-0
src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java
...om/sun/tools/doclets/formats/html/PackageIndexWriter.java
+3
-6
src/share/classes/com/sun/tools/javac/code/Symbol.java
src/share/classes/com/sun/tools/javac/code/Symbol.java
+7
-3
src/share/classes/com/sun/tools/javac/comp/Lower.java
src/share/classes/com/sun/tools/javac/comp/Lower.java
+33
-16
src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
+2
-4
src/share/classes/com/sun/tools/javac/jvm/Pool.java
src/share/classes/com/sun/tools/javac/jvm/Pool.java
+22
-22
src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
+2
-0
src/share/classes/com/sun/tools/javac/parser/DocCommentParser.java
.../classes/com/sun/tools/javac/parser/DocCommentParser.java
+32
-54
src/share/classes/com/sun/tools/javac/parser/JavadocTokenizer.java
.../classes/com/sun/tools/javac/parser/JavadocTokenizer.java
+2
-2
src/share/classes/com/sun/tools/javac/tree/DCTree.java
src/share/classes/com/sun/tools/javac/tree/DCTree.java
+4
-4
src/share/classes/com/sun/tools/javadoc/api/JavadocTool.java
src/share/classes/com/sun/tools/javadoc/api/JavadocTool.java
+5
-4
src/share/classes/jdk/Supported.java
src/share/classes/jdk/Supported.java
+53
-0
test/tools/doclint/EndWithIdentifierTest.java
test/tools/doclint/EndWithIdentifierTest.java
+32
-0
test/tools/doclint/EndWithIdentifierTest.out
test/tools/doclint/EndWithIdentifierTest.out
+20
-0
test/tools/doclint/UnfinishedInlineTagTest.java
test/tools/doclint/UnfinishedInlineTagTest.java
+17
-0
test/tools/doclint/UnfinishedInlineTagTest.out
test/tools/doclint/UnfinishedInlineTagTest.out
+5
-0
test/tools/javac/7199823/InnerClassCannotBeVerified.java
test/tools/javac/7199823/InnerClassCannotBeVerified.java
+110
-0
test/tools/javac/annotations/typeAnnotations/TargetTypes.java
.../tools/javac/annotations/typeAnnotations/TargetTypes.java
+1
-1
test/tools/javac/annotations/typeAnnotations/TypeProcOnly.java
...tools/javac/annotations/typeAnnotations/TypeProcOnly.java
+1
-1
test/tools/javac/annotations/typeAnnotations/api/AnnotatedArrayOrder.java
.../annotations/typeAnnotations/api/AnnotatedArrayOrder.java
+1
-1
test/tools/javac/annotations/typeAnnotations/api/ArrayCreationTree.java
...ac/annotations/typeAnnotations/api/ArrayCreationTree.java
+1
-1
test/tools/javac/annotations/typeAnnotations/api/ArrayPositionConsistency.java
...tations/typeAnnotations/api/ArrayPositionConsistency.java
+1
-1
test/tools/javac/annotations/typeAnnotations/classfile/ClassfileTestHelper.java
...ations/typeAnnotations/classfile/ClassfileTestHelper.java
+1
-1
test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest1.java
...ns/typeAnnotations/classfile/CombinationsTargetTest1.java
+4
-7
test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest2.java
...ns/typeAnnotations/classfile/CombinationsTargetTest2.java
+4
-7
test/tools/javac/annotations/typeAnnotations/classfile/NewTypeArguments.java
...notations/typeAnnotations/classfile/NewTypeArguments.java
+1
-1
test/tools/javac/annotations/typeAnnotations/classfile/NoTargetAnnotations.java
...ations/typeAnnotations/classfile/NoTargetAnnotations.java
+1
-1
test/tools/javac/annotations/typeAnnotations/classfile/TypeCasts.java
...avac/annotations/typeAnnotations/classfile/TypeCasts.java
+1
-1
test/tools/javac/annotations/typeAnnotations/classfile/Wildcards.java
...avac/annotations/typeAnnotations/classfile/Wildcards.java
+1
-1
test/tools/javac/annotations/typeAnnotations/failures/target/DotClass.java
...annotations/typeAnnotations/failures/target/DotClass.java
+9
-9
test/tools/javac/annotations/typeAnnotations/newlocations/RepeatingTypeAnnotations.java
...ypeAnnotations/newlocations/RepeatingTypeAnnotations.java
+0
-1
test/tools/javac/annotations/typeAnnotations/newlocations/Varargs.java
...vac/annotations/typeAnnotations/newlocations/Varargs.java
+3
-4
test/tools/javac/annotations/typeAnnotations/packageanno/PackageProcessor.java
...tations/typeAnnotations/packageanno/PackageProcessor.java
+1
-1
test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/Anno.java
...notations/typeAnnotations/packageanno/mypackage/Anno.java
+1
-1
test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/MyClass.java
...ations/typeAnnotations/packageanno/mypackage/MyClass.java
+1
-1
test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/package-info.java
...s/typeAnnotations/packageanno/mypackage/package-info.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassExtends.java
...otations/typeAnnotations/referenceinfos/ClassExtends.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassTypeParam.java
...ations/typeAnnotations/referenceinfos/ClassTypeParam.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/Constructors.java
...otations/typeAnnotations/referenceinfos/Constructors.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/Driver.java
...ac/annotations/typeAnnotations/referenceinfos/Driver.java
+3
-3
test/tools/javac/annotations/typeAnnotations/referenceinfos/ExceptionParameters.java
...s/typeAnnotations/referenceinfos/ExceptionParameters.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/Fields.java
...ac/annotations/typeAnnotations/referenceinfos/Fields.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/FromSpecification.java
...ons/typeAnnotations/referenceinfos/FromSpecification.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodParameters.java
...ions/typeAnnotations/referenceinfos/MethodParameters.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReceivers.java
...tions/typeAnnotations/referenceinfos/MethodReceivers.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReturns.java
...tations/typeAnnotations/referenceinfos/MethodReturns.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodThrows.java
...otations/typeAnnotations/referenceinfos/MethodThrows.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodTypeParam.java
...tions/typeAnnotations/referenceinfos/MethodTypeParam.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java
...nnotations/typeAnnotations/referenceinfos/MultiCatch.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/NestedTypes.java
...notations/typeAnnotations/referenceinfos/NestedTypes.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/NewObjects.java
...nnotations/typeAnnotations/referenceinfos/NewObjects.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java
...ons/typeAnnotations/referenceinfos/ReferenceInfoUtil.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/RepeatingTypeAnnotations.java
...eAnnotations/referenceinfos/RepeatingTypeAnnotations.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeCasts.java
...annotations/typeAnnotations/referenceinfos/TypeCasts.java
+1
-1
test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeTests.java
...annotations/typeAnnotations/referenceinfos/TypeTests.java
+1
-1
test/tools/javac/api/8007344/Test.java
test/tools/javac/api/8007344/Test.java
+227
-0
test/tools/javac/api/T6306137.java
test/tools/javac/api/T6306137.java
+0
-3
test/tools/javac/defaultMethods/TestNoBridgeOnDefaults.java
test/tools/javac/defaultMethods/TestNoBridgeOnDefaults.java
+0
-1
test/tools/javac/lambda/LambdaCapture06.java
test/tools/javac/lambda/LambdaCapture06.java
+0
-1
test/tools/javac/lambda/LambdaExpr15.java
test/tools/javac/lambda/LambdaExpr15.java
+0
-1
test/tools/javac/lib/DPrinter.java
test/tools/javac/lib/DPrinter.java
+1331
-0
test/tools/javac/lib/JavacTestingAbstractThreadedTest.java
test/tools/javac/lib/JavacTestingAbstractThreadedTest.java
+14
-1
test/tools/javadoc/api/basic/RunTest.java
test/tools/javadoc/api/basic/RunTest.java
+48
-4
未找到文件。
make/Makefile-classic
浏览文件 @
27214fe3
...
@@ -241,6 +241,7 @@ JAVAC_DIRS = \
...
@@ -241,6 +241,7 @@ JAVAC_DIRS = \
javax/annotation/processing \
javax/annotation/processing \
javax/lang/model \
javax/lang/model \
javax/tools \
javax/tools \
jdk/ \
com/sun/source \
com/sun/source \
com/sun/tools/javac
com/sun/tools/javac
...
...
make/build.properties
浏览文件 @
27214fe3
...
@@ -116,6 +116,7 @@ javac.includes = \
...
@@ -116,6 +116,7 @@ javac.includes = \
javax/annotation/processing/
\
javax/annotation/processing/
\
javax/lang/model/
\
javax/lang/model/
\
javax/tools/
\
javax/tools/
\
jdk/
\
com/sun/source/
\
com/sun/source/
\
com/sun/tools/javac/
\
com/sun/tools/javac/
\
com/sun/tools/doclint/
com/sun/tools/doclint/
...
...
src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 1997, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -196,10 +196,7 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
...
@@ -196,10 +196,7 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
protected
void
addOverviewComment
(
Content
htmltree
)
{
protected
void
addOverviewComment
(
Content
htmltree
)
{
if
(
root
.
inlineTags
().
length
>
0
)
{
if
(
root
.
inlineTags
().
length
>
0
)
{
htmltree
.
addContent
(
getMarkerAnchor
(
"overview_description"
));
htmltree
.
addContent
(
getMarkerAnchor
(
"overview_description"
));
HtmlTree
div
=
new
HtmlTree
(
HtmlTag
.
DIV
);
addInlineComment
(
root
,
htmltree
);
div
.
addStyle
(
HtmlStyle
.
subTitle
);
addInlineComment
(
root
,
div
);
htmltree
.
addContent
(
div
);
}
}
}
}
...
@@ -211,7 +208,7 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
...
@@ -211,7 +208,7 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
*/
*/
protected
void
addOverview
(
Content
body
)
throws
IOException
{
protected
void
addOverview
(
Content
body
)
throws
IOException
{
HtmlTree
div
=
new
HtmlTree
(
HtmlTag
.
DIV
);
HtmlTree
div
=
new
HtmlTree
(
HtmlTag
.
DIV
);
div
.
addStyle
(
HtmlStyle
.
foot
er
);
div
.
addStyle
(
HtmlStyle
.
contentContain
er
);
addOverviewComment
(
div
);
addOverviewComment
(
div
);
addTagsInfo
(
root
,
div
);
addTagsInfo
(
root
,
div
);
body
.
addContent
(
div
);
body
.
addContent
(
div
);
...
...
src/share/classes/com/sun/tools/javac/code/Symbol.java
浏览文件 @
27214fe3
...
@@ -496,9 +496,9 @@ public abstract class Symbol implements Element {
...
@@ -496,9 +496,9 @@ public abstract class Symbol implements Element {
return
l
.
toList
();
return
l
.
toList
();
}
}
public
static
class
DelegatedSymbol
extends
Symbol
{
public
static
class
DelegatedSymbol
<
T
extends
Symbol
>
extends
Symbol
{
protected
Symbol
other
;
protected
T
other
;
public
DelegatedSymbol
(
Symbol
other
)
{
public
DelegatedSymbol
(
T
other
)
{
super
(
other
.
kind
,
other
.
flags_field
,
other
.
name
,
other
.
type
,
other
.
owner
);
super
(
other
.
kind
,
other
.
flags_field
,
other
.
name
,
other
.
type
,
other
.
owner
);
this
.
other
=
other
;
this
.
other
=
other
;
}
}
...
@@ -532,6 +532,10 @@ public abstract class Symbol implements Element {
...
@@ -532,6 +532,10 @@ public abstract class Symbol implements Element {
public
<
R
,
P
>
R
accept
(
Symbol
.
Visitor
<
R
,
P
>
v
,
P
p
)
{
public
<
R
,
P
>
R
accept
(
Symbol
.
Visitor
<
R
,
P
>
v
,
P
p
)
{
return
v
.
visitSymbol
(
other
,
p
);
return
v
.
visitSymbol
(
other
,
p
);
}
}
public
T
getUnderlyingSymbol
()
{
return
other
;
}
}
}
/** A class for type symbols. Type variables are represented by instances
/** A class for type symbols. Type variables are represented by instances
...
...
src/share/classes/com/sun/tools/javac/comp/Lower.java
浏览文件 @
27214fe3
...
@@ -570,10 +570,19 @@ public class Lower extends TreeTranslator {
...
@@ -570,10 +570,19 @@ public class Lower extends TreeTranslator {
* @param flags The class symbol's flags
* @param flags The class symbol's flags
* @param owner The class symbol's owner
* @param owner The class symbol's owner
*/
*/
ClassSymbol
makeEmptyClass
(
long
flags
,
ClassSymbol
owner
)
{
JCClassDecl
makeEmptyClass
(
long
flags
,
ClassSymbol
owner
)
{
return
makeEmptyClass
(
flags
,
owner
,
null
,
true
);
}
JCClassDecl
makeEmptyClass
(
long
flags
,
ClassSymbol
owner
,
Name
flatname
,
boolean
addToDefs
)
{
// Create class symbol.
// Create class symbol.
ClassSymbol
c
=
reader
.
defineClass
(
names
.
empty
,
owner
);
ClassSymbol
c
=
reader
.
defineClass
(
names
.
empty
,
owner
);
c
.
flatname
=
chk
.
localClassName
(
c
);
if
(
flatname
!=
null
)
{
c
.
flatname
=
flatname
;
}
else
{
c
.
flatname
=
chk
.
localClassName
(
c
);
}
c
.
sourcefile
=
owner
.
sourcefile
;
c
.
sourcefile
=
owner
.
sourcefile
;
c
.
completer
=
null
;
c
.
completer
=
null
;
c
.
members_field
=
new
Scope
(
c
);
c
.
members_field
=
new
Scope
(
c
);
...
@@ -597,9 +606,8 @@ public class Lower extends TreeTranslator {
...
@@ -597,9 +606,8 @@ public class Lower extends TreeTranslator {
cdef
.
type
=
c
.
type
;
cdef
.
type
=
c
.
type
;
// Append class definition tree to owner's definitions.
// Append class definition tree to owner's definitions.
odef
.
defs
=
odef
.
defs
.
prepend
(
cdef
);
if
(
addToDefs
)
odef
.
defs
=
odef
.
defs
.
prepend
(
cdef
);
return
cdef
;
return
c
;
}
}
/**************************************************************************
/**************************************************************************
...
@@ -706,7 +714,7 @@ public class Lower extends TreeTranslator {
...
@@ -706,7 +714,7 @@ public class Lower extends TreeTranslator {
* and synthethise a class (with makeEmptyClass) if one is not available.
* and synthethise a class (with makeEmptyClass) if one is not available.
* However, there is a small possibility that an existing class will not
* However, there is a small possibility that an existing class will not
* be generated as expected if it is inside a conditional with a constant
* be generated as expected if it is inside a conditional with a constant
* expression. If that is found to be the case, create an empty class here.
* expression. If that is found to be the case, create an empty class
tree
here.
*/
*/
private
void
checkAccessConstructorTags
()
{
private
void
checkAccessConstructorTags
()
{
for
(
List
<
ClassSymbol
>
l
=
accessConstrTags
;
l
.
nonEmpty
();
l
=
l
.
tail
)
{
for
(
List
<
ClassSymbol
>
l
=
accessConstrTags
;
l
.
nonEmpty
();
l
=
l
.
tail
)
{
...
@@ -714,14 +722,10 @@ public class Lower extends TreeTranslator {
...
@@ -714,14 +722,10 @@ public class Lower extends TreeTranslator {
if
(
isTranslatedClassAvailable
(
c
))
if
(
isTranslatedClassAvailable
(
c
))
continue
;
continue
;
// Create class definition tree.
// Create class definition tree.
JCClassDecl
cdef
=
make
.
ClassDef
(
JCClassDecl
cdec
=
makeEmptyClass
(
STATIC
|
SYNTHETIC
,
make
.
Modifiers
(
STATIC
|
SYNTHETIC
),
names
.
empty
,
c
.
outermostClass
(),
c
.
flatname
,
false
);
List
.<
JCTypeParameter
>
nil
(),
swapAccessConstructorTag
(
c
,
cdec
.
sym
);
null
,
List
.<
JCExpression
>
nil
(),
List
.<
JCTree
>
nil
());
translated
.
append
(
cdec
);
cdef
.
sym
=
c
;
cdef
.
type
=
c
.
type
;
// add it to the list of classes to be generated
translated
.
append
(
cdef
);
}
}
}
}
// where
// where
...
@@ -735,6 +739,19 @@ public class Lower extends TreeTranslator {
...
@@ -735,6 +739,19 @@ public class Lower extends TreeTranslator {
return
false
;
return
false
;
}
}
void
swapAccessConstructorTag
(
ClassSymbol
oldCTag
,
ClassSymbol
newCTag
)
{
for
(
MethodSymbol
methodSymbol
:
accessConstrs
.
values
())
{
Assert
.
check
(
methodSymbol
.
type
.
hasTag
(
METHOD
));
MethodType
oldMethodType
=
(
MethodType
)
methodSymbol
.
type
;
if
(
oldMethodType
.
argtypes
.
head
.
tsym
==
oldCTag
)
methodSymbol
.
type
=
types
.
createMethodTypeWithParameters
(
oldMethodType
,
oldMethodType
.
getParameterTypes
().
tail
.
prepend
(
newCTag
.
erasure
(
types
)));
}
}
/**************************************************************************
/**************************************************************************
* Access methods
* Access methods
*************************************************************************/
*************************************************************************/
...
@@ -1211,7 +1228,7 @@ public class Lower extends TreeTranslator {
...
@@ -1211,7 +1228,7 @@ public class Lower extends TreeTranslator {
"1"
);
"1"
);
ClassSymbol
ctag
=
chk
.
compiled
.
get
(
flatname
);
ClassSymbol
ctag
=
chk
.
compiled
.
get
(
flatname
);
if
(
ctag
==
null
)
if
(
ctag
==
null
)
ctag
=
makeEmptyClass
(
STATIC
|
SYNTHETIC
,
topClass
);
ctag
=
makeEmptyClass
(
STATIC
|
SYNTHETIC
,
topClass
)
.
sym
;
// keep a record of all tags, to verify that all are generated as required
// keep a record of all tags, to verify that all are generated as required
accessConstrTags
=
accessConstrTags
.
prepend
(
ctag
);
accessConstrTags
=
accessConstrTags
.
prepend
(
ctag
);
return
ctag
;
return
ctag
;
...
@@ -1778,7 +1795,7 @@ public class Lower extends TreeTranslator {
...
@@ -1778,7 +1795,7 @@ public class Lower extends TreeTranslator {
if
(
e
.
sym
.
kind
==
TYP
&&
if
(
e
.
sym
.
kind
==
TYP
&&
e
.
sym
.
name
==
names
.
empty
&&
e
.
sym
.
name
==
names
.
empty
&&
(
e
.
sym
.
flags
()
&
INTERFACE
)
==
0
)
return
(
ClassSymbol
)
e
.
sym
;
(
e
.
sym
.
flags
()
&
INTERFACE
)
==
0
)
return
(
ClassSymbol
)
e
.
sym
;
return
makeEmptyClass
(
STATIC
|
SYNTHETIC
,
clazz
);
return
makeEmptyClass
(
STATIC
|
SYNTHETIC
,
clazz
)
.
sym
;
}
}
/** Return symbol for "class$" method. If there is no method definition
/** Return symbol for "class$" method. If there is no method definition
...
...
src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
浏览文件 @
27214fe3
...
@@ -482,10 +482,8 @@ public class ClassWriter extends ClassFile {
...
@@ -482,10 +482,8 @@ public class ClassWriter extends ClassFile {
while
(
i
<
pool
.
pp
)
{
while
(
i
<
pool
.
pp
)
{
Object
value
=
pool
.
pool
[
i
];
Object
value
=
pool
.
pool
[
i
];
Assert
.
checkNonNull
(
value
);
Assert
.
checkNonNull
(
value
);
if
(
value
instanceof
Method
)
if
(
value
instanceof
Method
||
value
instanceof
Variable
)
value
=
((
Method
)
value
).
m
;
value
=
((
DelegatedSymbol
)
value
).
getUnderlyingSymbol
();
else
if
(
value
instanceof
Variable
)
value
=
((
Variable
)
value
).
v
;
if
(
value
instanceof
MethodSymbol
)
{
if
(
value
instanceof
MethodSymbol
)
{
MethodSymbol
m
=
(
MethodSymbol
)
value
;
MethodSymbol
m
=
(
MethodSymbol
)
value
;
...
...
src/share/classes/com/sun/tools/javac/jvm/Pool.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -140,23 +140,23 @@ public class Pool {
...
@@ -140,23 +140,23 @@ public class Pool {
return
n
==
null
?
-
1
:
n
.
intValue
();
return
n
==
null
?
-
1
:
n
.
intValue
();
}
}
static
class
Method
extends
DelegatedSymbol
{
static
class
Method
extends
DelegatedSymbol
<
MethodSymbol
>
{
MethodSymbol
m
;
UniqueType
uniqueType
;
UniqueType
uniqueType
;
Method
(
MethodSymbol
m
,
Types
types
)
{
Method
(
MethodSymbol
m
,
Types
types
)
{
super
(
m
);
super
(
m
);
this
.
m
=
m
;
this
.
uniqueType
=
new
UniqueType
(
m
.
type
,
types
);
this
.
uniqueType
=
new
UniqueType
(
m
.
type
,
types
);
}
}
public
boolean
equals
(
Object
other
)
{
public
boolean
equals
(
Object
any
)
{
if
(!(
other
instanceof
Method
))
return
false
;
if
(!(
any
instanceof
Method
))
return
false
;
MethodSymbol
o
=
((
Method
)
other
).
m
;
MethodSymbol
o
=
((
Method
)
any
).
other
;
MethodSymbol
m
=
this
.
other
;
return
return
o
.
name
==
m
.
name
&&
o
.
name
==
m
.
name
&&
o
.
owner
==
m
.
owner
&&
o
.
owner
==
m
.
owner
&&
((
Method
)
other
).
uniqueType
.
equals
(
uniqueType
);
((
Method
)
any
).
uniqueType
.
equals
(
uniqueType
);
}
}
public
int
hashCode
()
{
public
int
hashCode
()
{
MethodSymbol
m
=
this
.
other
;
return
return
m
.
name
.
hashCode
()
*
33
+
m
.
name
.
hashCode
()
*
33
+
m
.
owner
.
hashCode
()
*
9
+
m
.
owner
.
hashCode
()
*
9
+
...
@@ -173,21 +173,21 @@ public class Pool {
...
@@ -173,21 +173,21 @@ public class Pool {
}
}
@Override
@Override
public
boolean
equals
(
Object
other
)
{
public
boolean
equals
(
Object
any
)
{
if
(!
super
.
equals
(
other
))
return
false
;
if
(!
super
.
equals
(
any
))
return
false
;
if
(!(
other
instanceof
DynamicMethod
))
return
false
;
if
(!(
any
instanceof
DynamicMethod
))
return
false
;
DynamicMethodSymbol
dm1
=
(
DynamicMethodSymbol
)
m
;
DynamicMethodSymbol
dm1
=
(
DynamicMethodSymbol
)
other
;
DynamicMethodSymbol
dm2
=
(
DynamicMethodSymbol
)((
DynamicMethod
)
other
).
m
;
DynamicMethodSymbol
dm2
=
(
DynamicMethodSymbol
)((
DynamicMethod
)
any
).
other
;
return
dm1
.
bsm
==
dm2
.
bsm
&&
return
dm1
.
bsm
==
dm2
.
bsm
&&
dm1
.
bsmKind
==
dm2
.
bsmKind
&&
dm1
.
bsmKind
==
dm2
.
bsmKind
&&
Arrays
.
equals
(
uniqueStaticArgs
,
Arrays
.
equals
(
uniqueStaticArgs
,
((
DynamicMethod
)
other
).
uniqueStaticArgs
);
((
DynamicMethod
)
any
).
uniqueStaticArgs
);
}
}
@Override
@Override
public
int
hashCode
()
{
public
int
hashCode
()
{
int
hash
=
super
.
hashCode
();
int
hash
=
super
.
hashCode
();
DynamicMethodSymbol
dm
=
(
DynamicMethodSymbol
)
m
;
DynamicMethodSymbol
dm
=
(
DynamicMethodSymbol
)
other
;
hash
+=
dm
.
bsmKind
*
7
+
hash
+=
dm
.
bsmKind
*
7
+
dm
.
bsm
.
hashCode
()
*
11
;
dm
.
bsm
.
hashCode
()
*
11
;
for
(
int
i
=
0
;
i
<
dm
.
staticArgs
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
dm
.
staticArgs
.
length
;
i
++)
{
...
@@ -209,23 +209,23 @@ public class Pool {
...
@@ -209,23 +209,23 @@ public class Pool {
}
}
}
}
static
class
Variable
extends
DelegatedSymbol
{
static
class
Variable
extends
DelegatedSymbol
<
VarSymbol
>
{
VarSymbol
v
;
UniqueType
uniqueType
;
UniqueType
uniqueType
;
Variable
(
VarSymbol
v
,
Types
types
)
{
Variable
(
VarSymbol
v
,
Types
types
)
{
super
(
v
);
super
(
v
);
this
.
v
=
v
;
this
.
uniqueType
=
new
UniqueType
(
v
.
type
,
types
);
this
.
uniqueType
=
new
UniqueType
(
v
.
type
,
types
);
}
}
public
boolean
equals
(
Object
other
)
{
public
boolean
equals
(
Object
any
)
{
if
(!(
other
instanceof
Variable
))
return
false
;
if
(!(
any
instanceof
Variable
))
return
false
;
VarSymbol
o
=
((
Variable
)
other
).
v
;
VarSymbol
o
=
((
Variable
)
any
).
other
;
VarSymbol
v
=
other
;
return
return
o
.
name
==
v
.
name
&&
o
.
name
==
v
.
name
&&
o
.
owner
==
v
.
owner
&&
o
.
owner
==
v
.
owner
&&
((
Variable
)
other
).
uniqueType
.
equals
(
uniqueType
);
((
Variable
)
any
).
uniqueType
.
equals
(
uniqueType
);
}
}
public
int
hashCode
()
{
public
int
hashCode
()
{
VarSymbol
v
=
other
;
return
return
v
.
name
.
hashCode
()
*
33
+
v
.
name
.
hashCode
()
*
33
+
v
.
owner
.
hashCode
()
*
9
+
v
.
owner
.
hashCode
()
*
9
+
...
...
src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
浏览文件 @
27214fe3
...
@@ -629,6 +629,8 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
...
@@ -629,6 +629,8 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
if
(!
taskListener
.
isEmpty
())
{
if
(!
taskListener
.
isEmpty
())
{
TaskEvent
e
=
new
TaskEvent
(
TaskEvent
.
Kind
.
PARSE
,
filename
);
TaskEvent
e
=
new
TaskEvent
(
TaskEvent
.
Kind
.
PARSE
,
filename
);
taskListener
.
started
(
e
);
taskListener
.
started
(
e
);
keepComments
=
true
;
genEndPos
=
true
;
}
}
Parser
parser
=
parserFactory
.
newParser
(
content
,
keepComments
(),
genEndPos
,
lineDebugInfo
);
Parser
parser
=
parserFactory
.
newParser
(
content
,
keepComments
(),
genEndPos
,
lineDebugInfo
);
tree
=
parser
.
parseCompilationUnit
();
tree
=
parser
.
parseCompilationUnit
();
...
...
src/share/classes/com/sun/tools/javac/parser/DocCommentParser.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012,
2013,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -279,13 +279,7 @@ public class DocCommentParser {
...
@@ -279,13 +279,7 @@ public class DocCommentParser {
try
{
try
{
nextChar
();
nextChar
();
if
(
isIdentifierStart
(
ch
))
{
if
(
isIdentifierStart
(
ch
))
{
int
namePos
=
bp
;
Name
name
=
readIdentifier
();
nextChar
();
while
(
isIdentifierPart
(
ch
))
nextChar
();
int
nameLen
=
bp
-
namePos
;
Name
name
=
names
.
fromChars
(
buf
,
namePos
,
nameLen
);
TagParser
tp
=
tagParsers
.
get
(
name
);
TagParser
tp
=
tagParsers
.
get
(
name
);
if
(
tp
==
null
)
{
if
(
tp
==
null
)
{
List
<
DCTree
>
content
=
blockContent
();
List
<
DCTree
>
content
=
blockContent
();
...
@@ -334,14 +328,9 @@ public class DocCommentParser {
...
@@ -334,14 +328,9 @@ public class DocCommentParser {
try
{
try
{
nextChar
();
nextChar
();
if
(
isIdentifierStart
(
ch
))
{
if
(
isIdentifierStart
(
ch
))
{
int
namePos
=
bp
;
Name
name
=
readIdentifier
();
nextChar
();
while
(
isIdentifierPart
(
ch
))
nextChar
();
int
nameLen
=
bp
-
namePos
;
skipWhitespace
();
skipWhitespace
();
Name
name
=
names
.
fromChars
(
buf
,
namePos
,
nameLen
);
TagParser
tp
=
tagParsers
.
get
(
name
);
TagParser
tp
=
tagParsers
.
get
(
name
);
if
(
tp
==
null
)
{
if
(
tp
==
null
)
{
DCTree
text
=
inlineText
();
DCTree
text
=
inlineText
();
...
@@ -575,10 +564,8 @@ public class DocCommentParser {
...
@@ -575,10 +564,8 @@ public class DocCommentParser {
int
pos
=
bp
;
int
pos
=
bp
;
if
(
isJavaIdentifierStart
(
ch
))
{
if
(
isJavaIdentifierStart
(
ch
))
{
nextChar
();
Name
name
=
readJavaIdentifier
();
while
(
isJavaIdentifierPart
(
ch
))
return
m
.
at
(
pos
).
Identifier
(
name
);
nextChar
();
return
m
.
at
(
pos
).
Identifier
(
names
.
fromChars
(
buf
,
pos
,
bp
-
pos
));
}
}
throw
new
ParseException
(
"dc.identifier.expected"
);
throw
new
ParseException
(
"dc.identifier.expected"
);
...
@@ -703,39 +690,36 @@ public class DocCommentParser {
...
@@ -703,39 +690,36 @@ public class DocCommentParser {
protected
DCTree
entity
()
{
protected
DCTree
entity
()
{
int
p
=
bp
;
int
p
=
bp
;
nextChar
();
nextChar
();
int
namep
=
bp
;
Name
name
=
null
;
boolean
checkSemi
=
false
;
boolean
checkSemi
=
false
;
if
(
ch
==
'#'
)
{
if
(
ch
==
'#'
)
{
int
namep
=
bp
;
nextChar
();
nextChar
();
if
(
isDecimalDigit
(
ch
))
{
if
(
isDecimalDigit
(
ch
))
{
nextChar
();
nextChar
();
while
(
isDecimalDigit
(
ch
))
while
(
isDecimalDigit
(
ch
))
nextChar
();
nextChar
();
checkSemi
=
true
;
name
=
names
.
fromChars
(
buf
,
namep
,
bp
-
namep
)
;
}
else
if
(
ch
==
'x'
||
ch
==
'X'
)
{
}
else
if
(
ch
==
'x'
||
ch
==
'X'
)
{
nextChar
();
nextChar
();
if
(
isHexDigit
(
ch
))
{
if
(
isHexDigit
(
ch
))
{
nextChar
();
nextChar
();
while
(
isHexDigit
(
ch
))
while
(
isHexDigit
(
ch
))
nextChar
();
nextChar
();
checkSemi
=
true
;
name
=
names
.
fromChars
(
buf
,
namep
,
bp
-
namep
)
;
}
}
}
}
}
else
if
(
isIdentifierStart
(
ch
))
{
}
else
if
(
isIdentifierStart
(
ch
))
{
nextChar
();
name
=
readIdentifier
();
while
(
isIdentifierPart
(
ch
))
nextChar
();
checkSemi
=
true
;
}
}
if
(
checkSemi
&&
ch
==
';'
)
{
if
(
name
==
null
)
return
erroneous
(
"dc.bad.entity"
,
p
);
else
{
if
(
ch
!=
';'
)
return
erroneous
(
"dc.missing.semicolon"
,
p
);
nextChar
();
nextChar
();
return
m
.
at
(
p
).
Entity
(
names
.
fromChars
(
buf
,
namep
,
bp
-
namep
-
1
));
return
m
.
at
(
p
).
Entity
(
name
);
}
else
{
String
code
=
checkSemi
?
"dc.missing.semicolon"
:
"dc.bad.entity"
;
return
erroneous
(
code
,
p
);
}
}
}
}
...
@@ -747,11 +731,7 @@ public class DocCommentParser {
...
@@ -747,11 +731,7 @@ public class DocCommentParser {
int
p
=
bp
;
int
p
=
bp
;
nextChar
();
nextChar
();
if
(
isIdentifierStart
(
ch
))
{
if
(
isIdentifierStart
(
ch
))
{
int
namePos
=
bp
;
Name
name
=
readIdentifier
();
nextChar
();
while
(
isIdentifierPart
(
ch
))
nextChar
();
int
nameLen
=
bp
-
namePos
;
List
<
DCTree
>
attrs
=
htmlAttrs
();
List
<
DCTree
>
attrs
=
htmlAttrs
();
if
(
attrs
!=
null
)
{
if
(
attrs
!=
null
)
{
boolean
selfClosing
=
false
;
boolean
selfClosing
=
false
;
...
@@ -761,22 +741,16 @@ public class DocCommentParser {
...
@@ -761,22 +741,16 @@ public class DocCommentParser {
}
}
if
(
ch
==
'>'
)
{
if
(
ch
==
'>'
)
{
nextChar
();
nextChar
();
Name
name
=
names
.
fromChars
(
buf
,
namePos
,
nameLen
);
return
m
.
at
(
p
).
StartElement
(
name
,
attrs
,
selfClosing
);
return
m
.
at
(
p
).
StartElement
(
name
,
attrs
,
selfClosing
);
}
}
}
}
}
else
if
(
ch
==
'/'
)
{
}
else
if
(
ch
==
'/'
)
{
nextChar
();
nextChar
();
if
(
isIdentifierStart
(
ch
))
{
if
(
isIdentifierStart
(
ch
))
{
int
namePos
=
bp
;
Name
name
=
readIdentifier
();
nextChar
();
while
(
isIdentifierPart
(
ch
))
nextChar
();
int
nameLen
=
bp
-
namePos
;
skipWhitespace
();
skipWhitespace
();
if
(
ch
==
'>'
)
{
if
(
ch
==
'>'
)
{
nextChar
();
nextChar
();
Name
name
=
names
.
fromChars
(
buf
,
namePos
,
nameLen
);
return
m
.
at
(
p
).
EndElement
(
name
);
return
m
.
at
(
p
).
EndElement
(
name
);
}
}
}
}
...
@@ -822,10 +796,7 @@ public class DocCommentParser {
...
@@ -822,10 +796,7 @@ public class DocCommentParser {
loop:
loop:
while
(
isIdentifierStart
(
ch
))
{
while
(
isIdentifierStart
(
ch
))
{
int
namePos
=
bp
;
int
namePos
=
bp
;
nextChar
();
Name
name
=
readIdentifier
();
while
(
isIdentifierPart
(
ch
))
nextChar
();
int
nameLen
=
bp
-
namePos
;
skipWhitespace
();
skipWhitespace
();
List
<
DCTree
>
value
=
null
;
List
<
DCTree
>
value
=
null
;
ValueKind
vkind
=
ValueKind
.
EMPTY
;
ValueKind
vkind
=
ValueKind
.
EMPTY
;
...
@@ -862,7 +833,6 @@ public class DocCommentParser {
...
@@ -862,7 +833,6 @@ public class DocCommentParser {
skipWhitespace
();
skipWhitespace
();
value
=
v
.
toList
();
value
=
v
.
toList
();
}
}
Name
name
=
names
.
fromChars
(
buf
,
namePos
,
nameLen
);
DCAttribute
attr
=
m
.
at
(
namePos
).
Attribute
(
name
,
vkind
,
value
);
DCAttribute
attr
=
m
.
at
(
namePos
).
Attribute
(
name
,
vkind
,
value
);
attrs
.
add
(
attr
);
attrs
.
add
(
attr
);
}
}
...
@@ -897,7 +867,7 @@ public class DocCommentParser {
...
@@ -897,7 +867,7 @@ public class DocCommentParser {
protected
DCErroneous
erroneous
(
String
code
,
int
pos
)
{
protected
DCErroneous
erroneous
(
String
code
,
int
pos
)
{
int
i
=
bp
-
1
;
int
i
=
bp
-
1
;
loop:
loop:
while
(
i
>
0
)
{
while
(
i
>
pos
)
{
switch
(
buf
[
i
])
{
switch
(
buf
[
i
])
{
case
'\f'
:
case
'\n'
:
case
'\r'
:
case
'\f'
:
case
'\n'
:
case
'\r'
:
newline
=
true
;
newline
=
true
;
...
@@ -926,16 +896,24 @@ public class DocCommentParser {
...
@@ -926,16 +896,24 @@ public class DocCommentParser {
return
Character
.
isUnicodeIdentifierStart
(
ch
);
return
Character
.
isUnicodeIdentifierStart
(
ch
);
}
}
protected
boolean
isIdentifierPart
(
char
ch
)
{
protected
Name
readIdentifier
()
{
return
Character
.
isUnicodeIdentifierPart
(
ch
);
int
start
=
bp
;
nextChar
();
while
(
bp
<
buflen
&&
Character
.
isUnicodeIdentifierPart
(
ch
))
nextChar
();
return
names
.
fromChars
(
buf
,
start
,
bp
-
start
);
}
}
protected
boolean
isJavaIdentifierStart
(
char
ch
)
{
protected
boolean
isJavaIdentifierStart
(
char
ch
)
{
return
Character
.
isJavaIdentifierStart
(
ch
);
return
Character
.
isJavaIdentifierStart
(
ch
);
}
}
protected
boolean
isJavaIdentifierPart
(
char
ch
)
{
protected
Name
readJavaIdentifier
()
{
return
Character
.
isJavaIdentifierPart
(
ch
);
int
start
=
bp
;
nextChar
();
while
(
bp
<
buflen
&&
Character
.
isJavaIdentifierPart
(
ch
))
nextChar
();
return
names
.
fromChars
(
buf
,
start
,
bp
-
start
);
}
}
protected
boolean
isDecimalDigit
(
char
ch
)
{
protected
boolean
isDecimalDigit
(
char
ch
)
{
...
...
src/share/classes/com/sun/tools/javac/parser/JavadocTokenizer.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2004, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -236,7 +236,7 @@ public class JavadocTokenizer extends JavaTokenizer {
...
@@ -236,7 +236,7 @@ public class JavadocTokenizer extends JavaTokenizer {
// relative to the best match found in the array.
// relative to the best match found in the array.
if
(
pos
==
Position
.
NOPOS
)
if
(
pos
==
Position
.
NOPOS
)
return
Position
.
NOPOS
;
return
Position
.
NOPOS
;
if
(
pos
<
0
||
pos
>
=
docComment
.
length
())
if
(
pos
<
0
||
pos
>
docComment
.
length
())
throw
new
StringIndexOutOfBoundsException
(
String
.
valueOf
(
pos
));
throw
new
StringIndexOutOfBoundsException
(
String
.
valueOf
(
pos
));
if
(
docPosns
==
null
)
if
(
docPosns
==
null
)
return
Position
.
NOPOS
;
return
Position
.
NOPOS
;
...
...
src/share/classes/com/sun/tools/javac/tree/DCTree.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2011, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -119,7 +119,7 @@ public abstract class DCTree implements DocTree {
...
@@ -119,7 +119,7 @@ public abstract class DCTree implements DocTree {
}
}
public
static
abstract
class
DCBlockTag
extends
DCTree
implements
Inline
TagTree
{
public
static
abstract
class
DCBlockTag
extends
DCTree
implements
Block
TagTree
{
public
String
getTagName
()
{
public
String
getTagName
()
{
return
getKind
().
tagName
;
return
getKind
().
tagName
;
}
}
...
@@ -169,7 +169,7 @@ public abstract class DCTree implements DocTree {
...
@@ -169,7 +169,7 @@ public abstract class DCTree implements DocTree {
}
}
}
}
public
static
class
DCAuthor
extends
DC
Inline
Tag
implements
AuthorTree
{
public
static
class
DCAuthor
extends
DC
Block
Tag
implements
AuthorTree
{
public
final
List
<
DCTree
>
name
;
public
final
List
<
DCTree
>
name
;
DCAuthor
(
List
<
DCTree
>
name
)
{
DCAuthor
(
List
<
DCTree
>
name
)
{
...
@@ -640,7 +640,7 @@ public abstract class DCTree implements DocTree {
...
@@ -640,7 +640,7 @@ public abstract class DCTree implements DocTree {
}
}
}
}
public
static
class
DCSince
extends
DC
Inline
Tag
implements
SinceTree
{
public
static
class
DCSince
extends
DC
Block
Tag
implements
SinceTree
{
public
final
List
<
DCTree
>
body
;
public
final
List
<
DCTree
>
body
;
DCSince
(
List
<
DCTree
>
body
)
{
DCSince
(
List
<
DCTree
>
body
)
{
...
...
src/share/classes/com/sun/tools/javadoc/api/JavadocTool.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012,
2013,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -139,12 +139,13 @@ public class JavadocTool implements DocumentationTool {
...
@@ -139,12 +139,13 @@ public class JavadocTool implements DocumentationTool {
@Override
@Override
public
int
run
(
InputStream
in
,
OutputStream
out
,
OutputStream
err
,
String
...
arguments
)
{
public
int
run
(
InputStream
in
,
OutputStream
out
,
OutputStream
err
,
String
...
arguments
)
{
PrintWriter
err_pw
=
new
PrintWriter
(
err
,
true
);
PrintWriter
err_pw
=
new
PrintWriter
(
err
==
null
?
System
.
err
:
err
,
true
);
PrintWriter
out_pw
=
new
PrintWriter
(
out
);
PrintWriter
out_pw
=
new
PrintWriter
(
out
==
null
?
System
.
out
:
out
);
try
{
try
{
String
standardDocletName
=
"com.sun.tools.doclets.standard.Standard"
;
String
standardDocletName
=
"com.sun.tools.doclets.standard.Standard"
;
ClassLoader
cl
=
getClass
().
getClassLoader
();
return
com
.
sun
.
tools
.
javadoc
.
Main
.
execute
(
return
com
.
sun
.
tools
.
javadoc
.
Main
.
execute
(
"javadoc"
,
err_pw
,
err_pw
,
out_pw
,
standardDocletName
,
arguments
);
"javadoc"
,
err_pw
,
err_pw
,
out_pw
,
standardDocletName
,
cl
,
arguments
);
}
finally
{
}
finally
{
err_pw
.
flush
();
err_pw
.
flush
();
out_pw
.
flush
();
out_pw
.
flush
();
...
...
src/share/classes/jdk/Supported.java
0 → 100644
浏览文件 @
27214fe3
/*
* Copyright (c) 2013, 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
jdk
;
import
java.lang.annotation.*
;
/**
* Indicates whether or not a JDK specific type or package is a
* supported part of the JDK.
*
* This annotation should only be applied to types and packages
* <em>outside</em> of the Java SE namespaces of {@code java.*} and
* {@code javax.*} packages. For example, certain portions of {@code
* com.sun.*} are official parts of the JDK meant to be generally
* usable while other portions of {@code com.sun.*} are not. This
* annotation type allows those portions to be easily and
* programmaticly distinguished.
*
* @since 1.8
*/
@Documented
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
({
ElementType
.
TYPE
,
ElementType
.
PACKAGE
})
@Supported
public
@interface
Supported
{
/**
* Whether or not this package or type is a supported part of the JDK.
*/
boolean
value
()
default
true
;
}
test/tools/doclint/EndWithIdentifierTest.java
0 → 100644
浏览文件 @
27214fe3
/*
* @test /nodynamiccopyright/
* @bug 8007096
* @summary DocLint parsing problems with some comments
* @build DocLintTester
* @run main DocLintTester -Xmsgs:-html EndWithIdentifierTest.java
* @run main DocLintTester -Xmsgs -ref EndWithIdentifierTest.out EndWithIdentifierTest.java
* @author jlahoda
*/
/**@deprecated*/
public
class
EndWithIdentifierTest
{
/**{@link*/
private
void
unfinishedInlineTagName
()
{}
/**@see List*/
private
void
endsWithIdentifier
()
{}
/**&*/
private
void
entityName
()
{}
/**<a*/
private
void
tag
()
{}
/**</a*/
private
void
tagEnd
()
{}
/**<a name*/
private
void
attribute
()
{}
}
test/tools/doclint/EndWithIdentifierTest.out
0 → 100644
浏览文件 @
27214fe3
EndWithIdentifierTest.java:14: error: syntax error in reference
/**{@link*/
^
EndWithIdentifierTest.java:17: error: reference not found
/**@see List*/
^
EndWithIdentifierTest.java:20: error: semicolon missing
/**&*/
^
EndWithIdentifierTest.java:23: error: malformed HTML
/**<a*/
^
EndWithIdentifierTest.java:26: error: malformed HTML
/**</a*/
^
EndWithIdentifierTest.java:29: error: malformed HTML
/**<a name*/
^
6 errors
test/tools/doclint/UnfinishedInlineTagTest.java
0 → 100644
浏览文件 @
27214fe3
/*
* @test /nodynamiccopyright/
* @bug 8007096
* @summary DocLint parsing problems with some comments
* @build DocLintTester
* @run main DocLintTester -Xmsgs:-html UnfinishedInlineTagTest.java
* @run main DocLintTester -Xmsgs -ref UnfinishedInlineTagTest.out UnfinishedInlineTagTest.java
* @author jlahoda
*/
import
java.util.List
;
/**{@link List
*/
public
class
UnfinishedInlineTagTest
{
}
test/tools/doclint/UnfinishedInlineTagTest.out
0 → 100644
浏览文件 @
27214fe3
UnfinishedInlineTagTest.java:14: error: unterminated inline tag
*/
^
1 error
test/tools/javac/7199823/InnerClassCannotBeVerified.java
0 → 100644
浏览文件 @
27214fe3
/*
* Copyright (c) 2012, 2013, 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.
*
* 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.
*/
/*
* @test
* @bug 7199823
* @summary javac generates inner class that can't be verified
* @run main InnerClassCannotBeVerified
*/
import
java.util.Arrays
;
import
javax.tools.JavaFileObject
;
import
java.net.URI
;
import
javax.tools.SimpleJavaFileObject
;
import
javax.tools.ToolProvider
;
import
javax.tools.JavaCompiler
;
import
com.sun.source.util.JavacTask
;
import
com.sun.tools.classfile.ClassFile
;
import
com.sun.tools.classfile.ConstantPoolException
;
import
java.io.File
;
import
java.io.IOException
;
public
class
InnerClassCannotBeVerified
{
private
static
final
String
errorMessage
=
"Compile error while compiling the following source:\n"
;
public
static
void
main
(
String
...
args
)
throws
Exception
{
new
InnerClassCannotBeVerified
().
run
();
}
void
run
()
throws
Exception
{
JavaCompiler
comp
=
ToolProvider
.
getSystemJavaCompiler
();
JavaSource
source
=
new
JavaSource
();
JavacTask
ct
=
(
JavacTask
)
comp
.
getTask
(
null
,
null
,
null
,
null
,
null
,
Arrays
.
asList
(
source
));
try
{
if
(!
ct
.
call
())
{
throw
new
AssertionError
(
errorMessage
+
source
.
getCharContent
(
true
));
}
}
catch
(
Throwable
ex
)
{
throw
new
AssertionError
(
errorMessage
+
source
.
getCharContent
(
true
));
}
check
();
}
private
void
check
()
throws
IOException
,
ConstantPoolException
{
File
file
=
new
File
(
"Test$1.class"
);
ClassFile
classFile
=
ClassFile
.
read
(
file
);
boolean
inheritsFromObject
=
classFile
.
getSuperclassName
().
equals
(
"java/lang/Object"
);
boolean
implementsNoInterface
=
classFile
.
interfaces
.
length
==
0
;
boolean
noMethods
=
classFile
.
methods
.
length
==
0
;
if
(!(
inheritsFromObject
&&
implementsNoInterface
&&
noMethods
))
{
throw
new
AssertionError
(
"The inner classes reused as "
+
"access constructor tag for this code must be empty"
);
}
}
class
JavaSource
extends
SimpleJavaFileObject
{
String
internalSource
=
"public class Test {\n"
+
" private static class Foo {}\n"
+
" public static void main(String[] args){ \n"
+
" new Foo();\n"
+
" if(false) {\n"
+
" new Runnable() {\n"
+
" @Override\n"
+
" public void run() {\n"
+
" System.out.println();\n"
+
" }\n"
+
" }.run();\n"
+
" }\n"
+
" }\n"
+
"}"
;
public
JavaSource
()
{
super
(
URI
.
create
(
"Test.java"
),
JavaFileObject
.
Kind
.
SOURCE
);
}
@Override
public
CharSequence
getCharContent
(
boolean
ignoreEncodingErrors
)
{
return
internalSource
;
}
}
}
test/tools/javac/annotations/typeAnnotations/TargetTypes.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/TypeProcOnly.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/api/AnnotatedArrayOrder.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/api/ArrayCreationTree.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/api/ArrayPositionConsistency.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/classfile/ClassfileTestHelper.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2012, 2013 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2013
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest1.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -174,22 +174,20 @@ public class CombinationsTargetTest1 extends ClassfileTestHelper {
...
@@ -174,22 +174,20 @@ public class CombinationsTargetTest1 extends ClassfileTestHelper {
String
sourceBase
=
new
String
(
"@Retention("
+
retentn
+
")\n"
+
String
sourceBase
=
new
String
(
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@
ContainedBy
( AC.class )\n"
+
"@
Repeatable
( AC.class )\n"
+
"@interface A { }\n\n"
+
"@interface A { }\n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@ContainerFor(A.class)\n"
+
"@interface AC { A[] value(); }\n\n"
+
"@interface AC { A[] value(); }\n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@
ContainedBy
( BC.class )\n"
+
"@
Repeatable
( BC.class )\n"
+
"@interface B { }\n\n"
+
"@interface B { }\n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@ContainerFor(B.class)\n"
+
"@interface BC { B[] value(); } \n\n"
+
"@interface BC { B[] value(); } \n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
...
@@ -198,12 +196,11 @@ public class CombinationsTargetTest1 extends ClassfileTestHelper {
...
@@ -198,12 +196,11 @@ public class CombinationsTargetTest1 extends ClassfileTestHelper {
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,TYPE_PARAMETER,_OTHER_})\n"
+
"@Target({TYPE_USE,TYPE_PARAMETER,_OTHER_})\n"
+
"@
ContainedBy
(DC.class)\n"
+
"@
Repeatable
(DC.class)\n"
+
"@interface D { }\n\n"
+
"@interface D { }\n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,TYPE_PARAMETER,_OTHER_})\n"
+
"@Target({TYPE_USE,TYPE_PARAMETER,_OTHER_})\n"
+
"@ContainerFor(D.class) \n"
+
"@interface DC { D[] value(); }\n\n"
);
"@interface DC { D[] value(); }\n\n"
);
// Test case sources with sample generated source.
// Test case sources with sample generated source.
...
...
test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest2.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -171,32 +171,29 @@ public class CombinationsTargetTest2 extends ClassfileTestHelper {
...
@@ -171,32 +171,29 @@ public class CombinationsTargetTest2 extends ClassfileTestHelper {
String
sourceBase
=
new
String
(
"@Retention("
+
retentn
+
")\n"
+
String
sourceBase
=
new
String
(
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@
ContainedBy
( AC.class )\n"
+
"@
Repeatable
( AC.class )\n"
+
"@interface A { }\n\n"
+
"@interface A { }\n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@ContainerFor(A.class)\n"
+
"@interface AC { A[] value(); }\n\n"
+
"@interface AC { A[] value(); }\n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@
ContainedBy
( BC.class )\n"
+
"@
Repeatable
( BC.class )\n"
+
"@interface B { }\n\n"
+
"@interface B { }\n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@Target({TYPE_USE,_OTHER_})\n"
+
"@ContainerFor(B.class)\n"
+
"@interface BC { B[] value(); } \n\n"
+
"@interface BC { B[] value(); } \n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,TYPE_PARAMETER,_OTHER_})\n"
+
"@Target({TYPE_USE,TYPE_PARAMETER,_OTHER_})\n"
+
"@
ContainedBy
(DC.class)\n"
+
"@
Repeatable
(DC.class)\n"
+
"@interface D { }\n\n"
+
"@interface D { }\n\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Retention("
+
retentn
+
")\n"
+
"@Target({TYPE_USE,TYPE_PARAMETER,_OTHER_})\n"
+
"@Target({TYPE_USE,TYPE_PARAMETER,_OTHER_})\n"
+
"@ContainerFor(D.class) \n"
+
"@interface DC { D[] value(); }\n\n"
);
"@interface DC { D[] value(); }\n\n"
);
// Test case sources with sample generated source
// Test case sources with sample generated source
...
...
test/tools/javac/annotations/typeAnnotations/classfile/NewTypeArguments.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/classfile/NoTargetAnnotations.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2008 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/classfile/TypeCasts.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/classfile/Wildcards.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/failures/target/DotClass.java
浏览文件 @
27214fe3
import
static
java
.
lang
.
annotation
.
ElementType
.
TYPE
;
import
static
java
.
lang
.
annotation
.
ElementType
.
TYPE_PARAMETER
;
import
static
java
.
lang
.
annotation
.
ElementType
.
TYPE_USE
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -36,6 +28,14 @@ import java.lang.annotation.Target;
...
@@ -36,6 +28,14 @@ import java.lang.annotation.Target;
* @compile/fail/ref=DotClass.out -XDrawDiagnostics DotClass.java
* @compile/fail/ref=DotClass.out -XDrawDiagnostics DotClass.java
*/
*/
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
import
static
java
.
lang
.
annotation
.
ElementType
.
TYPE
;
import
static
java
.
lang
.
annotation
.
ElementType
.
TYPE_PARAMETER
;
import
static
java
.
lang
.
annotation
.
ElementType
.
TYPE_USE
;
@Target
({
TYPE_USE
,
TYPE_PARAMETER
,
TYPE
})
@Target
({
TYPE_USE
,
TYPE_PARAMETER
,
TYPE
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
@interface
A
{}
@interface
A
{}
...
...
test/tools/javac/annotations/typeAnnotations/newlocations/RepeatingTypeAnnotations.java
浏览文件 @
27214fe3
...
@@ -120,7 +120,6 @@ class MyList<E> { }
...
@@ -120,7 +120,6 @@ class MyList<E> { }
@Target
({
ElementType
.
TYPE_USE
,
ElementType
.
TYPE_PARAMETER
})
@Target
({
ElementType
.
TYPE_USE
,
ElementType
.
TYPE_PARAMETER
})
@interface
RTA
{
}
@interface
RTA
{
}
@ContainerFor
(
RTA
.
class
)
@Target
({
ElementType
.
TYPE_USE
,
ElementType
.
TYPE_PARAMETER
})
@Target
({
ElementType
.
TYPE_USE
,
ElementType
.
TYPE_PARAMETER
})
@interface
RTAs
{
@interface
RTAs
{
RTA
[]
value
();
RTA
[]
value
();
...
...
test/tools/javac/annotations/typeAnnotations/newlocations/Varargs.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2008 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -22,8 +21,6 @@
...
@@ -22,8 +21,6 @@
* questions.
* questions.
*/
*/
import
java.lang.annotation.*
;
/*
/*
* @test
* @test
* @summary test acceptance of varargs annotations
* @summary test acceptance of varargs annotations
...
@@ -31,6 +28,8 @@ import java.lang.annotation.*;
...
@@ -31,6 +28,8 @@ import java.lang.annotation.*;
* @compile Varargs.java
* @compile Varargs.java
*/
*/
import
java.lang.annotation.*
;
@Target
({
ElementType
.
TYPE_USE
,
ElementType
.
TYPE_PARAMETER
})
@Target
({
ElementType
.
TYPE_USE
,
ElementType
.
TYPE_PARAMETER
})
@interface
A
{}
@interface
A
{}
...
...
test/tools/javac/annotations/typeAnnotations/packageanno/PackageProcessor.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/Anno.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/MyClass.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/package-info.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassExtends.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassTypeParam.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/Constructors.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/Driver.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
, 2013,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -241,8 +241,8 @@ public class Driver {
...
@@ -241,8 +241,8 @@ public class Driver {
sb
.
append
(
"\n@Repeatable(RTAs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTA {}"
);
sb
.
append
(
"\n@Repeatable(RTAs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTA {}"
);
sb
.
append
(
"\n@Repeatable(RTBs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTB {}"
);
sb
.
append
(
"\n@Repeatable(RTBs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTB {}"
);
sb
.
append
(
"\n@
ContainerFor(RTA.class) @
Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTAs { RTA[] value(); }"
);
sb
.
append
(
"\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTAs { RTA[] value(); }"
);
sb
.
append
(
"\n@
ContainerFor(RTB.class) @
Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTBs { RTB[] value(); }"
);
sb
.
append
(
"\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTBs { RTB[] value(); }"
);
sb
.
append
(
"\n@Target(value={ElementType.TYPE,ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER,ElementType.CONSTRUCTOR,ElementType.LOCAL_VARIABLE})"
);
sb
.
append
(
"\n@Target(value={ElementType.TYPE,ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER,ElementType.CONSTRUCTOR,ElementType.LOCAL_VARIABLE})"
);
sb
.
append
(
"\n@interface Decl {}"
);
sb
.
append
(
"\n@interface Decl {}"
);
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/ExceptionParameters.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/Fields.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/FromSpecification.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodParameters.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReceivers.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReturns.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodThrows.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodTypeParam.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/NestedTypes.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/NewObjects.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/RepeatingTypeAnnotations.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeCasts.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeTests.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2009 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/tools/javac/api/8007344/Test.java
0 → 100644
浏览文件 @
27214fe3
/*
* Copyright (c) 2010, 2013, 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.
*
* 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.
*/
/*
* @test
* @bug 8007344
* @summary javac may not make tree end positions and/or doc comments
* available to processors and listeners
* @library /tools/javac/lib
* @build JavacTestingAbstractProcessor
* @run main Test
*/
import
java.io.File
;
import
java.io.PrintWriter
;
import
java.util.Arrays
;
import
java.util.Set
;
import
javax.annotation.processing.RoundEnvironment
;
import
javax.lang.model.element.Element
;
import
javax.lang.model.element.TypeElement
;
import
javax.tools.JavaFileObject
;
import
javax.tools.StandardJavaFileManager
;
import
com.sun.source.doctree.DocCommentTree
;
import
com.sun.source.tree.*
;
import
com.sun.source.util.DocTrees
;
import
com.sun.source.util.JavacTask
;
import
com.sun.source.util.SourcePositions
;
import
com.sun.source.util.TaskEvent
;
import
com.sun.source.util.TaskListener
;
import
com.sun.source.util.TreePath
;
import
com.sun.source.util.TreePathScanner
;
import
com.sun.tools.javac.api.JavacTool
;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.tree.Pretty
;
import
com.sun.tools.javac.util.Position
;
/** Doc comment: Test */
public
class
Test
{
public
static
final
int
EXPECT_DOC_COMMENTS
=
3
;
/** Doc comment: main */
public
static
void
main
(
String
...
args
)
throws
Exception
{
PrintWriter
out
=
new
PrintWriter
(
System
.
err
);
try
{
new
Test
(
out
).
run
();
}
finally
{
out
.
flush
();
}
}
PrintWriter
out
;
int
errors
;
Test
(
PrintWriter
out
)
{
this
.
out
=
out
;
}
/** Doc comment: run */
void
run
()
throws
Exception
{
File
testSrc
=
new
File
(
System
.
getProperty
(
"test.src"
));
File
thisFile
=
new
File
(
testSrc
,
getClass
().
getName
()
+
".java"
);
JavacTool
javac
=
JavacTool
.
create
();
StandardJavaFileManager
fm
=
javac
.
getStandardFileManager
(
null
,
null
,
null
);
Iterable
<?
extends
JavaFileObject
>
fos
=
fm
.
getJavaFileObjects
(
thisFile
);
testAnnoProcessor
(
javac
,
fm
,
fos
,
out
,
EXPECT_DOC_COMMENTS
);
testTaskListener
(
javac
,
fm
,
fos
,
out
,
EXPECT_DOC_COMMENTS
);
if
(
errors
>
0
)
throw
new
Exception
(
errors
+
" errors occurred"
);
}
void
testAnnoProcessor
(
JavacTool
javac
,
StandardJavaFileManager
fm
,
Iterable
<?
extends
JavaFileObject
>
files
,
PrintWriter
out
,
int
expectedDocComments
)
{
out
.
println
(
"Test annotation processor"
);
JavacTask
task
=
javac
.
getTask
(
out
,
fm
,
null
,
null
,
null
,
files
);
AnnoProc
ap
=
new
AnnoProc
(
DocTrees
.
instance
(
task
));
task
.
setProcessors
(
Arrays
.
asList
(
ap
));
task
.
call
();
ap
.
checker
.
checkDocComments
(
expectedDocComments
);
}
void
testTaskListener
(
JavacTool
javac
,
StandardJavaFileManager
fm
,
Iterable
<?
extends
JavaFileObject
>
files
,
PrintWriter
out
,
int
expectedDocComments
)
{
out
.
println
(
"Test task listener"
);
JavacTask
task
=
javac
.
getTask
(
out
,
fm
,
null
,
null
,
null
,
files
);
TaskListnr
tl
=
new
TaskListnr
(
DocTrees
.
instance
(
task
));
task
.
addTaskListener
(
tl
);
task
.
call
();
tl
.
checker
.
checkDocComments
(
expectedDocComments
);
}
void
error
(
String
msg
)
{
out
.
println
(
"Error: "
+
msg
);
errors
++;
}
class
AnnoProc
extends
JavacTestingAbstractProcessor
{
Checker
checker
;
AnnoProc
(
DocTrees
trees
)
{
checker
=
new
Checker
(
trees
);
}
@Override
public
boolean
process
(
Set
<?
extends
TypeElement
>
annotations
,
RoundEnvironment
roundEnv
)
{
for
(
Element
e
:
roundEnv
.
getRootElements
())
{
checker
.
scan
(
checker
.
trees
.
getPath
(
e
),
null
);
}
return
true
;
}
}
class
TaskListnr
implements
TaskListener
{
Checker
checker
;
TaskListnr
(
DocTrees
trees
)
{
checker
=
new
Checker
(
trees
);
}
public
void
started
(
TaskEvent
e
)
{
if
(
e
.
getKind
()
==
TaskEvent
.
Kind
.
ANALYZE
)
checker
.
scan
(
new
TreePath
(
e
.
getCompilationUnit
()),
null
);
}
public
void
finished
(
TaskEvent
e
)
{
}
}
class
Checker
extends
TreePathScanner
<
Void
,
Void
>
{
DocTrees
trees
;
SourcePositions
srcPosns
;
int
docComments
=
0
;
Checker
(
DocTrees
trees
)
{
this
.
trees
=
trees
;
srcPosns
=
trees
.
getSourcePositions
();
}
@Override
public
Void
scan
(
Tree
tree
,
Void
ignore
)
{
if
(
tree
!=
null
)
{
switch
(
tree
.
getKind
())
{
// HACK: Workaround 8007350
// Some tree nodes do not have endpos set
case
ASSIGNMENT:
case
BLOCK:
case
IDENTIFIER:
case
METHOD_INVOCATION:
break
;
default
:
checkEndPos
(
getCurrentPath
().
getCompilationUnit
(),
tree
);
}
}
return
super
.
scan
(
tree
,
ignore
);
}
@Override
public
Void
visitClass
(
ClassTree
tree
,
Void
ignore
)
{
checkComment
();
return
super
.
visitClass
(
tree
,
ignore
);
}
@Override
public
Void
visitMethod
(
MethodTree
tree
,
Void
ignore
)
{
checkComment
();
return
super
.
visitMethod
(
tree
,
ignore
);
}
@Override
public
Void
visitVariable
(
VariableTree
tree
,
Void
ignore
)
{
checkComment
();
return
super
.
visitVariable
(
tree
,
ignore
);
}
void
checkComment
()
{
DocCommentTree
dc
=
trees
.
getDocCommentTree
(
getCurrentPath
());
if
(
dc
!=
null
)
{
out
.
println
(
"comment: "
+
dc
.
toString
().
replaceAll
(
"\\s+"
,
" "
));
docComments
++;
}
}
void
checkEndPos
(
CompilationUnitTree
unit
,
Tree
tree
)
{
long
sp
=
srcPosns
.
getStartPosition
(
unit
,
tree
);
long
ep
=
srcPosns
.
getEndPosition
(
unit
,
tree
);
if
(
sp
>=
0
&&
ep
==
Position
.
NOPOS
)
{
error
(
"endpos not set for "
+
tree
.
getKind
()
+
" "
+
Pretty
.
toSimpleString
(((
JCTree
)
tree
))
+
", start:"
+
sp
);
}
}
void
checkDocComments
(
int
expected
)
{
if
(
docComments
!=
expected
)
{
error
(
"Unexpected number of doc comments received: "
+
docComments
+
", expected: "
+
expected
);
}
}
}
}
test/tools/javac/api/T6306137.java
浏览文件 @
27214fe3
...
@@ -26,9 +26,6 @@
...
@@ -26,9 +26,6 @@
* @bug 6306137
* @bug 6306137
* @summary JSR 199: encoding option doesn't affect standard file manager
* @summary JSR 199: encoding option doesn't affect standard file manager
* @author Peter von der Ahé
* @author Peter von der Ahé
* @ignore
* Need to make the contentCache in JavacFileManager be aware of changes to the encoding.
* Need to propogate -source (and -encoding?) down to the JavacFileManager
*/
*/
import
java.io.File
;
import
java.io.File
;
...
...
test/tools/javac/defaultMethods/TestNoBridgeOnDefaults.java
浏览文件 @
27214fe3
...
@@ -23,7 +23,6 @@
...
@@ -23,7 +23,6 @@
/*
/*
* @test
* @test
* @ignore awaits for VM support
* @summary check that javac does not generate bridge methods for defaults
* @summary check that javac does not generate bridge methods for defaults
*/
*/
...
...
test/tools/javac/lambda/LambdaCapture06.java
浏览文件 @
27214fe3
...
@@ -23,7 +23,6 @@
...
@@ -23,7 +23,6 @@
/*
/*
* @test
* @test
* @ignore investigate as to whether code generation fails
* @bug 8003280
* @bug 8003280
* @summary Add lambda tests
* @summary Add lambda tests
* Compiler crash when local inner class nested inside lambda captures local variables from enclosing scope
* Compiler crash when local inner class nested inside lambda captures local variables from enclosing scope
...
...
test/tools/javac/lambda/LambdaExpr15.java
浏览文件 @
27214fe3
...
@@ -23,7 +23,6 @@
...
@@ -23,7 +23,6 @@
/*
/*
* @test
* @test
* @ignore investigate as to whether code generation fails
* @bug 8003280
* @bug 8003280
* @summary Add lambda tests
* @summary Add lambda tests
* check that nested inner class in statement lambdas don't get corrupted return statements
* check that nested inner class in statement lambdas don't get corrupted return statements
...
...
test/tools/javac/lib/DPrinter.java
0 → 100644
浏览文件 @
27214fe3
此差异已折叠。
点击以展开。
test/tools/javac/lib/JavacTestingAbstractThreadedTest.java
浏览文件 @
27214fe3
...
@@ -41,14 +41,20 @@ import javax.tools.ToolProvider;
...
@@ -41,14 +41,20 @@ import javax.tools.ToolProvider;
*
*
* If the property is not set the class will use a heuristic to determine the
* If the property is not set the class will use a heuristic to determine the
* maximum number of threads that can be fired to execute a given test.
* maximum number of threads that can be fired to execute a given test.
*
* This code will have to be revisited if jprt starts using concurrency for
* for running jtreg tests.
*/
*/
public
abstract
class
JavacTestingAbstractThreadedTest
{
public
abstract
class
JavacTestingAbstractThreadedTest
{
protected
static
AtomicInteger
numberOfThreads
=
new
AtomicInteger
();
protected
static
int
getThreadPoolSize
()
{
protected
static
int
getThreadPoolSize
()
{
Integer
testConc
=
Integer
.
getInteger
(
"test.concurrency"
);
Integer
testConc
=
Integer
.
getInteger
(
"test.concurrency"
);
if
(
testConc
!=
null
)
return
testConc
;
if
(
testConc
!=
null
)
return
testConc
;
int
cores
=
Runtime
.
getRuntime
().
availableProcessors
();
int
cores
=
Runtime
.
getRuntime
().
availableProcessors
();
return
Math
.
max
(
2
,
Math
.
min
(
8
,
cores
/
2
));
numberOfThreads
.
set
(
Math
.
max
(
2
,
Math
.
min
(
8
,
cores
/
2
)));
return
numberOfThreads
.
get
();
}
}
protected
static
void
checkAfterExec
()
throws
InterruptedException
{
protected
static
void
checkAfterExec
()
throws
InterruptedException
{
...
@@ -82,11 +88,18 @@ public abstract class JavacTestingAbstractThreadedTest {
...
@@ -82,11 +88,18 @@ public abstract class JavacTestingAbstractThreadedTest {
}
else
if
(
printCheckCount
)
{
}
else
if
(
printCheckCount
)
{
outWriter
.
println
(
"Total check executed: "
+
checkCount
.
get
());
outWriter
.
println
(
"Total check executed: "
+
checkCount
.
get
());
}
}
/*
* This output is for supporting debugging. It does not mean that a given
* test had executed that number of threads concurrently. The value printed
* here is the maximum possible amount.
*/
closePrinters
();
closePrinters
();
if
(
printAll
)
{
if
(
printAll
)
{
System
.
out
.
println
(
errSWriter
.
toString
());
System
.
out
.
println
(
errSWriter
.
toString
());
System
.
out
.
println
(
outSWriter
.
toString
());
System
.
out
.
println
(
outSWriter
.
toString
());
}
}
System
.
out
.
println
(
"Total number of threads in thread pool: "
+
numberOfThreads
.
get
());
}
}
protected
static
void
closePrinters
()
{
protected
static
void
closePrinters
()
{
...
...
test/tools/javadoc/api/basic/RunTest.java
浏览文件 @
27214fe3
/*
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012,
2013,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
/*
/*
* @test
* @test
* @bug 6493690
* @bug 6493690
8007490
* @summary javadoc should have a javax.tools.Tool service provider
* @summary javadoc should have a javax.tools.Tool service provider
* @build APITest
* @build APITest
* @run main RunTest
* @run main RunTest
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
import
java.io.ByteArrayOutputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.File
;
import
java.io.PrintStream
;
import
javax.tools.DocumentationTool
;
import
javax.tools.DocumentationTool
;
import
javax.tools.ToolProvider
;
import
javax.tools.ToolProvider
;
...
@@ -46,7 +47,7 @@ public class RunTest extends APITest {
...
@@ -46,7 +47,7 @@ public class RunTest extends APITest {
* Verify that run method can be invoked.
* Verify that run method can be invoked.
*/
*/
@Test
@Test
public
void
testRun
()
throws
Exception
{
public
void
testRun
OK
()
throws
Exception
{
File
testSrc
=
new
File
(
System
.
getProperty
(
"test.src"
));
File
testSrc
=
new
File
(
System
.
getProperty
(
"test.src"
));
File
srcFile
=
new
File
(
testSrc
,
"pkg/C.java"
);
File
srcFile
=
new
File
(
testSrc
,
"pkg/C.java"
);
File
outDir
=
getOutDir
();
File
outDir
=
getOutDir
();
...
@@ -77,7 +78,7 @@ public class RunTest extends APITest {
...
@@ -77,7 +78,7 @@ public class RunTest extends APITest {
* Verify that run method can be invoked.
* Verify that run method can be invoked.
*/
*/
@Test
@Test
public
void
testRun
2
()
throws
Exception
{
public
void
testRun
Fail
()
throws
Exception
{
File
outDir
=
getOutDir
();
File
outDir
=
getOutDir
();
String
badfile
=
"badfile.java"
;
String
badfile
=
"badfile.java"
;
String
[]
args
=
{
"-d"
,
outDir
.
getPath
(),
badfile
};
String
[]
args
=
{
"-d"
,
outDir
.
getPath
(),
badfile
};
...
@@ -100,5 +101,48 @@ public class RunTest extends APITest {
...
@@ -100,5 +101,48 @@ public class RunTest extends APITest {
}
}
}
}
/**
* Verify that null args are accepted.
*/
@Test
public
void
testNullArgs
()
throws
Exception
{
File
testSrc
=
new
File
(
System
.
getProperty
(
"test.src"
));
File
srcFile
=
new
File
(
testSrc
,
"pkg/C.java"
);
File
outDir
=
getOutDir
();
String
[]
args
=
{
"-d"
,
outDir
.
getPath
(),
srcFile
.
getPath
()
};
ByteArrayOutputStream
stdout
=
new
ByteArrayOutputStream
();
PrintStream
prevStdout
=
System
.
out
;
System
.
setOut
(
new
PrintStream
(
stdout
));
ByteArrayOutputStream
stderr
=
new
ByteArrayOutputStream
();
PrintStream
prevStderr
=
System
.
err
;
System
.
setErr
(
new
PrintStream
(
stderr
));
int
rc
;
try
{
DocumentationTool
tool
=
ToolProvider
.
getSystemDocumentationTool
();
rc
=
tool
.
run
(
null
,
null
,
null
,
args
);
}
finally
{
System
.
setOut
(
prevStdout
);
System
.
setErr
(
prevStderr
);
}
System
.
err
.
println
(
"stdout >>"
+
stdout
.
toString
()
+
"<<"
);
System
.
err
.
println
(
"stderr >>"
+
stderr
.
toString
()
+
"<<"
);
if
(
rc
==
0
)
{
System
.
err
.
println
(
"call succeeded"
);
checkFiles
(
outDir
,
standardExpectFiles
);
String
out
=
stdout
.
toString
();
for
(
String
f:
standardExpectFiles
)
{
String
f1
=
f
.
replace
(
'/'
,
File
.
separatorChar
);
if
(
f1
.
endsWith
(
".html"
)
&&
!
out
.
contains
(
f1
))
error
(
"expected string not found: "
+
f1
);
}
}
else
{
error
(
"call failed"
);
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录