Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
f413b5a0
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看板
提交
f413b5a0
编写于
7月 27, 2010
作者:
J
jjg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6403456: -Werror should work with annotation processing
Reviewed-by: darcy
上级
844c31b1
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
198 addition
and
2 deletion
+198
-2
src/share/classes/com/sun/tools/javac/processing/JavacMessager.java
...classes/com/sun/tools/javac/processing/JavacMessager.java
+7
-0
src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
...un/tools/javac/processing/JavacProcessingEnvironment.java
+6
-2
test/tools/javac/processing/werror/WError1.java
test/tools/javac/processing/werror/WError1.java
+57
-0
test/tools/javac/processing/werror/WError1.out
test/tools/javac/processing/werror/WError1.out
+4
-0
test/tools/javac/processing/werror/WErrorGen.java
test/tools/javac/processing/werror/WErrorGen.java
+61
-0
test/tools/javac/processing/werror/WErrorGen.out
test/tools/javac/processing/werror/WErrorGen.out
+4
-0
test/tools/javac/processing/werror/WErrorLast.java
test/tools/javac/processing/werror/WErrorLast.java
+55
-0
test/tools/javac/processing/werror/WErrorLast.out
test/tools/javac/processing/werror/WErrorLast.out
+4
-0
未找到文件。
src/share/classes/com/sun/tools/javac/processing/JavacMessager.java
浏览文件 @
f413b5a0
...
...
@@ -46,6 +46,7 @@ public class JavacMessager implements Messager {
Log
log
;
JavacProcessingEnvironment
processingEnv
;
int
errorCount
=
0
;
int
warningCount
=
0
;
JavacMessager
(
Context
context
,
JavacProcessingEnvironment
processingEnv
)
{
log
=
Log
.
instance
(
context
);
...
...
@@ -116,10 +117,12 @@ public class JavacMessager implements Messager {
break
;
case
WARNING:
warningCount
++;
log
.
warning
(
pos
,
"proc.messager"
,
msg
.
toString
());
break
;
case
MANDATORY_WARNING:
warningCount
++;
log
.
mandatoryWarning
(
pos
,
"proc.messager"
,
msg
.
toString
());
break
;
...
...
@@ -167,6 +170,10 @@ public class JavacMessager implements Messager {
return
errorCount
;
}
public
int
warningCount
()
{
return
warningCount
;
}
public
void
newRound
(
Context
context
)
{
log
=
Log
.
instance
(
context
);
errorCount
=
0
;
...
...
src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
浏览文件 @
f413b5a0
...
...
@@ -95,6 +95,7 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
private
final
boolean
lint
;
private
final
boolean
procOnly
;
private
final
boolean
fatalErrors
;
private
final
boolean
werror
;
private
boolean
foundTypeProcessors
;
private
final
JavacFiler
filer
;
...
...
@@ -157,6 +158,7 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
procOnly
=
options
.
get
(
"-proc:only"
)
!=
null
||
options
.
get
(
"-Xprint"
)
!=
null
;
fatalErrors
=
options
.
get
(
"fatalEnterError"
)
!=
null
;
werror
=
options
.
get
(
"-Werror"
)
!=
null
;
platformAnnotations
=
initPlatformAnnotations
();
foundTypeProcessors
=
false
;
...
...
@@ -827,7 +829,8 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
runAround:
while
(
true
)
{
if
(
fatalErrors
&&
compiler
.
errorCount
()
!=
0
)
{
if
((
fatalErrors
&&
compiler
.
errorCount
()
!=
0
)
||
(
werror
&&
compiler
.
warningCount
()
!=
0
))
{
errorStatus
=
true
;
break
runAround
;
}
...
...
@@ -906,7 +909,7 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
roots
=
runLastRound
(
roundNumber
,
errorStatus
,
compiler
,
roots
,
taskListener
);
// Set error status for any files compiled and generated in
// the last round
if
(
log
.
unrecoverableError
)
if
(
log
.
unrecoverableError
||
(
werror
&&
compiler
.
warningCount
()
!=
0
)
)
errorStatus
=
true
;
compiler
.
close
(
false
);
...
...
@@ -938,6 +941,7 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
taskListener
.
finished
(
new
TaskEvent
(
TaskEvent
.
Kind
.
ANNOTATION_PROCESSING
));
if
(
errorStatus
)
{
compiler
.
log
.
nwarnings
+=
messager
.
warningCount
();
compiler
.
log
.
nerrors
+=
messager
.
errorCount
();
if
(
compiler
.
errorCount
()
==
0
)
compiler
.
log
.
nerrors
++;
...
...
test/tools/javac/processing/werror/WError1.java
0 → 100644
浏览文件 @
f413b5a0
/*
* 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 6403456
* @summary -Werror should work with annotation processing
* @compile WError1.java
* @compile -proc:only -processor WError1 WError1.java
* @compile/fail/ref=WError1.out -XDrawDiagnostics -Werror -proc:only -processor WError1 WError1.java
*/
import
java.io.*
;
import
java.util.*
;
import
javax.annotation.processing.*
;
import
javax.lang.model.*
;
import
javax.lang.model.element.*
;
import
javax.tools.*
;
@SupportedAnnotationTypes
(
"*"
)
public
class
WError1
extends
AbstractProcessor
{
@Override
public
boolean
process
(
Set
<?
extends
TypeElement
>
annotations
,
RoundEnvironment
roundEnv
)
{
Messager
messager
=
processingEnv
.
getMessager
();
if
(++
round
==
1
)
{
messager
.
printMessage
(
Diagnostic
.
Kind
.
WARNING
,
"round 1"
);
}
return
true
;
}
@Override
public
SourceVersion
getSupportedSourceVersion
()
{
return
SourceVersion
.
latest
();
}
int
round
=
0
;
}
test/tools/javac/processing/werror/WError1.out
0 → 100644
浏览文件 @
f413b5a0
- compiler.warn.proc.messager: round 1
- compiler.err.warnings.and.werror
1 error
1 warning
test/tools/javac/processing/werror/WErrorGen.java
0 → 100644
浏览文件 @
f413b5a0
/*
* 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 6403456
* @summary -Werror should work with annotation processing
* @compile WErrorGen.java
* @compile -proc:only -processor WErrorGen WErrorGen.java
* @compile/fail/ref=WErrorGen.out -XDrawDiagnostics -Werror -Xlint:rawtypes -processor WErrorGen WErrorGen.java
*/
import
java.io.*
;
import
java.util.*
;
import
javax.annotation.processing.*
;
import
javax.lang.model.*
;
import
javax.lang.model.element.*
;
import
javax.tools.*
;
@SupportedAnnotationTypes
(
"*"
)
public
class
WErrorGen
extends
AbstractProcessor
{
@Override
public
boolean
process
(
Set
<?
extends
TypeElement
>
annotations
,
RoundEnvironment
roundEnv
)
{
Filer
filer
=
processingEnv
.
getFiler
();
if
(
roundEnv
.
processingOver
())
{
try
{
JavaFileObject
fo
=
filer
.
createSourceFile
(
"Gen"
);
Writer
out
=
fo
.
openWriter
();
out
.
write
(
"import java.util.*; class Gen { List l; }"
);
out
.
close
();
}
catch
(
IOException
e
)
{
}
}
return
true
;
}
@Override
public
SourceVersion
getSupportedSourceVersion
()
{
return
SourceVersion
.
latest
();
}
}
test/tools/javac/processing/werror/WErrorGen.out
0 → 100644
浏览文件 @
f413b5a0
Gen.java:1:33: compiler.warn.raw.class.use: java.util.List, java.util.List<E>
- compiler.err.warnings.and.werror
1 error
1 warning
test/tools/javac/processing/werror/WErrorLast.java
0 → 100644
浏览文件 @
f413b5a0
/*
* 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 6403456
* @summary -Werror should work with annotation processing
* @compile WErrorLast.java
* @compile -proc:only -processor WErrorLast WErrorLast.java
* @compile/fail/ref=WErrorLast.out -XDrawDiagnostics -Werror -proc:only -processor WErrorLast WErrorLast.java
*/
import
java.io.*
;
import
java.util.*
;
import
javax.annotation.processing.*
;
import
javax.lang.model.*
;
import
javax.lang.model.element.*
;
import
javax.tools.*
;
@SupportedAnnotationTypes
(
"*"
)
public
class
WErrorLast
extends
AbstractProcessor
{
@Override
public
boolean
process
(
Set
<?
extends
TypeElement
>
annotations
,
RoundEnvironment
roundEnv
)
{
Messager
messager
=
processingEnv
.
getMessager
();
if
(
roundEnv
.
processingOver
())
{
messager
.
printMessage
(
Diagnostic
.
Kind
.
WARNING
,
"last round"
);
}
return
true
;
}
@Override
public
SourceVersion
getSupportedSourceVersion
()
{
return
SourceVersion
.
latest
();
}
}
test/tools/javac/processing/werror/WErrorLast.out
0 → 100644
浏览文件 @
f413b5a0
- compiler.warn.proc.messager: last round
- compiler.err.warnings.and.werror
1 error
1 warning
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录