Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
f35cd3f0
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看板
提交
f35cd3f0
编写于
9月 03, 2010
作者:
S
sundar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6458823: Messager messages on TypeParamterElements to not include position information.
Reviewed-by: jjg
上级
c169f98d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
171 addition
and
0 deletion
+171
-0
src/share/classes/com/sun/tools/javac/tree/TreeInfo.java
src/share/classes/com/sun/tools/javac/tree/TreeInfo.java
+4
-0
test/tools/javac/T6458823/MyProcessor.java
test/tools/javac/T6458823/MyProcessor.java
+55
-0
test/tools/javac/T6458823/T6458823.java
test/tools/javac/T6458823/T6458823.java
+87
-0
test/tools/javac/T6458823/TestClass.java
test/tools/javac/T6458823/TestClass.java
+25
-0
未找到文件。
src/share/classes/com/sun/tools/javac/tree/TreeInfo.java
浏览文件 @
f35cd3f0
...
...
@@ -501,6 +501,10 @@ public class TreeInfo {
if
(
that
.
sym
==
sym
)
result
=
that
;
else
super
.
visitVarDef
(
that
);
}
public
void
visitTypeParameter
(
JCTypeParameter
that
)
{
if
(
that
.
type
.
tsym
==
sym
)
result
=
that
;
else
super
.
visitTypeParameter
(
that
);
}
}
DeclScanner
s
=
new
DeclScanner
();
tree
.
accept
(
s
);
...
...
test/tools/javac/T6458823/MyProcessor.java
0 → 100644
浏览文件 @
f35cd3f0
/*
* Copyright (c) 2010, 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.util.Set
;
import
javax.annotation.processing.*
;
import
javax.lang.model.element.*
;
import
javax.lang.model.util.ElementFilter
;
import
javax.lang.model.SourceVersion
;
import
static
javax
.
tools
.
Diagnostic
.
Kind
.*;
@SupportedAnnotationTypes
(
"*"
)
public
class
MyProcessor
extends
AbstractProcessor
{
private
Messager
messager
;
public
void
init
(
ProcessingEnvironment
processingEnv
)
{
this
.
messager
=
processingEnv
.
getMessager
();
}
public
boolean
process
(
Set
<?
extends
TypeElement
>
tes
,
RoundEnvironment
renv
)
{
if
(!
renv
.
processingOver
())
{
for
(
TypeElement
e
:
ElementFilter
.
typesIn
(
renv
.
getRootElements
()))
{
for
(
TypeParameterElement
tp
:
e
.
getTypeParameters
())
{
if
(
tp
.
getSimpleName
().
toString
().
length
()
>
1
)
{
messager
.
printMessage
(
WARNING
,
"Type param names should be of length 1"
,
tp
);
}
}
}
}
return
true
;
}
public
SourceVersion
getSupportedSourceVersion
()
{
return
SourceVersion
.
latest
();
}
}
test/tools/javac/T6458823/T6458823.java
0 → 100644
浏览文件 @
f35cd3f0
/*
* Copyright (c) 2010, 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 6458823
* @summary Messager messages on TypeParamterElements to not include position information.
*
* @compile MyProcessor.java T6458823.java
* @run main T6458823
*/
import
java.io.File
;
import
java.io.IOException
;
import
java.io.Writer
;
import
java.net.URISyntaxException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
javax.tools.Diagnostic
;
import
javax.tools.DiagnosticCollector
;
import
javax.tools.JavaCompiler
;
import
javax.tools.JavaCompiler.CompilationTask
;
import
javax.tools.JavaFileObject
;
import
javax.tools.StandardJavaFileManager
;
import
javax.tools.ToolProvider
;
public
class
T6458823
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
JavaCompiler
compiler
=
ToolProvider
.
getSystemJavaCompiler
();
if
(
compiler
==
null
)
{
throw
new
RuntimeException
(
"can't get javax.tools.JavaCompiler!"
);
}
DiagnosticCollector
<
JavaFileObject
>
diagColl
=
new
DiagnosticCollector
<
JavaFileObject
>();
StandardJavaFileManager
fm
=
compiler
.
getStandardFileManager
(
null
,
null
,
null
);
List
<
String
>
options
=
new
ArrayList
<
String
>();
options
.
add
(
"-processor"
);
options
.
add
(
"MyProcessor"
);
options
.
add
(
"-proc:only"
);
List
<
File
>
files
=
new
ArrayList
<
File
>();
files
.
add
(
new
File
(
T6458823
.
class
.
getResource
(
"TestClass.java"
).
toURI
()));
final
CompilationTask
task
=
compiler
.
getTask
(
null
,
fm
,
diagColl
,
options
,
null
,
fm
.
getJavaFileObjectsFromFiles
(
files
));
task
.
call
();
int
diagCount
=
0
;
for
(
Diagnostic
<?
extends
JavaFileObject
>
diag
:
diagColl
.
getDiagnostics
())
{
if
(
diag
.
getKind
()
!=
Diagnostic
.
Kind
.
WARNING
)
{
throw
new
AssertionError
(
"Only warnings expected"
);
}
System
.
out
.
println
(
diag
);
if
(
diag
.
getPosition
()
==
Diagnostic
.
NOPOS
)
{
throw
new
AssertionError
(
"No position info in message"
);
}
if
(
diag
.
getSource
()
==
null
)
{
throw
new
AssertionError
(
"No source info in message"
);
}
diagCount
++;
}
if
(
diagCount
!=
2
)
{
throw
new
AssertionError
(
"unexpected number of warnings: "
+
diagCount
+
", expected: 2"
);
}
}
}
test/tools/javac/T6458823/TestClass.java
0 → 100644
浏览文件 @
f35cd3f0
/*
* Copyright (c) 2010, 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.
*/
class
TestClass
<
XYZ
,
ABC
>
{
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录