Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
308c50f9
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看板
提交
308c50f9
编写于
9月 30, 2010
作者:
J
jjg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6988436: Cleanup javac option handling
Reviewed-by: darcy
上级
2e08419d
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
204 addition
and
136 deletion
+204
-136
src/share/classes/com/sun/tools/javac/code/Source.java
src/share/classes/com/sun/tools/javac/code/Source.java
+7
-4
src/share/classes/com/sun/tools/javac/comp/Attr.java
src/share/classes/com/sun/tools/javac/comp/Attr.java
+4
-4
src/share/classes/com/sun/tools/javac/comp/Check.java
src/share/classes/com/sun/tools/javac/comp/Check.java
+6
-5
src/share/classes/com/sun/tools/javac/comp/Lower.java
src/share/classes/com/sun/tools/javac/comp/Lower.java
+1
-1
src/share/classes/com/sun/tools/javac/comp/MemberEnter.java
src/share/classes/com/sun/tools/javac/comp/MemberEnter.java
+1
-1
src/share/classes/com/sun/tools/javac/comp/Resolve.java
src/share/classes/com/sun/tools/javac/comp/Resolve.java
+3
-3
src/share/classes/com/sun/tools/javac/file/JavacFileManager.java
...re/classes/com/sun/tools/javac/file/JavacFileManager.java
+5
-5
src/share/classes/com/sun/tools/javac/jvm/ClassReader.java
src/share/classes/com/sun/tools/javac/jvm/ClassReader.java
+8
-6
src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
+11
-8
src/share/classes/com/sun/tools/javac/jvm/Gen.java
src/share/classes/com/sun/tools/javac/jvm/Gen.java
+10
-9
src/share/classes/com/sun/tools/javac/jvm/Target.java
src/share/classes/com/sun/tools/javac/jvm/Target.java
+3
-1
src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
+31
-32
src/share/classes/com/sun/tools/javac/main/Main.java
src/share/classes/com/sun/tools/javac/main/Main.java
+19
-17
src/share/classes/com/sun/tools/javac/processing/JavacFiler.java
...re/classes/com/sun/tools/javac/processing/JavacFiler.java
+14
-10
src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
...un/tools/javac/processing/JavacProcessingEnvironment.java
+14
-13
src/share/classes/com/sun/tools/javac/util/Log.java
src/share/classes/com/sun/tools/javac/util/Log.java
+13
-10
src/share/classes/com/sun/tools/javac/util/Names.java
src/share/classes/com/sun/tools/javac/util/Names.java
+1
-1
src/share/classes/com/sun/tools/javac/util/Options.java
src/share/classes/com/sun/tools/javac/util/Options.java
+53
-6
未找到文件。
src/share/classes/com/sun/tools/javac/code/Source.java
浏览文件 @
308c50f9
...
...
@@ -25,11 +25,14 @@
package
com.sun.tools.javac.code
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.jvm.Target
;
import
java.util.*
;
import
javax.lang.model.SourceVersion
;
import
static
javax
.
lang
.
model
.
SourceVersion
.*;
import
java.util.*
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.jvm.Target
;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
/** The source language version accepted.
*
...
...
@@ -71,7 +74,7 @@ public enum Source {
Source
instance
=
context
.
get
(
sourceKey
);
if
(
instance
==
null
)
{
Options
options
=
Options
.
instance
(
context
);
String
sourceString
=
options
.
get
(
"-source"
);
String
sourceString
=
options
.
get
(
SOURCE
);
if
(
sourceString
!=
null
)
instance
=
lookup
(
sourceString
);
if
(
instance
==
null
)
instance
=
DEFAULT
;
context
.
put
(
sourceKey
,
instance
);
...
...
src/share/classes/com/sun/tools/javac/comp/Attr.java
浏览文件 @
308c50f9
...
...
@@ -119,10 +119,10 @@ public class Attr extends JCTree.Visitor {
allowAnonOuterThis
=
source
.
allowAnonOuterThis
();
allowStringsInSwitch
=
source
.
allowStringsInSwitch
();
sourceName
=
source
.
name
;
relax
=
(
options
.
get
(
"-retrofit"
)
!=
null
||
options
.
get
(
"-relax"
)
!=
null
);
useBeforeDeclarationWarning
=
options
.
get
(
"useBeforeDeclarationWarning"
)
!=
null
;
enableSunApiLintControl
=
options
.
get
(
"enableSunApiLintControl"
)
!=
null
;
relax
=
(
options
.
isSet
(
"-retrofit"
)
||
options
.
isSet
(
"-relax"
)
);
useBeforeDeclarationWarning
=
options
.
isSet
(
"useBeforeDeclarationWarning"
)
;
enableSunApiLintControl
=
options
.
isSet
(
"enableSunApiLintControl"
)
;
}
/** Switch: relax some constraints for retrofit mode.
...
...
src/share/classes/com/sun/tools/javac/comp/Check.java
浏览文件 @
308c50f9
...
...
@@ -25,7 +25,6 @@
package
com.sun.tools.javac.comp
;
import
com.sun.source.tree.AssignmentTree
;
import
java.util.*
;
import
java.util.Set
;
...
...
@@ -46,6 +45,8 @@ import static com.sun.tools.javac.code.Flags.*;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Kinds
.*;
import
static
com
.
sun
.
tools
.
javac
.
code
.
TypeTags
.*;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
/** Type checking helper class for the attribution phase.
*
* <p><b>This is NOT part of any supported API.
...
...
@@ -99,10 +100,10 @@ public class Check {
allowGenerics
=
source
.
allowGenerics
();
allowAnnotations
=
source
.
allowAnnotations
();
allowCovariantReturns
=
source
.
allowCovariantReturns
();
complexInference
=
options
.
get
(
"-complexinference"
)
!=
null
;
skipAnnotations
=
options
.
get
(
"skipAnnotations"
)
!=
null
;
warnOnSyntheticConflicts
=
options
.
get
(
"warnOnSyntheticConflicts"
)
!=
null
;
suppressAbortOnBadClassFile
=
options
.
get
(
"suppressAbortOnBadClassFile"
)
!=
null
;
complexInference
=
options
.
isSet
(
COMPLEXINFERENCE
)
;
skipAnnotations
=
options
.
isSet
(
"skipAnnotations"
)
;
warnOnSyntheticConflicts
=
options
.
isSet
(
"warnOnSyntheticConflicts"
)
;
suppressAbortOnBadClassFile
=
options
.
isSet
(
"suppressAbortOnBadClassFile"
)
;
Target
target
=
Target
.
instance
(
context
);
syntheticNameChar
=
target
.
syntheticNameChar
();
...
...
src/share/classes/com/sun/tools/javac/comp/Lower.java
浏览文件 @
308c50f9
...
...
@@ -109,7 +109,7 @@ public class Lower extends TreeTranslator {
types
=
Types
.
instance
(
context
);
Options
options
=
Options
.
instance
(
context
);
debugLower
=
options
.
get
(
"debuglower"
)
!=
null
;
debugLower
=
options
.
isSet
(
"debuglower"
)
;
pkginfoOpt
=
PkgInfo
.
get
(
options
);
}
...
...
src/share/classes/com/sun/tools/javac/comp/MemberEnter.java
浏览文件 @
308c50f9
...
...
@@ -102,7 +102,7 @@ public class MemberEnter extends JCTree.Visitor implements Completer {
diags
=
JCDiagnostic
.
Factory
.
instance
(
context
);
target
=
Target
.
instance
(
context
);
Options
options
=
Options
.
instance
(
context
);
skipAnnotations
=
options
.
get
(
"skipAnnotations"
)
!=
null
;
skipAnnotations
=
options
.
isSet
(
"skipAnnotations"
)
;
}
/** A queue for classes whose members still need to be entered into the
...
...
src/share/classes/com/sun/tools/javac/comp/Resolve.java
浏览文件 @
308c50f9
...
...
@@ -110,14 +110,14 @@ public class Resolve {
boxingEnabled
=
source
.
allowBoxing
();
varargsEnabled
=
source
.
allowVarargs
();
Options
options
=
Options
.
instance
(
context
);
debugResolve
=
options
.
get
(
"debugresolve"
)
!=
null
;
allowTransitionalJSR292
=
options
.
get
(
"allowTransitionalJSR292"
)
!=
null
;
debugResolve
=
options
.
isSet
(
"debugresolve"
)
;
allowTransitionalJSR292
=
options
.
isSet
(
"allowTransitionalJSR292"
)
;
Target
target
=
Target
.
instance
(
context
);
allowMethodHandles
=
allowTransitionalJSR292
||
target
.
hasMethodHandles
();
allowInvokeDynamic
=
(
allowTransitionalJSR292
||
target
.
hasInvokedynamic
())
&&
options
.
get
(
"invokedynamic"
)
!=
null
;
options
.
isSet
(
"invokedynamic"
)
;
polymorphicSignatureScope
=
new
Scope
(
syms
.
noSymbol
);
inapplicableMethodException
=
new
InapplicableMethodException
(
diags
);
...
...
src/share/classes/com/sun/tools/javac/file/JavacFileManager.java
浏览文件 @
308c50f9
...
...
@@ -150,8 +150,8 @@ public class JavacFileManager extends BaseFileManager implements StandardJavaFil
useZipFileIndex
=
System
.
getProperty
(
"useJavaUtilZip"
)
==
null
;
// TODO: options.get("useJavaUtilZip") == null;
mmappedIO
=
options
.
get
(
"mmappedIO"
)
!=
null
;
ignoreSymbolFile
=
options
.
get
(
"ignore.symbol.file"
)
!=
null
;
mmappedIO
=
options
.
isSet
(
"mmappedIO"
)
;
ignoreSymbolFile
=
options
.
isSet
(
"ignore.symbol.file"
)
;
}
public
JavaFileObject
getFileForInput
(
String
name
)
{
...
...
@@ -435,7 +435,7 @@ public class JavacFileManager extends BaseFileManager implements StandardJavaFil
zdir
=
new
ZipFile
(
zipFileName
);
}
else
{
usePreindexedCache
=
options
.
get
(
"usezipindex"
)
!=
null
;
usePreindexedCache
=
options
.
isSet
(
"usezipindex"
)
;
preindexCacheLocation
=
options
.
get
(
"java.io.tmpdir"
);
String
optCacheLoc
=
options
.
get
(
"cachezipindexdir"
);
...
...
@@ -469,7 +469,7 @@ public class JavacFileManager extends BaseFileManager implements StandardJavaFil
null
,
usePreindexedCache
,
preindexCacheLocation
,
options
.
get
(
"writezipindexfiles"
)
!=
null
));
options
.
isSet
(
"writezipindexfiles"
)
));
}
}
else
{
...
...
@@ -482,7 +482,7 @@ public class JavacFileManager extends BaseFileManager implements StandardJavaFil
symbolFilePrefix
,
usePreindexedCache
,
preindexCacheLocation
,
options
.
get
(
"writezipindexfiles"
)
!=
null
));
options
.
isSet
(
"writezipindexfiles"
)
));
}
}
}
catch
(
FileNotFoundException
ex
)
{
...
...
src/share/classes/com/sun/tools/javac/jvm/ClassReader.java
浏览文件 @
308c50f9
...
...
@@ -56,6 +56,8 @@ import static com.sun.tools.javac.code.TypeTags.*;
import
static
com
.
sun
.
tools
.
javac
.
jvm
.
ClassFile
.*;
import
static
com
.
sun
.
tools
.
javac
.
jvm
.
ClassFile
.
Version
.*;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
/** This class provides operations to read a classfile into an internal
* representation. The internal representation is anchored in a
* ClassSymbol which contains in its scope symbol representations
...
...
@@ -259,23 +261,23 @@ public class ClassReader implements Completer {
Options
options
=
Options
.
instance
(
context
);
annotate
=
Annotate
.
instance
(
context
);
verbose
=
options
.
get
(
"-verbose"
)
!=
null
;
checkClassFile
=
options
.
get
(
"-checkclassfile"
)
!=
null
;
verbose
=
options
.
isSet
(
VERBOSE
)
;
checkClassFile
=
options
.
isSet
(
"-checkclassfile"
)
;
Source
source
=
Source
.
instance
(
context
);
allowGenerics
=
source
.
allowGenerics
();
allowVarargs
=
source
.
allowVarargs
();
allowAnnotations
=
source
.
allowAnnotations
();
saveParameterNames
=
options
.
get
(
"save-parameter-names"
)
!=
null
;
cacheCompletionFailure
=
options
.
get
(
"dev"
)
==
null
;
saveParameterNames
=
options
.
isSet
(
"save-parameter-names"
)
;
cacheCompletionFailure
=
options
.
isUnset
(
"dev"
)
;
preferSource
=
"source"
.
equals
(
options
.
get
(
"-Xprefer"
));
completionFailureName
=
(
options
.
get
(
"failcomplete"
)
!=
null
)
options
.
isSet
(
"failcomplete"
)
?
names
.
fromString
(
options
.
get
(
"failcomplete"
))
:
null
;
typevars
=
new
Scope
(
syms
.
noSymbol
);
debugJSR308
=
options
.
get
(
"TA:reader"
)
!=
null
;
debugJSR308
=
options
.
isSet
(
"TA:reader"
)
;
initAttributeReaders
();
}
...
...
src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
浏览文件 @
308c50f9
...
...
@@ -45,8 +45,10 @@ import static com.sun.tools.javac.code.Flags.*;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Kinds
.*;
import
static
com
.
sun
.
tools
.
javac
.
code
.
TypeTags
.*;
import
static
com
.
sun
.
tools
.
javac
.
jvm
.
UninitializedType
.*;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
import
static
javax
.
tools
.
StandardLocation
.
CLASS_OUTPUT
;
/** This class provides operations to map an internal symbol table graph
* rooted in a ClassSymbol into a classfile.
*
...
...
@@ -178,15 +180,16 @@ public class ClassWriter extends ClassFile {
types
=
Types
.
instance
(
context
);
fileManager
=
context
.
get
(
JavaFileManager
.
class
);
debugJSR308
=
options
.
get
(
"TA:writer"
)
!=
null
;
verbose
=
options
.
get
(
"-verbose"
)
!=
null
;
scramble
=
options
.
get
(
"-scramble"
)
!=
null
;
scrambleAll
=
options
.
get
(
"-scrambleAll"
)
!=
null
;
retrofit
=
options
.
get
(
"-retrofit"
)
!=
null
;
genCrt
=
options
.
get
(
"-Xjcov"
)
!=
null
;
debugstackmap
=
options
.
get
(
"debugstackmap"
)
!=
null
;
debugJSR308
=
options
.
isSet
(
"TA:writer"
)
;
verbose
=
options
.
isSet
(
VERBOSE
)
;
scramble
=
options
.
isSet
(
"-scramble"
)
;
scrambleAll
=
options
.
isSet
(
"-scrambleAll"
)
;
retrofit
=
options
.
isSet
(
"-retrofit"
)
;
genCrt
=
options
.
isSet
(
XJCOV
)
;
debugstackmap
=
options
.
isSet
(
"debugstackmap"
)
;
emitSourceFile
=
options
.
get
(
"-g:"
)==
null
||
options
.
get
(
"-g:source"
)!=
null
;
emitSourceFile
=
options
.
isUnset
(
G_CUSTOM
)
||
options
.
isSet
(
G_CUSTOM
,
"source"
);
String
dumpModFlags
=
options
.
get
(
"dumpmodifiers"
);
dumpClassModifiers
=
...
...
src/share/classes/com/sun/tools/javac/jvm/Gen.java
浏览文件 @
308c50f9
...
...
@@ -46,6 +46,7 @@ import static com.sun.tools.javac.code.Kinds.*;
import
static
com
.
sun
.
tools
.
javac
.
code
.
TypeTags
.*;
import
static
com
.
sun
.
tools
.
javac
.
jvm
.
ByteCodes
.*;
import
static
com
.
sun
.
tools
.
javac
.
jvm
.
CRTFlags
.*;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
/** This pass maps flat Java (i.e. without inner classes) to bytecodes.
*
...
...
@@ -113,19 +114,19 @@ public class Gen extends JCTree.Visitor {
Options
options
=
Options
.
instance
(
context
);
lineDebugInfo
=
options
.
get
(
"-g:"
)
==
null
||
options
.
get
(
"-g:lines"
)
!=
null
;
options
.
isUnset
(
G_CUSTOM
)
||
options
.
isSet
(
G_CUSTOM
,
"lines"
)
;
varDebugInfo
=
options
.
get
(
"-g:"
)
==
null
?
options
.
get
(
"-g"
)
!=
null
:
options
.
get
(
"-g:vars"
)
!=
null
;
genCrt
=
options
.
get
(
"-Xjcov"
)
!=
null
;
debugCode
=
options
.
get
(
"debugcode"
)
!=
null
;
allowInvokedynamic
=
target
.
hasInvokedynamic
()
||
options
.
get
(
"invokedynamic"
)
!=
null
;
options
.
isUnset
(
G_CUSTOM
)
?
options
.
isSet
(
G
)
:
options
.
isSet
(
G_CUSTOM
,
"vars"
)
;
genCrt
=
options
.
isSet
(
XJCOV
)
;
debugCode
=
options
.
isSet
(
"debugcode"
)
;
allowInvokedynamic
=
target
.
hasInvokedynamic
()
||
options
.
isSet
(
"invokedynamic"
)
;
generateIproxies
=
target
.
requiresIproxy
()
||
options
.
get
(
"miranda"
)
!=
null
;
options
.
isSet
(
"miranda"
)
;
if
(
target
.
generateStackMapTable
())
{
// ignore cldc because we cannot have both stackmap formats
...
...
src/share/classes/com/sun/tools/javac/jvm/Target.java
浏览文件 @
308c50f9
...
...
@@ -31,6 +31,8 @@ import com.sun.tools.javac.code.Flags;
import
com.sun.tools.javac.code.Symbol
;
import
com.sun.tools.javac.util.*
;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
/** The classfile version target.
*
* <p><b>This is NOT part of any supported API.
...
...
@@ -73,7 +75,7 @@ public enum Target {
Target
instance
=
context
.
get
(
targetKey
);
if
(
instance
==
null
)
{
Options
options
=
Options
.
instance
(
context
);
String
targetString
=
options
.
get
(
"-target"
);
String
targetString
=
options
.
get
(
TARGET
);
if
(
targetString
!=
null
)
instance
=
lookup
(
targetString
);
if
(
instance
==
null
)
instance
=
DEFAULT
;
context
.
put
(
targetKey
,
instance
);
...
...
src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
浏览文件 @
308c50f9
...
...
@@ -26,45 +26,44 @@
package
com.sun.tools.javac.main
;
import
java.io.*
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.LinkedHashSet
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
java.util.MissingResourceException
;
import
java.util.Queue
;
import
java.util.ResourceBundle
;
import
java.util.Set
;
import
java.util.logging.Handler
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
javax.annotation.processing.Processor
;
import
javax.lang.model.SourceVersion
;
import
javax.tools.JavaFileManager
;
import
javax.tools.JavaFileObject
;
import
javax.tools.DiagnosticListener
;
import
com.sun.tools.javac.file.JavacFileManager
;
import
com.sun.source.util.TaskEvent
;
import
com.sun.source.util.TaskListener
;
import
com.sun.tools.javac.file.JavacFileManager
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.code.*
;
import
com.sun.tools.javac.code.Symbol.*
;
import
com.sun.tools.javac.tree.*
;
import
com.sun.tools.javac.tree.JCTree.*
;
import
com.sun.tools.javac.parser.*
;
import
com.sun.tools.javac.comp.*
;
import
com.sun.tools.javac.jvm.*
;
import
com.sun.tools.javac.code.Symbol.*
;
import
com.sun.tools.javac.tree.JCTree.*
;
import
com.sun.tools.javac.processing.*
;
import
javax.annotation.processing.Processor
;
import
static
javax
.
tools
.
StandardLocation
.
CLASS_OUTPUT
;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
import
static
com
.
sun
.
tools
.
javac
.
util
.
JCDiagnostic
.
DiagnosticFlag
.*;
import
static
com
.
sun
.
tools
.
javac
.
util
.
ListBuffer
.
lb
;
import
java.util.HashMap
;
import
java.util.Queue
;
import
javax.lang.model.SourceVersion
;
/** This class could be the main entry point for GJC when GJC is used as a
* component in a larger software system. It provides operations to
...
...
@@ -356,22 +355,22 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
Options
options
=
Options
.
instance
(
context
);
verbose
=
options
.
get
(
"-verbose"
)
!=
null
;
sourceOutput
=
options
.
get
(
"-printsource"
)
!=
null
;
// used to be -s
stubOutput
=
options
.
get
(
"-stubs"
)
!=
null
;
relax
=
options
.
get
(
"-relax"
)
!=
null
;
printFlat
=
options
.
get
(
"-printflat"
)
!=
null
;
attrParseOnly
=
options
.
get
(
"-attrparseonly"
)
!=
null
;
encoding
=
options
.
get
(
"-encoding"
);
lineDebugInfo
=
options
.
get
(
"-g:"
)
==
null
||
options
.
get
(
"-g:lines"
)
!=
null
;
genEndPos
=
options
.
get
(
"-Xjcov"
)
!=
null
||
verbose
=
options
.
isSet
(
VERBOSE
)
;
sourceOutput
=
options
.
isSet
(
PRINTSOURCE
)
;
// used to be -s
stubOutput
=
options
.
isSet
(
"-stubs"
)
;
relax
=
options
.
isSet
(
"-relax"
)
;
printFlat
=
options
.
isSet
(
"-printflat"
)
;
attrParseOnly
=
options
.
isSet
(
"-attrparseonly"
)
;
encoding
=
options
.
get
(
ENCODING
);
lineDebugInfo
=
options
.
isUnset
(
G_CUSTOM
)
||
options
.
isSet
(
G_CUSTOM
,
"lines"
)
;
genEndPos
=
options
.
isSet
(
XJCOV
)
||
context
.
get
(
DiagnosticListener
.
class
)
!=
null
;
devVerbose
=
options
.
get
(
"dev"
)
!=
null
;
processPcks
=
options
.
get
(
"process.packages"
)
!=
null
;
werror
=
options
.
get
(
"-Werror"
)
!=
null
;
devVerbose
=
options
.
isSet
(
"dev"
)
;
processPcks
=
options
.
isSet
(
"process.packages"
)
;
werror
=
options
.
isSet
(
WERROR
)
;
verboseCompilePolicy
=
options
.
get
(
"verboseCompilePolicy"
)
!=
null
;
verboseCompilePolicy
=
options
.
isSet
(
"verboseCompilePolicy"
)
;
if
(
attrParseOnly
)
compilePolicy
=
CompilePolicy
.
ATTR_ONLY
;
...
...
@@ -381,15 +380,15 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
implicitSourcePolicy
=
ImplicitSourcePolicy
.
decode
(
options
.
get
(
"-implicit"
));
completionFailureName
=
(
options
.
get
(
"failcomplete"
)
!=
null
)
options
.
isSet
(
"failcomplete"
)
?
names
.
fromString
(
options
.
get
(
"failcomplete"
))
:
null
;
shouldStopPolicy
=
(
options
.
get
(
"shouldStopPolicy"
)
!=
null
)
options
.
isSet
(
"shouldStopPolicy"
)
?
CompileState
.
valueOf
(
options
.
get
(
"shouldStopPolicy"
))
:
null
;
if
(
options
.
get
(
"oldDiags"
)
==
null
)
if
(
options
.
isUnset
(
"oldDiags"
)
)
log
.
setDiagnosticFormatter
(
RichDiagnosticFormatter
.
instance
(
context
));
}
...
...
@@ -954,7 +953,7 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
// Process annotations if processing is not disabled and there
// is at least one Processor available.
Options
options
=
Options
.
instance
(
context
);
if
(
options
.
get
(
"-proc:none"
)
!=
null
)
{
if
(
options
.
isSet
(
PROC
,
"none"
)
)
{
processAnnotations
=
false
;
}
else
if
(
procEnvImpl
==
null
)
{
procEnvImpl
=
new
JavacProcessingEnvironment
(
context
,
processors
);
...
...
@@ -1013,7 +1012,7 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
// annotation processing is to occur with compilation,
// emit a warning.
Options
options
=
Options
.
instance
(
context
);
if
(
options
.
get
(
"-proc:only"
)
!=
null
)
{
if
(
options
.
isSet
(
PROC
,
"only"
)
)
{
log
.
warning
(
"proc.proc-only.requested.no.procs"
);
todo
.
clear
();
}
...
...
@@ -1101,10 +1100,10 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
Options
options
=
Options
.
instance
(
context
);
return
explicitAnnotationProcessingRequested
||
options
.
get
(
"-processor"
)
!=
null
||
options
.
get
(
"-processorpath"
)
!=
null
||
options
.
get
(
"-proc:only"
)
!=
null
||
options
.
get
(
"-Xprint"
)
!=
null
;
options
.
isSet
(
PROCESSOR
)
||
options
.
isSet
(
PROCESSORPATH
)
||
options
.
isSet
(
PROC
,
"only"
)
||
options
.
isSet
(
XPRINT
)
;
}
/**
...
...
src/share/classes/com/sun/tools/javac/main/Main.java
浏览文件 @
308c50f9
...
...
@@ -32,6 +32,9 @@ import java.net.URL;
import
java.security.DigestInputStream
;
import
java.security.MessageDigest
;
import
java.util.MissingResourceException
;
import
javax.tools.JavaFileManager
;
import
javax.tools.JavaFileObject
;
import
javax.annotation.processing.Processor
;
import
com.sun.tools.javac.code.Source
;
import
com.sun.tools.javac.file.CacheFSInfo
;
...
...
@@ -41,9 +44,8 @@ import com.sun.tools.javac.main.JavacOption.Option;
import
com.sun.tools.javac.main.RecognizedOptions.OptionHelper
;
import
com.sun.tools.javac.util.*
;
import
com.sun.tools.javac.processing.AnnotationProcessingError
;
import
javax.tools.JavaFileManager
;
import
javax.tools.JavaFileObject
;
import
javax.annotation.processing.Processor
;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
/** This class provides a commandline interface to the GJC compiler.
*
...
...
@@ -239,16 +241,16 @@ public class Main {
}
}
if
(!
checkDirectory
(
"-d"
))
if
(!
checkDirectory
(
D
))
return
null
;
if
(!
checkDirectory
(
"-s"
))
if
(!
checkDirectory
(
S
))
return
null
;
String
sourceString
=
options
.
get
(
"-source"
);
String
sourceString
=
options
.
get
(
SOURCE
);
Source
source
=
(
sourceString
!=
null
)
?
Source
.
lookup
(
sourceString
)
:
Source
.
DEFAULT
;
String
targetString
=
options
.
get
(
"-target"
);
String
targetString
=
options
.
get
(
TARGET
);
Target
target
=
(
targetString
!=
null
)
?
Target
.
lookup
(
targetString
)
:
Target
.
DEFAULT
;
...
...
@@ -285,7 +287,7 @@ public class Main {
// phase this out with JSR 292 PFD
if
(
"no"
.
equals
(
options
.
get
(
"allowTransitionalJSR292"
)))
{
options
.
put
(
"allowTransitionalJSR292"
,
null
);
}
else
if
(
target
.
hasInvokedynamic
()
&&
options
.
get
(
"allowTransitionalJSR292"
)
==
null
)
{
}
else
if
(
target
.
hasInvokedynamic
()
&&
options
.
isUnset
(
"allowTransitionalJSR292"
)
)
{
options
.
put
(
"allowTransitionalJSR292"
,
"allowTransitionalJSR292"
);
}
...
...
@@ -300,7 +302,7 @@ public class Main {
return
filenames
.
toList
();
}
// where
private
boolean
checkDirectory
(
String
optName
)
{
private
boolean
checkDirectory
(
OptionName
optName
)
{
String
value
=
options
.
get
(
optName
);
if
(
value
==
null
)
return
true
;
...
...
@@ -367,10 +369,10 @@ public class Main {
return
EXIT_CMDERR
;
}
else
if
(
files
.
isEmpty
()
&&
fileObjects
.
isEmpty
()
&&
classnames
.
isEmpty
())
{
// it is allowed to compile nothing if just asking for help or version info
if
(
options
.
get
(
"-help"
)
!=
null
||
options
.
get
(
"-X"
)
!=
null
||
options
.
get
(
"-version"
)
!=
null
||
options
.
get
(
"-fullversion"
)
!=
null
)
if
(
options
.
isSet
(
HELP
)
||
options
.
isSet
(
X
)
||
options
.
isSet
(
VERSION
)
||
options
.
isSet
(
FULLVERSION
)
)
return
EXIT_OK
;
error
(
"err.no.source.files"
);
return
EXIT_CMDERR
;
...
...
@@ -382,7 +384,7 @@ public class Main {
return
EXIT_SYSERR
;
}
boolean
forceStdOut
=
options
.
get
(
"stdout"
)
!=
null
;
boolean
forceStdOut
=
options
.
isSet
(
"stdout"
)
;
if
(
forceStdOut
)
{
out
.
flush
();
out
=
new
PrintWriter
(
System
.
out
,
true
);
...
...
@@ -391,7 +393,7 @@ public class Main {
context
.
put
(
Log
.
outKey
,
out
);
// allow System property in following line as a Mustang legacy
boolean
batchMode
=
(
options
.
get
(
"nonBatchMode"
)
==
null
boolean
batchMode
=
(
options
.
isUnset
(
"nonBatchMode"
)
&&
System
.
getProperty
(
"nonBatchMode"
)
==
null
);
if
(
batchMode
)
CacheFSInfo
.
preRegister
(
context
);
...
...
@@ -455,7 +457,7 @@ public class Main {
// for buggy compiler error recovery by swallowing thrown
// exceptions.
if
(
comp
==
null
||
comp
.
errorCount
()
==
0
||
options
==
null
||
options
.
get
(
"dev"
)
!=
null
)
options
==
null
||
options
.
isSet
(
"dev"
)
)
bugMessage
(
ex
);
return
EXIT_ABNORMAL
;
}
finally
{
...
...
@@ -478,7 +480,7 @@ public class Main {
*/
void
feMessage
(
Throwable
ex
)
{
Log
.
printLines
(
out
,
ex
.
getMessage
());
if
(
ex
.
getCause
()
!=
null
&&
options
.
get
(
"dev"
)
!=
null
)
{
if
(
ex
.
getCause
()
!=
null
&&
options
.
isSet
(
"dev"
)
)
{
ex
.
getCause
().
printStackTrace
(
out
);
}
}
...
...
src/share/classes/com/sun/tools/javac/processing/JavacFiler.java
浏览文件 @
308c50f9
...
...
@@ -25,14 +25,6 @@
package
com.sun.tools.javac.processing
;
import
com.sun.tools.javac.util.*
;
import
javax.annotation.processing.*
;
import
javax.lang.model.SourceVersion
;
import
javax.lang.model.element.NestingKind
;
import
javax.lang.model.element.Modifier
;
import
javax.lang.model.element.Element
;
import
java.util.*
;
import
java.io.Closeable
;
import
java.io.FileNotFoundException
;
import
java.io.InputStream
;
...
...
@@ -43,14 +35,26 @@ import java.io.Writer;
import
java.io.FilterWriter
;
import
java.io.PrintWriter
;
import
java.io.IOException
;
import
java.util.*
;
import
javax.tools.*
;
import
static
java
.
util
.
Collections
.*;
import
javax.annotation.processing.*
;
import
javax.lang.model.SourceVersion
;
import
javax.lang.model.element.NestingKind
;
import
javax.lang.model.element.Modifier
;
import
javax.lang.model.element.Element
;
import
javax.tools.*
;
import
javax.tools.JavaFileManager.Location
;
import
static
javax
.
tools
.
StandardLocation
.
SOURCE_OUTPUT
;
import
static
javax
.
tools
.
StandardLocation
.
CLASS_OUTPUT
;
import
com.sun.tools.javac.code.Lint
;
import
com.sun.tools.javac.util.*
;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Lint
.
LintCategory
.
PROCESSING
;
/**
* The FilerImplementation class must maintain a number of
* constraints. First, multiple attempts to open the same path within
...
...
@@ -366,7 +370,7 @@ public class JavacFiler implements Filer, Closeable {
aggregateGeneratedSourceNames
=
new
LinkedHashSet
<
String
>();
aggregateGeneratedClassNames
=
new
LinkedHashSet
<
String
>();
lint
=
(
Options
.
instance
(
context
)).
lint
(
"processing"
);
lint
=
(
Lint
.
instance
(
context
)).
isEnabled
(
PROCESSING
);
}
public
JavaFileObject
createSourceFile
(
CharSequence
name
,
...
...
src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
浏览文件 @
308c50f9
...
...
@@ -79,6 +79,8 @@ import com.sun.tools.javac.util.Options;
import
static
javax
.
tools
.
StandardLocation
.*;
import
static
com
.
sun
.
tools
.
javac
.
util
.
JCDiagnostic
.
DiagnosticFlag
.*;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
import
static
com
.
sun
.
tools
.
javac
.
code
.
Lint
.
LintCategory
.
PROCESSING
;
/**
* Objects of this class hold and manage the state needed to support
...
...
@@ -160,15 +162,14 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
source
=
Source
.
instance
(
context
);
diags
=
JCDiagnostic
.
Factory
.
instance
(
context
);
options
=
Options
.
instance
(
context
);
printProcessorInfo
=
options
.
get
(
"-XprintProcessorInfo"
)
!=
null
;
printRounds
=
options
.
get
(
"-XprintRounds"
)
!=
null
;
verbose
=
options
.
get
(
"-verbose"
)
!=
null
;
lint
=
options
.
lint
(
"processing"
);
procOnly
=
options
.
get
(
"-proc:only"
)
!=
null
||
options
.
get
(
"-Xprint"
)
!=
null
;
fatalErrors
=
options
.
get
(
"fatalEnterError"
)
!=
null
;
showResolveErrors
=
options
.
get
(
"showResolveErrors"
)
!=
null
;
werror
=
options
.
get
(
"-Werror"
)
!=
null
;
printProcessorInfo
=
options
.
isSet
(
XPRINTPROCESSORINFO
);
printRounds
=
options
.
isSet
(
XPRINTROUNDS
);
verbose
=
options
.
isSet
(
VERBOSE
);
lint
=
Lint
.
instance
(
context
).
isEnabled
(
PROCESSING
);
procOnly
=
options
.
isSet
(
PROC
,
"only"
)
||
options
.
isSet
(
XPRINT
);
fatalErrors
=
options
.
isSet
(
"fatalEnterError"
);
showResolveErrors
=
options
.
isSet
(
"showResolveErrors"
);
werror
=
options
.
isSet
(
WERROR
);
platformAnnotations
=
initPlatformAnnotations
();
foundTypeProcessors
=
false
;
...
...
@@ -200,7 +201,7 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
Log
log
=
Log
.
instance
(
context
);
Iterator
<?
extends
Processor
>
processorIterator
;
if
(
options
.
get
(
"-Xprint"
)
!=
null
)
{
if
(
options
.
isSet
(
XPRINT
)
)
{
try
{
Processor
processor
=
PrintingProcessor
.
class
.
newInstance
();
processorIterator
=
List
.
of
(
processor
).
iterator
();
...
...
@@ -213,7 +214,7 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
}
else
if
(
processors
!=
null
)
{
processorIterator
=
processors
.
iterator
();
}
else
{
String
processorNames
=
options
.
get
(
"-processor"
);
String
processorNames
=
options
.
get
(
PROCESSOR
);
JavaFileManager
fileManager
=
context
.
get
(
JavaFileManager
.
class
);
try
{
// If processorpath is not explicitly set, use the classpath.
...
...
@@ -264,7 +265,7 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
?
standardFileManager
.
getLocation
(
ANNOTATION_PROCESSOR_PATH
)
:
standardFileManager
.
getLocation
(
CLASS_PATH
);
if
(
needClassLoader
(
options
.
get
(
"-processor"
),
workingPath
)
)
if
(
needClassLoader
(
options
.
get
(
PROCESSOR
),
workingPath
)
)
handleException
(
key
,
e
);
}
else
{
...
...
@@ -745,7 +746,7 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
psi
.
runContributingProcs
(
renv
);
// Debugging
if
(
options
.
get
(
"displayFilerState"
)
!=
null
)
if
(
options
.
isSet
(
"displayFilerState"
)
)
filer
.
displayState
();
}
...
...
src/share/classes/com/sun/tools/javac/util/Log.java
浏览文件 @
308c50f9
...
...
@@ -35,11 +35,14 @@ import java.util.Set;
import
javax.tools.DiagnosticListener
;
import
javax.tools.JavaFileObject
;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.api.DiagnosticFormatter
;
import
com.sun.tools.javac.main.OptionName
;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticType
;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
/** A class for error logs. Reports errors and warnings, and
* keeps track of error numbers and positions.
*
...
...
@@ -129,14 +132,14 @@ public class Log extends AbstractLog {
this
.
noticeWriter
=
noticeWriter
;
Options
options
=
Options
.
instance
(
context
);
this
.
dumpOnError
=
options
.
get
(
"-doe"
)
!=
null
;
this
.
promptOnError
=
options
.
get
(
"-prompt"
)
!=
null
;
this
.
emitWarnings
=
options
.
get
(
"-Xlint:none"
)
==
null
;
this
.
suppressNotes
=
options
.
get
(
"suppressNotes"
)
!=
null
;
this
.
MaxErrors
=
getIntOption
(
options
,
"-Xmaxerrs"
,
getDefaultMaxErrors
());
this
.
MaxWarnings
=
getIntOption
(
options
,
"-Xmaxwarns"
,
getDefaultMaxWarnings
());
boolean
rawDiagnostics
=
options
.
get
(
"rawDiagnostics"
)
!=
null
;
this
.
dumpOnError
=
options
.
isSet
(
DOE
)
;
this
.
promptOnError
=
options
.
isSet
(
PROMPT
)
;
this
.
emitWarnings
=
options
.
isUnset
(
XLINT_CUSTOM
,
"none"
)
;
this
.
suppressNotes
=
options
.
isSet
(
"suppressNotes"
)
;
this
.
MaxErrors
=
getIntOption
(
options
,
XMAXERRS
,
getDefaultMaxErrors
());
this
.
MaxWarnings
=
getIntOption
(
options
,
XMAXWARNS
,
getDefaultMaxWarnings
());
boolean
rawDiagnostics
=
options
.
isSet
(
"rawDiagnostics"
)
;
messages
=
JavacMessages
.
instance
(
context
);
this
.
diagFormatter
=
rawDiagnostics
?
new
RawDiagnosticFormatter
(
options
)
:
new
BasicDiagnosticFormatter
(
options
,
messages
);
...
...
@@ -150,7 +153,7 @@ public class Log extends AbstractLog {
expectDiagKeys
=
new
HashSet
<
String
>(
Arrays
.
asList
(
ek
.
split
(
", *"
)));
}
// where
private
int
getIntOption
(
Options
options
,
String
optionName
,
int
defaultValue
)
{
private
int
getIntOption
(
Options
options
,
OptionName
optionName
,
int
defaultValue
)
{
String
s
=
options
.
get
(
optionName
);
try
{
if
(
s
!=
null
)
{
...
...
src/share/classes/com/sun/tools/javac/util/Names.java
浏览文件 @
308c50f9
...
...
@@ -271,7 +271,7 @@ public class Names {
}
protected
Name
.
Table
createTable
(
Options
options
)
{
boolean
useUnsharedTable
=
options
.
get
(
"useUnsharedTable"
)
!=
null
;
boolean
useUnsharedTable
=
options
.
isSet
(
"useUnsharedTable"
)
;
if
(
useUnsharedTable
)
return
new
UnsharedNameTable
(
this
);
else
...
...
src/share/classes/com/sun/tools/javac/util/Options.java
浏览文件 @
308c50f9
...
...
@@ -25,8 +25,9 @@
package
com.sun.tools.javac.util
;
import
com.sun.tools.javac.main.OptionName
;
import
java.util.*
;
import
com.sun.tools.javac.main.OptionName
;
import
static
com
.
sun
.
tools
.
javac
.
main
.
OptionName
.*;
/** A table of all command-line options.
* If an option has an argument, the option name is mapped to the argument.
...
...
@@ -60,14 +61,62 @@ public class Options {
context
.
put
(
optionsKey
,
this
);
}
/**
* Get the value for an undocumented option.
*/
public
String
get
(
String
name
)
{
return
values
.
get
(
name
);
}
/**
* Get the value for an option.
*/
public
String
get
(
OptionName
name
)
{
return
values
.
get
(
name
.
optionName
);
}
/**
* Check if the value for an undocumented option has been set.
*/
public
boolean
isSet
(
String
name
)
{
return
(
values
.
get
(
name
)
!=
null
);
}
/**
* Check if the value for an option has been set.
*/
public
boolean
isSet
(
OptionName
name
)
{
return
(
values
.
get
(
name
.
optionName
)
!=
null
);
}
/**
* Check if the value for a choice option has been set to a specific value.
*/
public
boolean
isSet
(
OptionName
name
,
String
value
)
{
return
(
values
.
get
(
name
.
optionName
+
value
)
!=
null
);
}
/**
* Check if the value for an undocumented option has not been set.
*/
public
boolean
isUnset
(
String
name
)
{
return
(
values
.
get
(
name
)
==
null
);
}
/**
* Check if the value for an option has not been set.
*/
public
boolean
isUnset
(
OptionName
name
)
{
return
(
values
.
get
(
name
.
optionName
)
==
null
);
}
/**
* Check if the value for a choice option has not been set to a specific value.
*/
public
boolean
isUnset
(
OptionName
name
,
String
value
)
{
return
(
values
.
get
(
name
.
optionName
+
value
)
==
null
);
}
public
void
put
(
String
name
,
String
value
)
{
values
.
put
(
name
,
value
);
}
...
...
@@ -92,16 +141,14 @@ public class Options {
return
values
.
size
();
}
static
final
String
LINT
=
"-Xlint"
;
/** Check for a lint suboption. */
public
boolean
lint
(
String
s
)
{
// return true if either the specific option is enabled, or
// they are all enabled without the specific one being
// disabled
return
get
(
LINT
+
":"
+
s
)!=
null
||
(
get
(
LINT
)!=
null
||
get
(
LINT
+
":all"
)!=
null
)
&&
get
(
LINT
+
":-"
+
s
)==
null
;
isSet
(
XLINT_CUSTOM
,
s
)
||
(
isSet
(
XLINT
)
||
isSet
(
XLINT_CUSTOM
,
"all"
)
)
&&
isUnset
(
XLINT_CUSTOM
,
"-"
+
s
)
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录