Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
51293069
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看板
提交
51293069
编写于
6月 03, 2013
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
8c044e32
da5be00e
变更
35
隐藏空白更改
内联
并排
Showing
35 changed file
with
609 addition
and
345 deletion
+609
-345
make/tools/genstubs/GenStubs.java
make/tools/genstubs/GenStubs.java
+2
-2
src/share/classes/com/sun/tools/classfile/ClassFile.java
src/share/classes/com/sun/tools/classfile/ClassFile.java
+7
-1
src/share/classes/com/sun/tools/javac/comp/Attr.java
src/share/classes/com/sun/tools/javac/comp/Attr.java
+1
-1
src/share/classes/com/sun/tools/javac/comp/Check.java
src/share/classes/com/sun/tools/javac/comp/Check.java
+14
-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/comp/Resolve.java
src/share/classes/com/sun/tools/javac/comp/Resolve.java
+20
-12
src/share/classes/com/sun/tools/javac/comp/TransTypes.java
src/share/classes/com/sun/tools/javac/comp/TransTypes.java
+7
-4
src/share/classes/com/sun/tools/javac/parser/JavacParser.java
...share/classes/com/sun/tools/javac/parser/JavacParser.java
+9
-2
src/share/classes/com/sun/tools/javac/tree/JCTree.java
src/share/classes/com/sun/tools/javac/tree/JCTree.java
+5
-5
src/share/classes/com/sun/tools/javac/tree/TreeCopier.java
src/share/classes/com/sun/tools/javac/tree/TreeCopier.java
+1
-1
src/share/classes/com/sun/tools/javac/tree/TreeMaker.java
src/share/classes/com/sun/tools/javac/tree/TreeMaker.java
+1
-1
src/share/classes/com/sun/tools/javac/util/Convert.java
src/share/classes/com/sun/tools/javac/util/Convert.java
+19
-1
src/share/classes/com/sun/tools/javac/util/UnsharedNameTable.java
...e/classes/com/sun/tools/javac/util/UnsharedNameTable.java
+1
-3
src/share/classes/javax/lang/model/AnnotatedConstruct.java
src/share/classes/javax/lang/model/AnnotatedConstruct.java
+73
-28
src/share/classes/javax/lang/model/util/Elements.java
src/share/classes/javax/lang/model/util/Elements.java
+3
-2
src/share/sample/language/model/CoreReflectionFactory.java
src/share/sample/language/model/CoreReflectionFactory.java
+7
-11
test/tools/doclint/RunTest.java
test/tools/doclint/RunTest.java
+5
-9
test/tools/javac/5045412/Bar.java
test/tools/javac/5045412/Bar.java
+1
-7
test/tools/javac/5045412/Foo.java
test/tools/javac/5045412/Foo.java
+1
-6
test/tools/javac/HiddenAbstractMethod/Test.java
test/tools/javac/HiddenAbstractMethod/Test.java
+1
-1
test/tools/javac/NonAmbiguousField/Test.java
test/tools/javac/NonAmbiguousField/Test.java
+2
-2
test/tools/javac/NonAmbiguousField/two/Child2.java
test/tools/javac/NonAmbiguousField/two/Child2.java
+3
-5
test/tools/javac/T6970173/DebugPointerAtBadPositionTest.java
test/tools/javac/T6970173/DebugPointerAtBadPositionTest.java
+112
-0
test/tools/javac/T7053059/VerifyErrorWithDoubleAssignmentTest.java
...s/javac/T7053059/VerifyErrorWithDoubleAssignmentTest.java
+51
-0
test/tools/javac/annotations/typeAnnotations/8013180/QualifiedName.java
...ac/annotations/typeAnnotations/8013180/QualifiedName.java
+39
-0
test/tools/javac/diags/Example.java
test/tools/javac/diags/Example.java
+5
-2
test/tools/javac/lambda/MethodReferenceParserTest.java
test/tools/javac/lambda/MethodReferenceParserTest.java
+1
-2
test/tools/javac/lambda/TargetType73.java
test/tools/javac/lambda/TargetType73.java
+47
-0
test/tools/javac/lambda/TestInvokeDynamic.java
test/tools/javac/lambda/TestInvokeDynamic.java
+11
-12
test/tools/javac/mandatoryWarnings/deprecated/Test.java
test/tools/javac/mandatoryWarnings/deprecated/Test.java
+1
-91
test/tools/javac/mandatoryWarnings/unchecked/Test.java
test/tools/javac/mandatoryWarnings/unchecked/Test.java
+1
-79
test/tools/javac/parser/8014643/T8014643.java
test/tools/javac/parser/8014643/T8014643.java
+41
-0
test/tools/javac/policy/test3/Test.java
test/tools/javac/policy/test3/Test.java
+1
-45
test/tools/javac/resolve/ResolveHarness.java
test/tools/javac/resolve/ResolveHarness.java
+43
-6
test/tools/javac/resolve/tests/PrimitiveBinopOverload.java
test/tools/javac/resolve/tests/PrimitiveBinopOverload.java
+71
-0
未找到文件。
make/tools/genstubs/GenStubs.java
浏览文件 @
51293069
...
@@ -230,9 +230,9 @@ public class GenStubs {
...
@@ -230,9 +230,9 @@ public class GenStubs {
tree
.
typarams
=
translateTypeParams
(
tree
.
typarams
);
tree
.
typarams
=
translateTypeParams
(
tree
.
typarams
);
tree
.
params
=
translateVarDefs
(
tree
.
params
);
tree
.
params
=
translateVarDefs
(
tree
.
params
);
tree
.
thrown
=
translate
(
tree
.
thrown
);
tree
.
thrown
=
translate
(
tree
.
thrown
);
if
(
tree
.
restype
!=
null
&&
tree
.
body
!=
null
)
{
if
(
tree
.
body
!=
null
)
{
if
((
currClassMods
&
Flags
.
INTERFACE
)
!=
0
)
{
if
((
currClassMods
&
Flags
.
INTERFACE
)
!=
0
)
{
tree
.
mods
.
flags
&=
~
Flags
.
DEFAULT
;
tree
.
mods
.
flags
&=
~
(
Flags
.
DEFAULT
|
Flags
.
STATIC
)
;
}
else
{
}
else
{
tree
.
mods
.
flags
|=
Flags
.
NATIVE
;
tree
.
mods
.
flags
|=
Flags
.
NATIVE
;
}
}
...
...
src/share/classes/com/sun/tools/classfile/ClassFile.java
浏览文件 @
51293069
/*
/*
* Copyright (c) 2007, 20
08
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2007, 20
13
, 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
...
@@ -29,6 +29,7 @@ import java.io.File;
...
@@ -29,6 +29,7 @@ import java.io.File;
import
java.io.FileInputStream
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.nio.file.Path
;
import
static
com
.
sun
.
tools
.
classfile
.
AccessFlags
.*;
import
static
com
.
sun
.
tools
.
classfile
.
AccessFlags
.*;
...
@@ -46,6 +47,11 @@ public class ClassFile {
...
@@ -46,6 +47,11 @@ public class ClassFile {
return
read
(
file
,
new
Attribute
.
Factory
());
return
read
(
file
,
new
Attribute
.
Factory
());
}
}
public
static
ClassFile
read
(
Path
path
)
throws
IOException
,
ConstantPoolException
{
return
read
(
path
.
toFile
(),
new
Attribute
.
Factory
());
}
public
static
ClassFile
read
(
File
file
,
Attribute
.
Factory
attributeFactory
)
public
static
ClassFile
read
(
File
file
,
Attribute
.
Factory
attributeFactory
)
throws
IOException
,
ConstantPoolException
{
throws
IOException
,
ConstantPoolException
{
FileInputStream
in
=
new
FileInputStream
(
file
);
FileInputStream
in
=
new
FileInputStream
(
file
);
...
...
src/share/classes/com/sun/tools/javac/comp/Attr.java
浏览文件 @
51293069
...
@@ -3732,7 +3732,7 @@ public class Attr extends JCTree.Visitor {
...
@@ -3732,7 +3732,7 @@ public class Attr extends JCTree.Visitor {
noteWarner
);
noteWarner
);
return
chk
.
checkMethod
(
owntype
,
sym
,
env
,
argtrees
,
argtypes
,
env
.
info
.
lastResolveVarargs
(),
return
chk
.
checkMethod
(
owntype
,
sym
,
env
,
argtrees
,
argtypes
,
env
.
info
.
lastResolveVarargs
(),
noteWarner
.
hasNonSilentLint
(
LintCategory
.
UNCHECKED
));
noteWarner
.
hasNonSilentLint
(
LintCategory
.
UNCHECKED
)
,
resultInfo
.
checkContext
.
inferenceContext
()
);
}
catch
(
Infer
.
InferenceException
ex
)
{
}
catch
(
Infer
.
InferenceException
ex
)
{
//invalid target type - propagate exception outwards or report error
//invalid target type - propagate exception outwards or report error
//depending on the current check context
//depending on the current check context
...
...
src/share/classes/com/sun/tools/javac/comp/Check.java
浏览文件 @
51293069
...
@@ -853,7 +853,8 @@ public class Check {
...
@@ -853,7 +853,8 @@ public class Check {
final
List
<
JCExpression
>
argtrees
,
final
List
<
JCExpression
>
argtrees
,
List
<
Type
>
argtypes
,
List
<
Type
>
argtypes
,
boolean
useVarargs
,
boolean
useVarargs
,
boolean
unchecked
)
{
boolean
unchecked
,
InferenceContext
inferenceContext
)
{
// System.out.println("call : " + env.tree);
// System.out.println("call : " + env.tree);
// System.out.println("method : " + owntype);
// System.out.println("method : " + owntype);
// System.out.println("actuals: " + argtypes);
// System.out.println("actuals: " + argtypes);
...
@@ -917,7 +918,7 @@ public class Check {
...
@@ -917,7 +918,7 @@ public class Check {
argtype
);
argtype
);
}
}
if
(!((
MethodSymbol
)
sym
.
baseSymbol
()).
isSignaturePolymorphic
(
types
))
{
if
(!((
MethodSymbol
)
sym
.
baseSymbol
()).
isSignaturePolymorphic
(
types
))
{
TreeInfo
.
setVarargsElement
(
env
.
tree
,
types
.
elemtype
(
argtype
)
);
setVarargsElement
(
env
,
types
.
elemtype
(
argtype
),
inferenceContext
);
}
}
}
}
PolyKind
pkind
=
(
sym
.
type
.
hasTag
(
FORALL
)
&&
PolyKind
pkind
=
(
sym
.
type
.
hasTag
(
FORALL
)
&&
...
@@ -927,6 +928,17 @@ public class Check {
...
@@ -927,6 +928,17 @@ public class Check {
return
owntype
;
return
owntype
;
}
}
//where
//where
private
void
setVarargsElement
(
final
Env
<
AttrContext
>
env
,
final
Type
elemtype
,
InferenceContext
inferenceContext
)
{
if
(
inferenceContext
.
free
(
elemtype
))
{
inferenceContext
.
addFreeTypeListener
(
List
.
of
(
elemtype
),
new
FreeTypeListener
()
{
public
void
typesInferred
(
InferenceContext
inferenceContext
)
{
setVarargsElement
(
env
,
inferenceContext
.
asInstType
(
elemtype
),
inferenceContext
);
}
});
}
TreeInfo
.
setVarargsElement
(
env
.
tree
,
elemtype
);
}
private
void
assertConvertible
(
JCTree
tree
,
Type
actual
,
Type
formal
,
Warner
warn
)
{
private
void
assertConvertible
(
JCTree
tree
,
Type
actual
,
Type
formal
,
Warner
warn
)
{
if
(
types
.
isConvertible
(
actual
,
formal
,
warn
))
if
(
types
.
isConvertible
(
actual
,
formal
,
warn
))
return
;
return
;
...
...
src/share/classes/com/sun/tools/javac/comp/Lower.java
浏览文件 @
51293069
...
@@ -2002,7 +2002,7 @@ public class Lower extends TreeTranslator {
...
@@ -2002,7 +2002,7 @@ public class Lower extends TreeTranslator {
JCStatement
rethrow
;
JCStatement
rethrow
;
if
(
target
.
hasInitCause
())
{
if
(
target
.
hasInitCause
())
{
// rethrow = "throw new NoClassDefFoundError().initCause(e);
// rethrow = "throw new NoClassDefFoundError().initCause(e);
JC
Tree
throwExpr
=
JC
Expression
throwExpr
=
makeCall
(
makeNewClass
(
syms
.
noClassDefFoundErrorType
,
makeCall
(
makeNewClass
(
syms
.
noClassDefFoundErrorType
,
List
.<
JCExpression
>
nil
()),
List
.<
JCExpression
>
nil
()),
names
.
initCause
,
names
.
initCause
,
...
@@ -2931,7 +2931,7 @@ public class Lower extends TreeTranslator {
...
@@ -2931,7 +2931,7 @@ public class Lower extends TreeTranslator {
}
}
result
=
result
=
make
.
If
(
cond
,
make
.
If
(
cond
,
make_at
(
detailPos
).
make_at
(
tree
).
Throw
(
makeNewClass
(
syms
.
assertionErrorType
,
exnArgs
)),
Throw
(
makeNewClass
(
syms
.
assertionErrorType
,
exnArgs
)),
null
);
null
);
}
else
{
}
else
{
...
...
src/share/classes/com/sun/tools/javac/comp/Resolve.java
浏览文件 @
51293069
...
@@ -1343,7 +1343,7 @@ public class Resolve {
...
@@ -1343,7 +1343,7 @@ public class Resolve {
try
{
try
{
Type
mt
=
rawInstantiate
(
env
,
site
,
sym
,
null
,
argtypes
,
typeargtypes
,
Type
mt
=
rawInstantiate
(
env
,
site
,
sym
,
null
,
argtypes
,
typeargtypes
,
allowBoxing
,
useVarargs
,
types
.
noWarnings
);
allowBoxing
,
useVarargs
,
types
.
noWarnings
);
if
(!
operator
)
if
(!
operator
||
verboseResolutionMode
.
contains
(
VerboseResolutionMode
.
PREDEF
)
)
currentResolutionContext
.
addApplicableCandidate
(
sym
,
mt
);
currentResolutionContext
.
addApplicableCandidate
(
sym
,
mt
);
}
catch
(
InapplicableMethodException
ex
)
{
}
catch
(
InapplicableMethodException
ex
)
{
if
(!
operator
)
if
(!
operator
)
...
@@ -2500,17 +2500,21 @@ public class Resolve {
...
@@ -2500,17 +2500,21 @@ public class Resolve {
try
{
try
{
currentResolutionContext
=
new
MethodResolutionContext
();
currentResolutionContext
=
new
MethodResolutionContext
();
Name
name
=
treeinfo
.
operatorName
(
optag
);
Name
name
=
treeinfo
.
operatorName
(
optag
);
env
.
info
.
pendingResolutionPhase
=
currentResolutionContext
.
step
=
BASIC
;
return
lookupMethod
(
env
,
pos
,
syms
.
predefClass
,
currentResolutionContext
,
Symbol
sym
=
findMethod
(
env
,
syms
.
predefClass
.
type
,
name
,
argtypes
,
new
BasicLookupHelper
(
name
,
syms
.
predefClass
.
type
,
argtypes
,
null
,
BOX
)
{
null
,
false
,
false
,
true
);
@Override
if
(
boxingEnabled
&&
sym
.
kind
>=
WRONG_MTHS
)
Symbol
lookup
(
Env
<
AttrContext
>
env
,
MethodResolutionPhase
phase
)
{
env
.
info
.
pendingResolutionPhase
=
currentResolutionContext
.
step
=
BOX
;
return
findMethod
(
env
,
site
,
name
,
argtypes
,
typeargtypes
,
sym
=
findMethod
(
env
,
syms
.
predefClass
.
type
,
name
,
argtypes
,
phase
.
isBoxingRequired
(),
null
,
true
,
false
,
true
);
phase
.
isVarargsRequired
(),
true
);
return
accessMethod
(
sym
,
pos
,
env
.
enclClass
.
sym
.
type
,
name
,
}
@Override
Symbol
access
(
Env
<
AttrContext
>
env
,
DiagnosticPosition
pos
,
Symbol
location
,
Symbol
sym
)
{
return
accessMethod
(
sym
,
pos
,
env
.
enclClass
.
sym
.
type
,
name
,
false
,
argtypes
,
null
);
false
,
argtypes
,
null
);
}
}
finally
{
});
}
finally
{
currentResolutionContext
=
prevResolutionContext
;
currentResolutionContext
=
prevResolutionContext
;
}
}
}
}
...
@@ -2673,7 +2677,11 @@ public class Resolve {
...
@@ -2673,7 +2677,11 @@ public class Resolve {
abstract
class
BasicLookupHelper
extends
LookupHelper
{
abstract
class
BasicLookupHelper
extends
LookupHelper
{
BasicLookupHelper
(
Name
name
,
Type
site
,
List
<
Type
>
argtypes
,
List
<
Type
>
typeargtypes
)
{
BasicLookupHelper
(
Name
name
,
Type
site
,
List
<
Type
>
argtypes
,
List
<
Type
>
typeargtypes
)
{
super
(
name
,
site
,
argtypes
,
typeargtypes
,
MethodResolutionPhase
.
VARARITY
);
this
(
name
,
site
,
argtypes
,
typeargtypes
,
MethodResolutionPhase
.
VARARITY
);
}
BasicLookupHelper
(
Name
name
,
Type
site
,
List
<
Type
>
argtypes
,
List
<
Type
>
typeargtypes
,
MethodResolutionPhase
maxPhase
)
{
super
(
name
,
site
,
argtypes
,
typeargtypes
,
maxPhase
);
}
}
@Override
@Override
...
...
src/share/classes/com/sun/tools/javac/comp/TransTypes.java
浏览文件 @
51293069
...
@@ -172,10 +172,13 @@ public class TransTypes extends TreeTranslator {
...
@@ -172,10 +172,13 @@ public class TransTypes extends TreeTranslator {
JCExpression
retype
(
JCExpression
tree
,
Type
erasedType
,
Type
target
)
{
JCExpression
retype
(
JCExpression
tree
,
Type
erasedType
,
Type
target
)
{
// System.err.println("retype " + tree + " to " + erasedType);//DEBUG
// System.err.println("retype " + tree + " to " + erasedType);//DEBUG
if
(!
erasedType
.
isPrimitive
())
{
if
(!
erasedType
.
isPrimitive
())
{
if
(
target
!=
null
&&
target
.
isPrimitive
())
if
(
target
!=
null
&&
target
.
isPrimitive
())
{
target
=
erasure
(
tree
.
type
);
target
=
erasure
(
tree
.
type
);
}
tree
.
type
=
erasedType
;
tree
.
type
=
erasedType
;
if
(
target
!=
null
)
return
coerce
(
tree
,
target
);
if
(
target
!=
null
)
{
return
coerce
(
tree
,
target
);
}
}
}
return
tree
;
return
tree
;
}
}
...
@@ -686,8 +689,8 @@ public class TransTypes extends TreeTranslator {
...
@@ -686,8 +689,8 @@ public class TransTypes extends TreeTranslator {
public
void
visitAssign
(
JCAssign
tree
)
{
public
void
visitAssign
(
JCAssign
tree
)
{
tree
.
lhs
=
translate
(
tree
.
lhs
,
null
);
tree
.
lhs
=
translate
(
tree
.
lhs
,
null
);
tree
.
rhs
=
translate
(
tree
.
rhs
,
erasure
(
tree
.
lhs
.
type
));
tree
.
rhs
=
translate
(
tree
.
rhs
,
erasure
(
tree
.
lhs
.
type
));
tree
.
type
=
erasure
(
tree
.
type
);
tree
.
type
=
erasure
(
tree
.
lhs
.
type
);
result
=
tree
;
result
=
retype
(
tree
,
tree
.
type
,
pt
)
;
}
}
public
void
visitAssignop
(
JCAssignOp
tree
)
{
public
void
visitAssignop
(
JCAssignOp
tree
)
{
...
...
src/share/classes/com/sun/tools/javac/parser/JavacParser.java
浏览文件 @
51293069
...
@@ -1535,11 +1535,18 @@ public class JavacParser implements Parser {
...
@@ -1535,11 +1535,18 @@ public class JavacParser implements Parser {
outer:
for
(
int
lookahead
=
0
;
;
lookahead
++)
{
outer:
for
(
int
lookahead
=
0
;
;
lookahead
++)
{
TokenKind
tk
=
S
.
token
(
lookahead
).
kind
;
TokenKind
tk
=
S
.
token
(
lookahead
).
kind
;
switch
(
tk
)
{
switch
(
tk
)
{
case
EXTENDS:
case
SUPER:
case
COMMA:
case
COMMA:
type
=
true
;
type
=
true
;
case
QUES
:
case
DOT:
case
AMP:
case
EXTENDS:
case
SUPER
:
case
DOT:
case
AMP:
//skip
//skip
break
;
break
;
case
QUES:
if
(
peekToken
(
lookahead
,
EXTENDS
)
||
peekToken
(
lookahead
,
SUPER
))
{
//wildcards
type
=
true
;
}
break
;
case
BYTE:
case
SHORT:
case
INT:
case
LONG:
case
FLOAT:
case
BYTE:
case
SHORT:
case
INT:
case
LONG:
case
FLOAT:
case
DOUBLE:
case
BOOLEAN:
case
CHAR:
case
DOUBLE:
case
BOOLEAN:
case
CHAR:
if
(
peekToken
(
lookahead
,
RPAREN
))
{
if
(
peekToken
(
lookahead
,
RPAREN
))
{
...
...
src/share/classes/com/sun/tools/javac/tree/JCTree.java
浏览文件 @
51293069
...
@@ -700,7 +700,7 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
...
@@ -700,7 +700,7 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
public
List
<
JCTypeParameter
>
getTypeParameters
()
{
public
List
<
JCTypeParameter
>
getTypeParameters
()
{
return
typarams
;
return
typarams
;
}
}
public
JC
Tree
getExtendsClause
()
{
return
extending
;
}
public
JC
Expression
getExtendsClause
()
{
return
extending
;
}
public
List
<
JCExpression
>
getImplementsClause
()
{
public
List
<
JCExpression
>
getImplementsClause
()
{
return
implementing
;
return
implementing
;
}
}
...
@@ -1175,7 +1175,7 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
...
@@ -1175,7 +1175,7 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
return
v
.
visitTry
(
this
,
d
);
return
v
.
visitTry
(
this
,
d
);
}
}
@Override
@Override
public
List
<
?
extends
JCTree
>
getResources
()
{
public
List
<
JCTree
>
getResources
()
{
return
resources
;
return
resources
;
}
}
@Override
@Override
...
@@ -1392,8 +1392,8 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
...
@@ -1392,8 +1392,8 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
*/
*/
public
static
class
JCThrow
extends
JCStatement
implements
ThrowTree
{
public
static
class
JCThrow
extends
JCStatement
implements
ThrowTree
{
public
JCExpression
expr
;
public
JCExpression
expr
;
protected
JCThrow
(
JC
Tree
expr
)
{
protected
JCThrow
(
JC
Expression
expr
)
{
this
.
expr
=
(
JCExpression
)
expr
;
this
.
expr
=
expr
;
}
}
@Override
@Override
public
void
accept
(
Visitor
v
)
{
v
.
visitThrow
(
this
);
}
public
void
accept
(
Visitor
v
)
{
v
.
visitThrow
(
this
);
}
...
@@ -2466,7 +2466,7 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
...
@@ -2466,7 +2466,7 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
JCBreak
Break
(
Name
label
);
JCBreak
Break
(
Name
label
);
JCContinue
Continue
(
Name
label
);
JCContinue
Continue
(
Name
label
);
JCReturn
Return
(
JCExpression
expr
);
JCReturn
Return
(
JCExpression
expr
);
JCThrow
Throw
(
JC
Tree
expr
);
JCThrow
Throw
(
JC
Expression
expr
);
JCAssert
Assert
(
JCExpression
cond
,
JCExpression
detail
);
JCAssert
Assert
(
JCExpression
cond
,
JCExpression
detail
);
JCMethodInvocation
Apply
(
List
<
JCExpression
>
typeargs
,
JCMethodInvocation
Apply
(
List
<
JCExpression
>
typeargs
,
JCExpression
fn
,
JCExpression
fn
,
...
...
src/share/classes/com/sun/tools/javac/tree/TreeCopier.java
浏览文件 @
51293069
...
@@ -340,7 +340,7 @@ public class TreeCopier<P> implements TreeVisitor<JCTree,P> {
...
@@ -340,7 +340,7 @@ public class TreeCopier<P> implements TreeVisitor<JCTree,P> {
public
JCTree
visitThrow
(
ThrowTree
node
,
P
p
)
{
public
JCTree
visitThrow
(
ThrowTree
node
,
P
p
)
{
JCThrow
t
=
(
JCThrow
)
node
;
JCThrow
t
=
(
JCThrow
)
node
;
JC
Tree
expr
=
copy
(
t
.
expr
,
p
);
JC
Expression
expr
=
copy
(
t
.
expr
,
p
);
return
M
.
at
(
t
.
pos
).
Throw
(
expr
);
return
M
.
at
(
t
.
pos
).
Throw
(
expr
);
}
}
...
...
src/share/classes/com/sun/tools/javac/tree/TreeMaker.java
浏览文件 @
51293069
...
@@ -332,7 +332,7 @@ public class TreeMaker implements JCTree.Factory {
...
@@ -332,7 +332,7 @@ public class TreeMaker implements JCTree.Factory {
return
tree
;
return
tree
;
}
}
public
JCThrow
Throw
(
JC
Tree
expr
)
{
public
JCThrow
Throw
(
JC
Expression
expr
)
{
JCThrow
tree
=
new
JCThrow
(
expr
);
JCThrow
tree
=
new
JCThrow
(
expr
);
tree
.
pos
=
pos
;
tree
.
pos
=
pos
;
return
tree
;
return
tree
;
...
...
src/share/classes/com/sun/tools/javac/util/Convert.java
浏览文件 @
51293069
/*
/*
* 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
...
@@ -28,6 +28,24 @@ package com.sun.tools.javac.util;
...
@@ -28,6 +28,24 @@ package com.sun.tools.javac.util;
/** Utility class for static conversion methods between numbers
/** Utility class for static conversion methods between numbers
* and strings in various formats.
* and strings in various formats.
*
*
* <p>Note regarding UTF-8.
* The JVMS defines its own version of the UTF-8 format so that it
* contains no zero bytes (modified UTF-8). This is not actually the same
* as Charset.forName("UTF-8").
*
* <p>
* See also:
* <ul>
* <li><a href="http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4.7">
* JVMS 4.4.7 </a></li>
* <li><a href="http://docs.oracle.com/javase/7/docs/api/java/io/DataInput.html#modified-utf-8">
java.io.DataInput: Modified UTF-8 </a></li>
<li><a href="https://en.wikipedia.org/wiki/UTF-8#Modified_UTF-8">
Modified UTF-8 (wikipedia) </a></li>
* </ul>
*
* The methods here support modified UTF-8.
*
* <p><b>This is NOT part of any supported API.
* <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.
* 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
* This code and its internal interfaces are subject to change or
...
...
src/share/classes/com/sun/tools/javac/util/UnsharedNameTable.java
浏览文件 @
51293069
/*
/*
* Copyright (c) 1999, 201
1
, 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
...
@@ -125,8 +125,6 @@ public class UnsharedNameTable extends Name.Table {
...
@@ -125,8 +125,6 @@ public class UnsharedNameTable extends Name.Table {
System
.
arraycopy
(
cs
,
start
,
bytes
,
0
,
len
);
System
.
arraycopy
(
cs
,
start
,
bytes
,
0
,
len
);
n
=
new
NameImpl
(
this
,
bytes
,
index
++);
n
=
new
NameImpl
(
this
,
bytes
,
index
++);
System
.
arraycopy
(
cs
,
start
,
n
.
bytes
,
0
,
len
);
HashEntry
newEntry
=
new
HashEntry
(
n
);
HashEntry
newEntry
=
new
HashEntry
(
n
);
if
(
previousNonNullTableEntry
==
null
)
{
// We are not the first name with that hashCode.
if
(
previousNonNullTableEntry
==
null
)
{
// We are not the first name with that hashCode.
...
...
src/share/classes/javax/lang/model/AnnotatedConstruct.java
浏览文件 @
51293069
...
@@ -39,35 +39,76 @@ import javax.lang.model.type.*;
...
@@ -39,35 +39,76 @@ import javax.lang.model.type.*;
* are on a <em>declaration</em>, whereas annotations on a type are on
* are on a <em>declaration</em>, whereas annotations on a type are on
* a specific <em>use</em> of a type name.
* a specific <em>use</em> of a type name.
*
*
* The terms <em>directly present</em> and <em>present</em> are used
* The terms <em>directly present</em>, <em>present</em>,
* <em>indirectly present</em>, and <em>associated </em> are used
* throughout this interface to describe precisely which annotations
* throughout this interface to describe precisely which annotations
* are returned by
methods:
* are returned by
the methods defined herein.
*
*
* <p>An annotation <i>A</i> is <em>directly present</em> on a
* <p>In the definitions below, an annotation <i>A</i> has an
* construct <i>E</i> if <i>E</i> is annotated, and:
* annotation type <i>AT</i>. If <i>AT</i> is a repeatable annotation
* type, the type of the containing annotation is <i>ATC</i>.
*
*
* <p>Annotation <i>A</i> is <em>directly present</em> on a construct
* <i>C</i> if either:
*
* <ul>
*
* <li><i>A</i> is explicitly or implicitly declared as applying to
* the source code representation of <i>C</i>.
*
* <p>Typically, if exactly one annotation of type <i>AT</i> appears in
* the source code of representation of <i>C</i>, then <i>A</i> is
* explicitly declared as applying to <i>C</i>.
*
* If there are multiple annotations of type <i>AT</i> present on
* <i>C</i>, then if <i>AT</i> is repeatable annotation type, an
* annotation of type <i>ATC</i> is implicitly declared on <i>C</i>.
*
* <li> A representation of <i>A</i> appears in the executable output
* for <i>C</i>, such as the {@code RuntimeVisibleAnnotations} or
* {@code RuntimeVisibleParameterAnnotations} attributes of a class
* file.
*
* </ul>
*
* <p>An annotation <i>A</i> is <em>present</em> on a
* construct <i>C</i> if either:
* <ul>
* <ul>
*
*
* <li> for an invocation of {@code getAnnotation(Class<T>)} or
* <li><i>A</i> is directly present on <i>C</i>.
* {@code getAnnotationMirrors()}, <i>E</i>'s annotations contain <i>A</i>.
*
*
* <li> for an invocation of {@code getAnnotationsByType(Class<T>)},
* <li>No annotation of type <i>AT</i> is directly present on
* <i>E</i>'s annotations either contain <i>A</i> or, if the type of
* <i>C</i>, and <i>C</i> is a class and <i>AT</i> is inheritable
* <i>A</i> is repeatable, contain exactly one annotation whose value
* and <i>A</i> is present on the superclass of <i>C</i>.
* element contains <i>A</i> and whose type is the containing
* annotation type of <i>A</i>'s type.
*
*
* </ul>
* </ul>
*
*
* <p>An annotation A is <em>present</em> on a construct E if either:
* An annotation <i>A</i> is <em>indirectly present</em> on a construct
* <i>C</i> if both:
*
*
* <ul>
* <ul>
* <li> <i>A</i> is <em>directly present</em> on <i>E</i>; or
*
*
* <li> <i>A</i> is not <em>directly present</em> on <i>E</i>, and
* <li><i>AT</i> is a repeatable annotation type with a containing
* <i>E</i> is an element representing a class, and <i>A</i>'s type
* annotation type <i>ATC</i>.
* is inheritable, and <i>A</i> is <em>present</em> on the element
*
* representing the superclass of <i>E</i>.
* <li>An annotation of type <i>ATC</i> is directly present on
* <i>C</i> and <i>A</i> is an annotation included in the result of
* calling the {@code value} method of the directly present annotation
* of type <i>ATC</i>.
*
* </ul>
*
* An annotation <i>A</i> is <em>associated</em> with a construct
* <i>C</i> if either:
*
* <ul>
*
* <li> <i>A</i> is directly or indirectly present on <i>C</i>.
*
* <li> No annotation of type <i>AT</i> is directly or indirectly
* present on <i>C</i>, and <i>C</i> is a class, and <i>AT</i> is
* inheritable, and <i>A</i> is associated with the superclass of
* <i>C</i>.
*
*
* </ul>
* </ul>
*
*
...
@@ -86,9 +127,8 @@ public interface AnnotatedConstruct {
...
@@ -86,9 +127,8 @@ public interface AnnotatedConstruct {
List
<?
extends
AnnotationMirror
>
getAnnotationMirrors
();
List
<?
extends
AnnotationMirror
>
getAnnotationMirrors
();
/**
/**
* Returns this construct's annotation of the
* Returns this construct's annotation of the specified type if
* specified type if such an annotation is <em>present</em>, else {@code
* such an annotation is <em>present</em>, else {@code null}.
* null}.
*
*
* <p> The annotation returned by this method could contain an element
* <p> The annotation returned by this method could contain an element
* whose value is of type {@code Class}.
* whose value is of type {@code Class}.
...
@@ -118,9 +158,8 @@ public interface AnnotatedConstruct {
...
@@ -118,9 +158,8 @@ public interface AnnotatedConstruct {
* @param <A> the annotation type
* @param <A> the annotation type
* @param annotationType the {@code Class} object corresponding to
* @param annotationType the {@code Class} object corresponding to
* the annotation type
* the annotation type
* @return this element's or type use's annotation for the
* @return this construct's annotation for the specified
* specified annotation type if present on this element, else
* annotation type if present, else {@code null}
* {@code null}
*
*
* @see #getAnnotationMirrors()
* @see #getAnnotationMirrors()
* @see java.lang.reflect.AnnotatedElement#getAnnotation
* @see java.lang.reflect.AnnotatedElement#getAnnotation
...
@@ -134,10 +173,16 @@ public interface AnnotatedConstruct {
...
@@ -134,10 +173,16 @@ public interface AnnotatedConstruct {
<
A
extends
Annotation
>
A
getAnnotation
(
Class
<
A
>
annotationType
);
<
A
extends
Annotation
>
A
getAnnotation
(
Class
<
A
>
annotationType
);
/**
/**
* Returns annotations that are <em>present</em> on this construct.
* Returns annotations that are <em>associated</em> with this construct.
*
* If there are no annotations associated with this construct, the
* return value is an array of length 0.
*
*
* If there are no annotations <em>present</em> on this construct,
* The order of annotations which are directly or indirectly
* the return value is an array of length 0.
* present on a construct <i>C</i> is computed as if indirectly present
* annotations on <i>C</i> are directly present on <i>C</i> in place of their
* container annotation, in the order in which they appear in the
* value element of the container annotation.
*
*
* The difference between this method and {@link #getAnnotation(Class)}
* The difference between this method and {@link #getAnnotation(Class)}
* is that this method detects if its argument is a <em>repeatable
* is that this method detects if its argument is a <em>repeatable
...
@@ -172,8 +217,8 @@ public interface AnnotatedConstruct {
...
@@ -172,8 +217,8 @@ public interface AnnotatedConstruct {
* @param <A> the annotation type
* @param <A> the annotation type
* @param annotationType the {@code Class} object corresponding to
* @param annotationType the {@code Class} object corresponding to
* the annotation type
* the annotation type
* @return this
elemen
t's annotations for the specified annotation
* @return this
construc
t's annotations for the specified annotation
* type if present on this
elemen
t, else an empty array
* type if present on this
construc
t, else an empty array
*
*
* @see #getAnnotationMirrors()
* @see #getAnnotationMirrors()
* @see #getAnnotation(java.lang.Class)
* @see #getAnnotation(java.lang.Class)
...
...
src/share/classes/javax/lang/model/util/Elements.java
浏览文件 @
51293069
...
@@ -143,12 +143,13 @@ public interface Elements {
...
@@ -143,12 +143,13 @@ public interface Elements {
List
<?
extends
Element
>
getAllMembers
(
TypeElement
type
);
List
<?
extends
Element
>
getAllMembers
(
TypeElement
type
);
/**
/**
* Returns all annotations
of
an element, whether
* Returns all annotations
<i>present</i> on
an element, whether
*
inherited or directly present
.
*
directly present or present via inheritance
.
*
*
* @param e the element being examined
* @param e the element being examined
* @return all annotations of the element
* @return all annotations of the element
* @see Element#getAnnotationMirrors
* @see Element#getAnnotationMirrors
* @see javax.lang.model.AnnotatedConstruct
*/
*/
List
<?
extends
AnnotationMirror
>
getAllAnnotationMirrors
(
Element
e
);
List
<?
extends
AnnotationMirror
>
getAllAnnotationMirrors
(
Element
e
);
...
...
src/share/sample/language/model/CoreReflectionFactory.java
浏览文件 @
51293069
...
@@ -439,15 +439,11 @@ public class CoreReflectionFactory {
...
@@ -439,15 +439,11 @@ public class CoreReflectionFactory {
ReflectionElement
getGenericElement
();
ReflectionElement
getGenericElement
();
// Functionality specific to the specialization
// Functionality specific to the specialization
/**
// Conceptually should have an override for getSource
* {@inheritDoc}
// returning GenericDeclaration, but GenericDeclaration
*/
// doesn't currently implement AnnotatedElement.
@Override
// /**
java
.
lang
.
reflect
.
TypeVariable
<?>
getSource
();
// * {@inheritDoc}
// */
// @Override
// java.lang.reflect.GenericDeclaration getSource();
}
}
/**
/**
...
@@ -1296,8 +1292,8 @@ public class CoreReflectionFactory {
...
@@ -1296,8 +1292,8 @@ public class CoreReflectionFactory {
}
}
@Override
@Override
public
AnnotatedElement
getSource
()
{
public
java
.
lang
.
reflect
.
TypeVariable
<?>
getSource
()
{
return
(
AnnotatedElement
)
source
;
return
sourceTypeVar
;
}
}
protected
java
.
lang
.
reflect
.
TypeVariable
<?>
getSourceTypeVar
()
{
protected
java
.
lang
.
reflect
.
TypeVariable
<?>
getSourceTypeVar
()
{
...
...
test/tools/doclint/RunTest.java
浏览文件 @
51293069
/*
/*
* 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
...
@@ -22,20 +22,13 @@
...
@@ -22,20 +22,13 @@
*/
*/
/* @test
/* @test
* @bug 8004832
* @bug 8004832
8000103
* @summary Add new doclint package
* @summary Add new doclint package
* @bug 8000103
* @summary Create doclint utility
* @summary Create doclint utility
*/
*/
import
com.sun.tools.doclint.DocLint
;
import
com.sun.tools.doclint.DocLint.BadArgs
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.File
;
import
java.io.FilterOutputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.io.PrintStream
;
import
java.io.PrintWriter
;
import
java.io.PrintWriter
;
import
java.io.StringWriter
;
import
java.io.StringWriter
;
import
java.lang.annotation.Annotation
;
import
java.lang.annotation.Annotation
;
...
@@ -44,6 +37,9 @@ import java.lang.annotation.RetentionPolicy;
...
@@ -44,6 +37,9 @@ import java.lang.annotation.RetentionPolicy;
import
java.lang.reflect.InvocationTargetException
;
import
java.lang.reflect.InvocationTargetException
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Method
;
import
com.sun.tools.doclint.DocLint
;
import
com.sun.tools.doclint.DocLint.BadArgs
;
/** javadoc error on toplevel: a & b. */
/** javadoc error on toplevel: a & b. */
public
class
RunTest
{
public
class
RunTest
{
/** javadoc error on member: a < b */
/** javadoc error on member: a < b */
...
...
test/tools/javac/5045412/Bar.java
浏览文件 @
51293069
/*
/*
* Copyright (c) 2005, 20
08
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 20
13
, 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
...
@@ -21,12 +21,6 @@
...
@@ -21,12 +21,6 @@
* questions.
* questions.
*/
*/
/**
* @test
* @bug 5045412 6627366
* @compile -Xlint:serial -XDfailcomplete=java.io.Serializable Bar.java
*/
/**
/**
* @test
* @test
* @bug 5045412 6627366
* @bug 5045412 6627366
...
...
test/tools/javac/5045412/Foo.java
浏览文件 @
51293069
/*
/*
* Copyright (c) 2005, 20
08
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 20
13
, 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
...
@@ -25,11 +25,6 @@
...
@@ -25,11 +25,6 @@
* @test
* @test
* @bug 5045412 6627366
* @bug 5045412 6627366
* @compile -Xlint:serial -XDfailcomplete=java.io.Serializable Foo.java
* @compile -Xlint:serial -XDfailcomplete=java.io.Serializable Foo.java
*/
/**
* @test
* @bug 5045412 6627366
* @compile -Xlint:serial -XDfailcomplete=java.io.Serializable Foo.java Bar.java
* @compile -Xlint:serial -XDfailcomplete=java.io.Serializable Foo.java Bar.java
*/
*/
...
...
test/tools/javac/HiddenAbstractMethod/Test
→
test/tools/javac/HiddenAbstractMethod/Test
.java
浏览文件 @
51293069
...
@@ -8,5 +8,5 @@
...
@@ -8,5 +8,5 @@
* the method has the same name, it does not override.
* the method has the same name, it does not override.
* @author turnidge
* @author turnidge
*
*
* @compile/fail
-nowrite
one/Parent.java two/Child.java
* @compile/fail one/Parent.java two/Child.java
*/
*/
test/tools/javac/NonAmbiguousField/Test
→
test/tools/javac/NonAmbiguousField/Test
.java
浏览文件 @
51293069
...
@@ -5,6 +5,6 @@
...
@@ -5,6 +5,6 @@
* compiler as ambigous.
* compiler as ambigous.
* @author turnidge
* @author turnidge
*
*
* @compile
-nowrite
one/Parent.java two/Child.java
* @compile one/Parent.java two/Child.java
* @compile
-nowrite
one/Parent2.java two/Child2.java
* @compile
/fail
one/Parent2.java two/Child2.java
*/
*/
test/tools/javac/NonAmbiguousField/two/Child2.java
浏览文件 @
51293069
/*
/*
* Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998,
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
...
@@ -28,9 +28,7 @@ interface I {
...
@@ -28,9 +28,7 @@ interface I {
}
}
public
class
Child2
extends
one
.
Parent2
implements
I
{
public
class
Child2
extends
one
.
Parent2
implements
I
{
class
inner
{
void
method
()
{
void
method
()
{
System
.
out
.
println
(
i
);
System
.
out
.
println
(
i
);
}
}
}
}
}
test/tools/javac/T6970173/DebugPointerAtBadPositionTest.java
0 → 100644
浏览文件 @
51293069
/*
* 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.
*
* 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 6970173
* @summary Debug pointer at bad position
* @library /tools/javac/lib
* @build ToolBox
* @run main DebugPointerAtBadPositionTest
*/
import
java.io.File
;
import
java.nio.file.Paths
;
import
com.sun.tools.classfile.ClassFile
;
import
com.sun.tools.classfile.Code_attribute
;
import
com.sun.tools.classfile.LineNumberTable_attribute
;
import
com.sun.tools.classfile.Method
;
import
com.sun.tools.javac.util.Assert
;
public
class
DebugPointerAtBadPositionTest
{
static
final
String
testSource
=
"public class AssertionTest {\n"
+
" void lookForThisMethod() {\n"
+
" int i;\n"
+
" i = 33;\n"
+
" assert // line 5\n"
+
" i < 89:\n"
+
" i < 100; // line 7\n"
+
" }\n"
+
"}"
;
static
final
int
[][]
expectedLNT
=
{
{
4
,
0
},
{
5
,
3
},
{
8
,
34
}
};
static
final
String
methodToLookFor
=
"lookForThisMethod"
;
static
final
String
seekMethodNotFoundMsg
=
"The seek method was not found"
;
static
final
String
foundLNTLengthDifferentThanExpMsg
=
"The LineNumberTable found has a length different to the expected one"
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
new
DebugPointerAtBadPositionTest
().
run
();
}
void
run
()
throws
Exception
{
compileTestClass
();
checkClassFile
(
new
File
(
Paths
.
get
(
System
.
getProperty
(
"user.dir"
),
"AssertionTest.class"
).
toUri
()),
methodToLookFor
);
}
void
compileTestClass
()
throws
Exception
{
ToolBox
.
JavaToolArgs
javacSuccessArgs
=
new
ToolBox
.
JavaToolArgs
().
setSources
(
testSource
);
ToolBox
.
javac
(
javacSuccessArgs
);
}
void
checkClassFile
(
final
File
cfile
,
String
methodToFind
)
throws
Exception
{
ClassFile
classFile
=
ClassFile
.
read
(
cfile
);
boolean
methodFound
=
false
;
for
(
Method
method
:
classFile
.
methods
)
{
if
(
method
.
getName
(
classFile
.
constant_pool
).
equals
(
methodToFind
))
{
methodFound
=
true
;
Code_attribute
code
=
(
Code_attribute
)
method
.
attributes
.
get
(
"Code"
);
LineNumberTable_attribute
lnt
=
(
LineNumberTable_attribute
)
code
.
attributes
.
get
(
"LineNumberTable"
);
Assert
.
check
(
lnt
.
line_number_table_length
==
expectedLNT
.
length
,
foundLNTLengthDifferentThanExpMsg
);
int
i
=
0
;
for
(
LineNumberTable_attribute
.
Entry
entry:
lnt
.
line_number_table
)
{
Assert
.
check
(
entry
.
line_number
==
expectedLNT
[
i
][
0
]
&&
entry
.
start_pc
==
expectedLNT
[
i
][
1
],
"LNT entry at pos "
+
i
+
" differ from expected."
+
"Found "
+
entry
.
line_number
+
":"
+
entry
.
start_pc
+
". Expected "
+
expectedLNT
[
i
][
0
]
+
":"
+
expectedLNT
[
i
][
1
]);
i
++;
}
}
}
Assert
.
check
(
methodFound
,
seekMethodNotFoundMsg
);
}
void
error
(
String
msg
)
{
throw
new
AssertionError
(
msg
);
}
}
test/tools/javac/T7053059/VerifyErrorWithDoubleAssignmentTest.java
0 → 100644
浏览文件 @
51293069
/*
* 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.
*
* 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 7053059
* @summary VerifyError with double Assignment using a Generic Member of a Superclass
* @run main VerifyErrorWithDoubleAssignmentTest
*/
public
class
VerifyErrorWithDoubleAssignmentTest
{
static
class
A
<
D
>
{
D
d
;
D
getD
()
{
return
null
;
}
}
static
class
B
extends
A
<
Integer
>
{
Integer
y
;
B
()
{
y
=
d
=
getD
();
}
}
public
static
void
main
(
String
[]
args
)
{
new
B
();
}
}
test/tools/javac/annotations/typeAnnotations/8013180/QualifiedName.java
0 → 100644
浏览文件 @
51293069
/*
* 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.
*
* 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.
*/
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Target
;
/*
* @test
* @bug 8013180
* @summary Qualified type annotation name used to crash javac
* @compile QualifiedName.java
*/
public
class
QualifiedName
{
@Target
(
ElementType
.
TYPE_USE
)
@interface
TA
{
}
class
E
extends
Exception
{
}
void
m
()
throws
@TA
QualifiedName
.
@TA
E
{
}
}
test/tools/javac/diags/Example.java
浏览文件 @
51293069
/*
/*
* Copyright (c) 2010, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010, 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
...
@@ -296,7 +296,10 @@ class Example implements Comparable<Example> {
...
@@ -296,7 +296,10 @@ class Example implements Comparable<Example> {
private
Set
<
String
>
actualKeys
;
private
Set
<
String
>
actualKeys
;
private
Set
<
String
>
declaredKeys
;
private
Set
<
String
>
declaredKeys
;
static
File
tempDir
=
new
File
(
System
.
getProperty
(
"java.io.tmpdir"
));
static
File
tempDir
=
(
System
.
getProperty
(
"test.src"
)
!=
null
)
?
new
File
(
System
.
getProperty
(
"user.dir"
)):
new
File
(
System
.
getProperty
(
"java.io.tmpdir"
));
static
void
setTempDir
(
File
tempDir
)
{
static
void
setTempDir
(
File
tempDir
)
{
Example
.
tempDir
=
tempDir
;
Example
.
tempDir
=
tempDir
;
}
}
...
...
test/tools/javac/lambda/MethodReferenceParserTest.java
浏览文件 @
51293069
...
@@ -23,8 +23,7 @@
...
@@ -23,8 +23,7 @@
/*
/*
* @test
* @test
* @bug 7115052
* @bug 7115052 8003280 8006694
* @bug 8003280 8006694
* @summary Add lambda tests
* @summary Add lambda tests
* Add parser support for method references
* Add parser support for method references
* temporarily workaround combo tests are causing time out in several platforms
* temporarily workaround combo tests are causing time out in several platforms
...
...
test/tools/javac/lambda/TargetType73.java
0 → 100644
浏览文件 @
51293069
/*
* 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.
*
* 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 8014494
* @summary javac crashes when varargs element of a method reference is inferred from the context
* @compile TargetType73.java
*/
import
java.util.List
;
class
TargetType73
{
interface
Function
<
X
,
Y
>
{
Y
m
(
X
x
);
}
static
void
test
()
{
m
(
TargetType73:
:
g
);
}
public
static
<
T
>
List
<
T
>
g
(
T
...
a
)
{
return
null
;
}
public
static
<
C
>
void
m
(
Function
<
String
,
C
>
zipper
)
{
}
}
test/tools/javac/lambda/TestInvokeDynamic.java
浏览文件 @
51293069
...
@@ -23,8 +23,7 @@
...
@@ -23,8 +23,7 @@
/*
/*
* @test
* @test
* @bug 7194586
* @bug 7194586 8003280 8006694 8010404
* @bug 8003280 8006694 8010404
* @summary Add lambda tests
* @summary Add lambda tests
* Add back-end support for invokedynamic
* Add back-end support for invokedynamic
* temporarily workaround combo tests are causing time out in several platforms
* temporarily workaround combo tests are causing time out in several platforms
...
@@ -36,6 +35,16 @@
...
@@ -36,6 +35,16 @@
// use /othervm to avoid jtreg timeout issues (CODETOOLS-7900047)
// use /othervm to avoid jtreg timeout issues (CODETOOLS-7900047)
// see JDK-8006746
// see JDK-8006746
import
java.io.File
;
import
java.net.URI
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Locale
;
import
javax.tools.Diagnostic
;
import
javax.tools.JavaFileObject
;
import
javax.tools.SimpleJavaFileObject
;
import
com.sun.source.tree.MethodInvocationTree
;
import
com.sun.source.tree.MethodInvocationTree
;
import
com.sun.source.tree.MethodTree
;
import
com.sun.source.tree.MethodTree
;
import
com.sun.source.util.TaskEvent
;
import
com.sun.source.util.TaskEvent
;
...
@@ -63,16 +72,6 @@ import com.sun.tools.javac.tree.JCTree.JCIdent;
...
@@ -63,16 +72,6 @@ import com.sun.tools.javac.tree.JCTree.JCIdent;
import
com.sun.tools.javac.util.Context
;
import
com.sun.tools.javac.util.Context
;
import
com.sun.tools.javac.util.Names
;
import
com.sun.tools.javac.util.Names
;
import
java.io.File
;
import
java.net.URI
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Locale
;
import
javax.tools.Diagnostic
;
import
javax.tools.JavaFileObject
;
import
javax.tools.SimpleJavaFileObject
;
import
static
com
.
sun
.
tools
.
javac
.
jvm
.
ClassFile
.*;
import
static
com
.
sun
.
tools
.
javac
.
jvm
.
ClassFile
.*;
public
class
TestInvokeDynamic
public
class
TestInvokeDynamic
...
...
test/tools/javac/mandatoryWarnings/deprecated/Test.java
浏览文件 @
51293069
/*
/*
* Copyright (c) 2006, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2006, 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
...
@@ -29,109 +29,19 @@
...
@@ -29,109 +29,19 @@
* @bug 5047307
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test1.out -XDrawDiagnostics A.java
* @compile/ref=Test1.out -XDrawDiagnostics A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test1.out -XDrawDiagnostics -nowarn A.java
* @compile/ref=Test1.out -XDrawDiagnostics -nowarn A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test1.out -XDrawDiagnostics -Xmaxwarns 1 A.java
* @compile/ref=Test1.out -XDrawDiagnostics -Xmaxwarns 1 A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test2.out -XDrawDiagnostics A.java B.java
* @compile/ref=Test2.out -XDrawDiagnostics A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test2.out -XDrawDiagnostics -nowarn A.java B.java
* @compile/ref=Test2.out -XDrawDiagnostics -nowarn A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test2.out -XDrawDiagnostics -Xmaxwarns 1 A.java B.java
* @compile/ref=Test2.out -XDrawDiagnostics -Xmaxwarns 1 A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test3.out -XDrawDiagnostics -Xlint:deprecation A.java
* @compile/ref=Test3.out -XDrawDiagnostics -Xlint:deprecation A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test3.out -XDrawDiagnostics -nowarn -Xlint:deprecation A.java
* @compile/ref=Test3.out -XDrawDiagnostics -nowarn -Xlint:deprecation A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test3b.out -XDrawDiagnostics -nowarn -Xlint:deprecation -Xmaxwarns 1 A.java
* @compile/ref=Test3b.out -XDrawDiagnostics -nowarn -Xlint:deprecation -Xmaxwarns 1 A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4.out -XDrawDiagnostics -Xlint:deprecation A.java B.java
* @compile/ref=Test4.out -XDrawDiagnostics -Xlint:deprecation A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4.out -XDrawDiagnostics -nowarn -Xlint:deprecation A.java B.java
* @compile/ref=Test4.out -XDrawDiagnostics -nowarn -Xlint:deprecation A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4b.out -XDrawDiagnostics -nowarn -Xlint:deprecation -Xmaxwarns 1 A.java B.java
* @compile/ref=Test4b.out -XDrawDiagnostics -nowarn -Xlint:deprecation -Xmaxwarns 1 A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4c.out -XDrawDiagnostics -nowarn -Xlint:deprecation -Xmaxwarns 2 A.java B.java
* @compile/ref=Test4c.out -XDrawDiagnostics -nowarn -Xlint:deprecation -Xmaxwarns 2 A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4d.out -XDrawDiagnostics -nowarn -Xlint:deprecation -Xmaxwarns 3 A.java B.java
* @compile/ref=Test4d.out -XDrawDiagnostics -nowarn -Xlint:deprecation -Xmaxwarns 3 A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test5.out -XDrawDiagnostics -Xlint:deprecation P.java Q.java
* @compile/ref=Test5.out -XDrawDiagnostics -Xlint:deprecation P.java Q.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test5b.out -XDrawDiagnostics -Xlint:deprecation -Xmaxwarns 2 P.java Q.java
* @compile/ref=Test5b.out -XDrawDiagnostics -Xlint:deprecation -Xmaxwarns 2 P.java Q.java
*/
*/
test/tools/javac/mandatoryWarnings/unchecked/Test.java
浏览文件 @
51293069
/*
/*
* Copyright (c) 2006, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2006, 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
...
@@ -29,95 +29,17 @@
...
@@ -29,95 +29,17 @@
* @bug 5047307
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test1.out -XDrawDiagnostics A.java
* @compile/ref=Test1.out -XDrawDiagnostics A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test1.out -XDrawDiagnostics -nowarn A.java
* @compile/ref=Test1.out -XDrawDiagnostics -nowarn A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test1.out -XDrawDiagnostics -Xmaxwarns 1 A.java
* @compile/ref=Test1.out -XDrawDiagnostics -Xmaxwarns 1 A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test2.out -XDrawDiagnostics A.java B.java
* @compile/ref=Test2.out -XDrawDiagnostics A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test2.out -XDrawDiagnostics -nowarn A.java B.java
* @compile/ref=Test2.out -XDrawDiagnostics -nowarn A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test2.out -XDrawDiagnostics -Xmaxwarns 1 A.java B.java
* @compile/ref=Test2.out -XDrawDiagnostics -Xmaxwarns 1 A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test3.out -XDrawDiagnostics -Xlint:unchecked A.java
* @compile/ref=Test3.out -XDrawDiagnostics -Xlint:unchecked A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test3.out -XDrawDiagnostics -nowarn -Xlint:unchecked A.java
* @compile/ref=Test3.out -XDrawDiagnostics -nowarn -Xlint:unchecked A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test3b.out -XDrawDiagnostics -nowarn -Xlint:unchecked -Xmaxwarns 1 A.java
* @compile/ref=Test3b.out -XDrawDiagnostics -nowarn -Xlint:unchecked -Xmaxwarns 1 A.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4.out -XDrawDiagnostics -Xlint:unchecked A.java B.java
* @compile/ref=Test4.out -XDrawDiagnostics -Xlint:unchecked A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4.out -XDrawDiagnostics -nowarn -Xlint:unchecked A.java B.java
* @compile/ref=Test4.out -XDrawDiagnostics -nowarn -Xlint:unchecked A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4b.out -XDrawDiagnostics -nowarn -Xlint:unchecked -Xmaxwarns 1 A.java B.java
* @compile/ref=Test4b.out -XDrawDiagnostics -nowarn -Xlint:unchecked -Xmaxwarns 1 A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4c.out -XDrawDiagnostics -nowarn -Xlint:unchecked -Xmaxwarns 2 A.java B.java
* @compile/ref=Test4c.out -XDrawDiagnostics -nowarn -Xlint:unchecked -Xmaxwarns 2 A.java B.java
*/
/*
* @test
* @bug 5047307
* @summary javac -nowarn improperly suppresses JLS-mandated warnings
* @compile/ref=Test4d.out -XDrawDiagnostics -nowarn -Xlint:unchecked -Xmaxwarns 3 A.java B.java
* @compile/ref=Test4d.out -XDrawDiagnostics -nowarn -Xlint:unchecked -Xmaxwarns 3 A.java B.java
*/
*/
test/tools/javac/parser/8014643/T8014643.java
0 → 100644
浏览文件 @
51293069
/*
* 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.
*
* 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 8014643
* @summary Parser regression in JDK 8 when compiling super.x
* @compile T8014643.java
*/
class
T8014643
{
static
class
A
{
int
b
=
1
;
}
static
class
B
extends
A
{
int
b
=
12
;
int
m
()
{
return
(
super
.
b
);
}
}
}
test/tools/javac/policy/test3/Test.java
浏览文件 @
51293069
/*
/*
* 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
...
@@ -123,47 +123,3 @@ public class Test {
...
@@ -123,47 +123,3 @@ public class Test {
int
errors
;
int
errors
;
}
}
// These tests test the ability of the compiler to continue in the face of
// errors, accordining to the shouldStopPolicy
/* @ test /nodynamiccopyright/
* @bug 6813059
* @summary
* @compile/fail/ref=flow.out -XDrawDiagnostics -XDcompilePolicy=byfile -XDverboseCompilePolicy -XDshouldStopPolicy=FLOW Test.java
* @compile/fail/ref=default.out -XDrawDiagnostics -XDcompilePolicy=byfile -XDverboseCompilePolicy Test.java
* @compile/fail/ref=enter.out -XDrawDiagnostics -XDcompilePolicy=byfile -XDverboseCompilePolicy -XDshouldStopPolicy=ENTER Test.java
* @compile/fail/ref=attr.out -XDrawDiagnostics -XDcompilePolicy=byfile -XDverboseCompilePolicy -XDshouldStopPolicy=ATTR Test.java
* @compile/fail/ref=transtypes.out -XDrawDiagnostics -XDcompilePolicy=byfile -XDverboseCompilePolicy -XDshouldStopPolicy=TRANSTYPES Test.java
* @compile/fail/ref=lower.out -XDrawDiagnostics -XDcompilePolicy=byfile -XDverboseCompilePolicy -XDshouldStopPolicy=LOWER Test.java
* @compile/fail/ref=generate.out -XDrawDiagnostics -XDcompilePolicy=byfile -XDverboseCompilePolicy -XDshouldStopPolicy=GENERATE Test.java
*/
/*
class Test {
void m1() {
System.err.println("hello");
0 // syntax error
System.err.println("world");
}
void m2() {
}
}
class Test2 {
}
*/
test/tools/javac/resolve/ResolveHarness.java
浏览文件 @
51293069
...
@@ -43,6 +43,7 @@ import java.util.Collections;
...
@@ -43,6 +43,7 @@ import java.util.Collections;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.Map
;
import
java.util.Map
;
import
javax.annotation.processing.AbstractProcessor
;
import
javax.annotation.processing.AbstractProcessor
;
...
@@ -85,6 +86,7 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
...
@@ -85,6 +86,7 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
Set
<
String
>
declaredKeys
=
new
HashSet
<>();
Set
<
String
>
declaredKeys
=
new
HashSet
<>();
List
<
Diagnostic
<?
extends
JavaFileObject
>>
diags
=
new
ArrayList
<>();
List
<
Diagnostic
<?
extends
JavaFileObject
>>
diags
=
new
ArrayList
<>();
List
<
ElementKey
>
seenCandidates
=
new
ArrayList
<>();
List
<
ElementKey
>
seenCandidates
=
new
ArrayList
<>();
Map
<
String
,
String
>
predefTranslationMap
=
new
HashMap
<>();
protected
ResolveHarness
(
JavaFileObject
jfo
)
{
protected
ResolveHarness
(
JavaFileObject
jfo
)
{
this
.
jfo
=
jfo
;
this
.
jfo
=
jfo
;
...
@@ -93,12 +95,36 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
...
@@ -93,12 +95,36 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
new
VerboseDeferredInferenceNoteProcessor
(),
new
VerboseDeferredInferenceNoteProcessor
(),
new
ErrorProcessor
()
new
ErrorProcessor
()
};
};
predefTranslationMap
.
put
(
"+"
,
"_plus"
);
predefTranslationMap
.
put
(
"-"
,
"_minus"
);
predefTranslationMap
.
put
(
"~"
,
"_not"
);
predefTranslationMap
.
put
(
"++"
,
"_plusplus"
);
predefTranslationMap
.
put
(
"--"
,
"_minusminus"
);
predefTranslationMap
.
put
(
"!"
,
"_bang"
);
predefTranslationMap
.
put
(
"*"
,
"_mul"
);
predefTranslationMap
.
put
(
"/"
,
"_div"
);
predefTranslationMap
.
put
(
"%"
,
"_mod"
);
predefTranslationMap
.
put
(
"&"
,
"_and"
);
predefTranslationMap
.
put
(
"|"
,
"_or"
);
predefTranslationMap
.
put
(
"^"
,
"_xor"
);
predefTranslationMap
.
put
(
"<<"
,
"_lshift"
);
predefTranslationMap
.
put
(
">>"
,
"_rshift"
);
predefTranslationMap
.
put
(
"<<<"
,
"_lshiftshift"
);
predefTranslationMap
.
put
(
">>>"
,
"_rshiftshift"
);
predefTranslationMap
.
put
(
"<"
,
"_lt"
);
predefTranslationMap
.
put
(
">"
,
"_gt"
);
predefTranslationMap
.
put
(
"<="
,
"_lteq"
);
predefTranslationMap
.
put
(
">="
,
"_gteq"
);
predefTranslationMap
.
put
(
"=="
,
"_eq"
);
predefTranslationMap
.
put
(
"!="
,
"_neq"
);
predefTranslationMap
.
put
(
"&&"
,
"_andand"
);
predefTranslationMap
.
put
(
"||"
,
"_oror"
);
}
}
protected
void
check
()
throws
Exception
{
protected
void
check
()
throws
Exception
{
String
[]
options
=
{
String
[]
options
=
{
"-XDshouldStopPolicy=ATTR"
,
"-XDshouldStopPolicy=ATTR"
,
"-XDverboseResolution=success,failure,applicable,inapplicable,deferred-inference"
"-XDverboseResolution=success,failure,applicable,inapplicable,deferred-inference
,predef
"
};
};
AbstractProcessor
[]
processors
=
{
new
ResolveCandidateFinder
(),
null
};
AbstractProcessor
[]
processors
=
{
new
ResolveCandidateFinder
(),
null
};
...
@@ -223,7 +249,8 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
...
@@ -223,7 +249,8 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
@Override
@Override
void
process
(
Diagnostic
<?
extends
JavaFileObject
>
diagnostic
)
{
void
process
(
Diagnostic
<?
extends
JavaFileObject
>
diagnostic
)
{
Element
siteSym
=
getSiteSym
(
diagnostic
);
Element
siteSym
=
getSiteSym
(
diagnostic
);
if
(
siteSym
.
getAnnotation
(
TraceResolve
.
class
)
==
null
)
{
if
(
siteSym
.
getSimpleName
().
length
()
!=
0
&&
siteSym
.
getAnnotation
(
TraceResolve
.
class
)
==
null
)
{
return
;
return
;
}
}
int
candidateIdx
=
0
;
int
candidateIdx
=
0
;
...
@@ -307,7 +334,7 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
...
@@ -307,7 +334,7 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
if
(
Arrays
.
asList
(
c
.
applicable
()).
contains
(
phase
))
{
//applicable
if
(
Arrays
.
asList
(
c
.
applicable
()).
contains
(
phase
))
{
//applicable
if
(
c
.
mostSpecific
()
!=
mostSpecific
)
{
if
(
c
.
mostSpecific
()
!=
mostSpecific
)
{
error
(
"Invalid most specific value for method "
+
methodSym
);
error
(
"Invalid most specific value for method "
+
methodSym
+
" "
+
new
ElementKey
(
methodSym
).
key
);
}
}
MethodType
mtype
=
getSig
(
diagnostic
);
MethodType
mtype
=
getSig
(
diagnostic
);
if
(
mtype
!=
null
)
{
if
(
mtype
!=
null
)
{
...
@@ -444,11 +471,21 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
...
@@ -444,11 +471,21 @@ public class ResolveHarness implements javax.tools.DiagnosticListener<JavaFileOb
String
computeKey
(
Element
e
)
{
String
computeKey
(
Element
e
)
{
StringBuilder
buf
=
new
StringBuilder
();
StringBuilder
buf
=
new
StringBuilder
();
while
(
e
!=
null
)
{
if
(
predefTranslationMap
.
containsKey
(
e
.
getSimpleName
().
toString
()))
{
//predef element
buf
.
append
(
"<predef>."
);
String
replacedName
=
predefTranslationMap
.
get
(
e
.
getSimpleName
().
toString
());
buf
.
append
(
e
.
toString
().
replace
(
e
.
getSimpleName
().
toString
(),
replacedName
));
}
else
if
(
e
.
getSimpleName
().
toString
().
startsWith
(
"_"
))
{
buf
.
append
(
"<predef>."
);
buf
.
append
(
e
.
toString
());
buf
.
append
(
e
.
toString
());
e
=
e
.
getEnclosingElement
();
}
else
{
while
(
e
!=
null
)
{
buf
.
append
(
e
.
toString
());
e
=
e
.
getEnclosingElement
();
}
buf
.
append
(
jfo
.
getName
());
}
}
buf
.
append
(
jfo
.
getName
());
return
buf
.
toString
();
return
buf
.
toString
();
}
}
...
...
test/tools/javac/resolve/tests/PrimitiveBinopOverload.java
0 → 100644
浏览文件 @
51293069
/*
* 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.
*
* 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.
*/
@TraceResolve
class
PrimitiveBinopOverload
{
@Candidate
(
applicable
=
Phase
.
BASIC
,
mostSpecific
=
true
)
int
_plus
(
int
x
,
int
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
Phase
.
BASIC
)
long
_plus
(
long
x
,
long
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
Phase
.
BASIC
)
float
_plus
(
float
x
,
float
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
Phase
.
BASIC
)
double
_plus
(
double
x
,
double
y
)
{
return
-
1
;
}
//not a candidate
Object
_plus
(
Object
x
,
Object
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
},
mostSpecific
=
true
)
int
_minus
(
int
x
,
int
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
})
long
_minus
(
long
x
,
long
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
})
float
_minus
(
float
x
,
float
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
})
double
_minus
(
double
x
,
double
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
},
mostSpecific
=
true
)
int
_mul
(
int
x
,
int
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
})
long
_mul
(
long
x
,
long
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
})
float
_mul
(
float
x
,
float
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
})
double
_mul
(
double
x
,
double
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
},
mostSpecific
=
true
)
int
_div
(
int
x
,
int
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
})
long
_div
(
long
x
,
long
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
})
float
_div
(
float
x
,
float
y
)
{
return
-
1
;
}
@Candidate
(
applicable
=
{
Phase
.
BASIC
,
Phase
.
BOX
})
double
_div
(
double
x
,
double
y
)
{
return
-
1
;
}
{
int
i1
=
1
+
1
;
int
i2
=
5
-
new
Integer
(
3
);
int
i3
=
new
Integer
(
5
)
*
3
;
int
i4
=
new
Integer
(
6
)
/
new
Integer
(
2
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录