Mercurial > hg > release > icedtea7-forest-2.2 > langtools
changeset 890:4659da7bff78
Merge
author | andrew |
---|---|
date | Sat, 09 Apr 2011 00:45:10 +0100 |
parents | a75f9777ae63 (current diff) 7a98db8cbfce (diff) |
children | 8e26c4aee63c |
files | .hgtags make/build.xml src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java src/share/classes/com/sun/tools/classfile/RuntimeInvisibleTypeAnnotations_attribute.java src/share/classes/com/sun/tools/classfile/RuntimeTypeAnnotations_attribute.java src/share/classes/com/sun/tools/classfile/RuntimeVisibleTypeAnnotations_attribute.java src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java src/share/classes/com/sun/tools/javac/jvm/ClassReader.java src/share/classes/com/sun/tools/javap/TypeAnnotationWriter.java test/tools/javac/TryWithResources/TwrInference.java test/tools/javac/TryWithResources/TwrIntersection.java test/tools/javac/TryWithResources/TwrIntersection02.java test/tools/javac/TryWithResources/TwrIntersection02.out test/tools/javac/diags/examples/EnumConstRequired.java test/tools/javac/diags/examples/TypeParameterOnPolymorphicSignature.java test/tools/javac/meth/InvokeDyn.java test/tools/javac/meth/InvokeDynTrans.java test/tools/javac/meth/InvokeDynTrans.out test/tools/javac/meth/InvokeMHTrans.java test/tools/javac/meth/InvokeMHTrans.out |
diffstat | 282 files changed, 9144 insertions(+), 6849 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Mon Jan 10 16:57:27 2011 +0000 +++ b/.hgtags Sat Apr 09 00:45:10 2011 +0100 @@ -100,3 +100,9 @@ 1bf969e9792f977a8593496681539840a54fe644 jdk7-b121 11e7b4c0476e4d6085d8d28c4aa2833d46714a2a jdk7-b122 a3b5b531542a372f30e014b1543a619a15a90780 jdk7-b123 +4868a36f6fd8972505c466013813eeb28f0482ea jdk7-b124 +4b0560c72b529d4b952924b2da94d8436af79d05 jdk7-b125 +438a8ad60f7ae7aa897663148fd43fe85ef05e5b jdk7-b126 +1e6094c33187f6c3dca55ced3701ee1f9d73a77d jdk7-b127 +d7225b476a5d1aebffb8827e7c72ba2e1651f4e7 jdk7-b128 +1383d1ee8b5db13d5df9523d1760df17b9d228d4 jdk7-b129
--- a/make/Makefile Mon Jan 10 16:57:27 2011 +0000 +++ b/make/Makefile Sat Apr 09 00:45:10 2011 +0100 @@ -187,7 +187,7 @@ clobber: clean # All ant targets of interest -ANT_TARGETS = build clean sanity post-sanity diagnostics # for now +ANT_TARGETS = build clean sanity post-sanity diagnostics build-all-tools # for now # Create diagnostics log (careful, ant 1.8.0 -diagnostics always does an exit 1) $(OUTPUTDIR)/build/ant-diagnostics.log:
--- a/make/build.xml Mon Jan 10 16:57:27 2011 +0000 +++ b/make/build.xml Sat Apr 09 00:45:10 2011 +0100 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2007, 2011, 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 @@ -331,7 +331,7 @@ executable="${dist.bin.dir}/javac" srcdir="test/tools/javac/diags" destdir="${build.dir}/diag-examples/classes" - includes="Example.java,FileManager.java,HTMLWriter.java,RunExamples.java" + includes="ArgTypeCompilerFactory.java,Example.java,FileManager.java,HTMLWriter.java,RunExamples.java" sourcepath="" classpath="${dist.lib.dir}/javac.jar" includeAntRuntime="no" @@ -352,6 +352,45 @@ </java> </target> + <!-- a patching facility to speed up incorporating the langtools' classfiles + into a jdk of your choice. Either target.java.home or patch.jdk can be + set on the command line; setting target.java.home has the advantage of + patching the jdk used for jtreg and other tests. + --> + <target name="patch" depends="build-all-classes"> + <condition property="patch.jdk" value="${target.java.home}"> + <available file="${target.java.home}" type="dir"/> + </condition> + <fail message="patch.jdk or target.java.home is not set, please set target.java.home, or patch.jdk for an alternate jdk image to patch"> + <condition> + <not> + <isset property="patch.jdk"/> + </not> + </condition> + </fail> + <property name="patch.tools.jar" location="${patch.jdk}/lib/tools.jar"/> + <property name="patch.rt.jar" location="${patch.jdk}/jre/lib/rt.jar"/> + <fail message="patch.jdk or target.java.home must point to a valid jdk image: missing tools.jar"> + <condition> + <not> + <available file="${patch.tools.jar}" type="file"/> + </not> + </condition> + </fail> + <fail message="patch.jdk or target.java.home must point to a valid jdk image: missing rt.jar"> + <condition> + <not> + <available file="${patch.rt.jar}" type="file"/> + </not> + </condition> + </fail> + <zip zipfile="${patch.tools.jar}" update="true"> + <zipfileset dir="${build.classes.dir}" includes="com/**"/> + </zip> + <zip zipfile="${patch.rt.jar}" update="true"> + <zipfileset dir="${build.classes.dir}" includes="javax/**"/> + </zip> + </target> <!-- **** Debugging/diagnostic targets.
--- a/src/share/bin/launcher.sh-template Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/bin/launcher.sh-template Sat Apr 09 00:45:10 2011 +0100 @@ -26,6 +26,12 @@ # mydir="`dirname $0`" +case `uname -s` in + CYGWIN*) + mydir=`cygpath -m $mydir` + ;; +esac + mylib="`dirname $mydir`"/lib # By default, put the jar file and its dependencies on the bootclasspath.
--- a/src/share/classes/com/sun/source/tree/MethodTree.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/source/tree/MethodTree.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -53,7 +53,6 @@ Tree getReturnType(); List<? extends TypeParameterTree> getTypeParameters(); List<? extends VariableTree> getParameters(); -//308 List<? extends AnnotationTree> getReceiverAnnotations(); List<? extends ExpressionTree> getThrows(); BlockTree getBody(); Tree getDefaultValue(); // for annotation types
--- a/src/share/classes/com/sun/source/tree/Tree.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/source/tree/Tree.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -46,8 +46,6 @@ */ public enum Kind { -//308 ANNOTATED_TYPE(AnnotatedTypeTree.class), - /** * Used for instances of {@link AnnotationTree}. */
--- a/src/share/classes/com/sun/source/tree/TreeVisitor.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/source/tree/TreeVisitor.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -57,7 +57,6 @@ * @since 1.6 */ public interface TreeVisitor<R,P> { -//308 R visitAnnotatedType(AnnotatedTypeTree node, P p); R visitAnnotation(AnnotationTree node, P p); R visitMethodInvocation(MethodInvocationTree node, P p); R visitAssert(AssertTree node, P p);
--- a/src/share/classes/com/sun/source/tree/TypeParameterTree.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/source/tree/TypeParameterTree.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -47,5 +47,4 @@ public interface TypeParameterTree extends Tree { Name getName(); List<? extends Tree> getBounds(); -//308 List<? extends AnnotationTree> getAnnotations(); }
--- a/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -248,10 +248,6 @@ return defaultAction(node, p); } -//308 public R visitAnnotatedType(AnnotatedTypeTree node, P p) { -//308 return defaultAction(node, p); -//308 } - public R visitErroneous(ErroneousTree node, P p) { return defaultAction(node, p); }
--- a/src/share/classes/com/sun/source/util/TreeScanner.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/source/util/TreeScanner.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -138,7 +138,6 @@ r = scanAndReduce(node.getReturnType(), p, r); r = scanAndReduce(node.getTypeParameters(), p, r); r = scanAndReduce(node.getParameters(), p, r); -//308 r = scanAndReduce(node.getReceiverAnnotations(), p, r); r = scanAndReduce(node.getThrows(), p, r); r = scanAndReduce(node.getBody(), p, r); r = scanAndReduce(node.getDefaultValue(), p, r); @@ -362,7 +361,6 @@ public R visitTypeParameter(TypeParameterTree node, P p) { R r = scan(node.getBounds(), p); -//308 R r = scanAndReduce(node.getAnnotations(), p, r); return r; } @@ -380,12 +378,6 @@ return r; } -//308 public R visitAnnotatedType(AnnotatedTypeTree node, P p) { -//308 R r = scan(node.getAnnotations(), p); -//308 r = scanAndReduce(node.getUnderlyingType(), p, r); -//308 return r; -//308 } - public R visitOther(Tree node, P p) { return null; }
--- a/src/share/classes/com/sun/tools/apt/resources/apt_ja.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/apt/resources/apt_ja.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2006, 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 @@ -23,34 +23,34 @@ # questions. # -apt.msg.usage.header=\u4f7f\u7528\u6cd5: {0} <apt \u304a\u3088\u3073 javac \u30aa\u30d7\u30b7\u30e7\u30f3> <\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb>\n\u6b21\u306e apt \u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u3042\u308a\u307e\u3059: +apt.msg.usage.header=\u4F7F\u7528\u65B9\u6CD5: {0} <apt and javac options> <source files>\n\u6B21\u306Eapt\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059: -apt.msg.usage.footer=javac \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u3064\u3044\u3066\u306f\u3001javac -help \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +apt.msg.usage.footer=javac\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u3064\u3044\u3066\u306F\u3001javac -help\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -apt.msg.usage.nonstandard.footer=\u3053\u308c\u3089\u306f\u975e\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3042\u308a\u4e88\u544a\u306a\u3057\u306b\u5909\u66f4\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\n\u8868\u793a\u5f62\u5f0f\u306f\u540c\u3058\u3067\u3059\u3002 +apt.msg.usage.nonstandard.footer=\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u3001\u8868\u793A\u5F62\u5F0F\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\n\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002 -apt.msg.bug=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u4f8b\u5916\u304c\u767a\u751f\u3057\u307e\u3057\u305f ({0})\u3002Bug Parade \u306b\u540c\u3058\u30d0\u30b0\u304c\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u3092\u3054\u78ba\u8a8d\u306e\u4e0a\u3001Java Developer Connection (http://java.sun.com/webapps/bugreport) \u306b\u3066\u30d0\u30b0\u306e\u767b\u9332\u3092\u304a\u9858\u3044\u3044\u305f\u3057\u307e\u3059\u3002 \u30ec\u30dd\u30fc\u30c8\u306b\u306f\u3001\u305d\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3068\u4e0b\u8a18\u306e\u8a3a\u65ad\u5185\u5bb9\u3092\u542b\u3081\u3066\u304f\u3060\u3055\u3044\u3002\u3054\u5354\u529b\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\u3002 +apt.msg.bug=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3067\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F({0})\u3002Bug Parade\u306B\u540C\u3058\u30D0\u30B0\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u3053\u3068\u3092\u3054\u78BA\u8A8D\u306E\u4E0A\u3001Java Developer Connection(http://java.sun.com/webapps/bugreport)\u3067\u30D0\u30B0\u306E\u767B\u9332\u3092\u304A\u9858\u3044\u3044\u305F\u3057\u307E\u3059\u3002\u30EC\u30DD\u30FC\u30C8\u306B\u306F\u3001\u305D\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u3068\u4E0B\u8A18\u306E\u8A3A\u65AD\u5185\u5BB9\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u3054\u5354\u529B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002 ## apt options -apt.opt.A=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306b\u6e21\u3055\u308c\u308b\u30aa\u30d7\u30b7\u30e7\u30f3 +apt.opt.A=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306B\u6E21\u3055\u308C\u308B\u30AA\u30D7\u30B7\u30E7\u30F3 apt.opt.arg.class=<class> -apt.opt.arg.directory=\u30d7\u30ed\u30bb\u30c3\u30b5\u304a\u3088\u3073 javac \u304c\u751f\u6210\u3057\u305f\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304f\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b -apt.opt.classpath=\u30e6\u30fc\u30b6\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u30d5\u30a1\u30af\u30c8\u30ea\u3092\u691c\u7d22\u3059\u308b\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b -apt.opt.d=\u30d7\u30ed\u30bb\u30c3\u30b5\u304a\u3088\u3073 javac \u304c\u751f\u6210\u3057\u305f\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304f\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b -apt.opt.factory=\u4f7f\u7528\u3059\u308b AnnotationProcessorFactory \u306e\u540d\u524d\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u691c\u51fa\u51e6\u7406\u3092\u30d0\u30a4\u30d1\u30b9 -apt.opt.factorypath=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u30d5\u30a1\u30af\u30c8\u30ea\u306e\u691c\u7d22\u5834\u6240\u3092\u6307\u5b9a\u3059\u308b -apt.opt.s=\u30d7\u30ed\u30bb\u30c3\u30b5\u304c\u751f\u6210\u3057\u305f\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304f\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b -apt.opt.help=\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u6982\u8981\u3092\u51fa\u529b\u3059\u308b\u3002\u8a73\u7d30\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u3064\u3044\u3066\u306f javac -help \u3092\u53c2\u7167 -apt.opt.print=\u6307\u5b9a\u3057\u305f\u578b\u306e\u30c6\u30ad\u30b9\u30c8\u8868\u793a\u3092\u51fa\u529b\u3059\u308b -apt.opt.nocompile=\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u306a\u3044 +apt.opt.arg.directory=\u30D7\u30ED\u30BB\u30C3\u30B5\u304A\u3088\u3073javac\u304C\u751F\u6210\u3057\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B +apt.opt.classpath=\u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304A\u3088\u3073\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B +apt.opt.d=\u30D7\u30ED\u30BB\u30C3\u30B5\u304A\u3088\u3073javac\u304C\u751F\u6210\u3057\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B +apt.opt.factory=\u4F7F\u7528\u3059\u308BAnnotationProcessorFactory\u306E\u540D\u524D\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u691C\u51FA\u51E6\u7406\u3092\u30D0\u30A4\u30D1\u30B9 +apt.opt.factorypath=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u306E\u691C\u7D22\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B +apt.opt.s=\u30D7\u30ED\u30BB\u30C3\u30B5\u304C\u751F\u6210\u3057\u305F\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B +apt.opt.help=\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u6982\u8981\u3092\u51FA\u529B\u3059\u308B\u3002\u8A73\u7D30\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u3064\u3044\u3066\u306Fjavac -help\u3092\u53C2\u7167 +apt.opt.print=\u6307\u5B9A\u3057\u305F\u578B\u306E\u30C6\u30AD\u30B9\u30C8\u8868\u793A\u3092\u51FA\u529B\u3059\u308B +apt.opt.nocompile=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u306A\u3044 apt.opt.proc.flag=[key[=value]] -apt.opt.version=\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831 -apt.opt.XListAnnotationTypes=\u898b\u3064\u304b\u3063\u305f\u6ce8\u91c8\u578b\u3092\u30ea\u30b9\u30c8\u3059\u308b -apt.opt.XListDeclarations=\u6307\u5b9a\u3055\u308c\u305f\u5ba3\u8a00\u304a\u3088\u3073\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3055\u308c\u305f\u5ba3\u8a00\u3092\u30ea\u30b9\u30c8\u3059\u308b -apt.opt.XPrintAptRounds=\u521d\u671f\u304a\u3088\u3073\u518d\u5e30 apt \u5f80\u5fa9\u306b\u3064\u3044\u3066\u306e\u60c5\u5831\u3092\u5370\u5237\u3059\u308b -apt.opt.XPrintFactoryInfo=\u30d5\u30a1\u30af\u30c8\u30ea\u304c\u51e6\u7406\u3092\u4f9d\u983c\u3055\u308c\u308b\u6ce8\u91c8\u306b\u3064\u3044\u3066\u306e\u60c5\u5831\u3092\u5370\u5237\u3059\u308b -apt.opt.XClassesAsDecls=\u30af\u30e9\u30b9\u3068\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u4e21\u65b9\u3068\u3082\u51e6\u7406\u3059\u308b\u5ba3\u8a00\u3068\u3057\u3066\u51e6\u7406 +apt.opt.version=\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831 +apt.opt.XListAnnotationTypes=\u898B\u3064\u304B\u3063\u305F\u6CE8\u91C8\u578B\u3092\u30EA\u30B9\u30C8\u3059\u308B +apt.opt.XListDeclarations=\u6307\u5B9A\u3055\u308C\u305F\u5BA3\u8A00\u304A\u3088\u3073\u30A4\u30F3\u30AF\u30EB\u30FC\u30C9\u3055\u308C\u305F\u5BA3\u8A00\u3092\u30EA\u30B9\u30C8\u3059\u308B +apt.opt.XPrintAptRounds=\u521D\u671F\u304A\u3088\u3073\u518D\u5E30apt\u5F80\u5FA9\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B +apt.opt.XPrintFactoryInfo=\u30D5\u30A1\u30AF\u30C8\u30EA\u304C\u51E6\u7406\u3092\u4F9D\u983C\u3055\u308C\u308B\u6CE8\u91C8\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B +apt.opt.XClassesAsDecls=\u30AF\u30E9\u30B9\u3068\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4E21\u65B9\u3068\u3082\u51E6\u7406\u3059\u308B\u5BA3\u8A00\u3068\u3057\u3066\u51E6\u7406 ## ## errors @@ -59,17 +59,17 @@ ## All errors which do not refer to a particular line in the source code are ## preceded by this string. -apt.err.error=\u30a8\u30e9\u30fc: +apt.err.error=\u30A8\u30E9\u30FC:\u0020 -apt.err.unsupported.source.version=\u30bd\u30fc\u30b9\u30ea\u30ea\u30fc\u30b9 {0} \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u30ea\u30ea\u30fc\u30b9 5 \u4ee5\u524d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044 +apt.err.unsupported.source.version=\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30EA\u30EA\u30FC\u30B95\u4EE5\u524D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044 -apt.err.unsupported.target.version=\u30bf\u30fc\u30b2\u30c3\u30c8\u30ea\u30ea\u30fc\u30b9 {0} \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u30ea\u30ea\u30fc\u30b9 5 \u4ee5\u524d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044 +apt.err.unsupported.target.version=\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30EA\u30EA\u30FC\u30B95\u4EE5\u524D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044 -apt.err.BadDeclaration=\u6ce8\u91c8\u578b {0} \u7528\u306b\u4f5c\u6210\u3055\u308c\u305f\u7121\u52b9\u306a\u5ba3\u8a00\u3067\u3059\u3002 +apt.err.BadDeclaration=\u6CE8\u91C8\u578B{0}\u7528\u306B\u4F5C\u6210\u3055\u308C\u305F\u7121\u52B9\u306A\u5BA3\u8A00\u3067\u3059 -apt.err.CantFindClass={0} \u306e\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +apt.err.CantFindClass={0}\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -apt.err.DeclarationCreation=\u6ce8\u91c8\u578b {0} \u7528\u306b\u5ba3\u8a00\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 +apt.err.DeclarationCreation=\u6CE8\u91C8\u578B{0}\u7528\u306B\u5BA3\u8A00\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F # Print an error from the Messager apt.err.Messager={0} @@ -78,11 +78,11 @@ ## miscellaneous strings ## -apt.misc.Deprecation=\n\u8b66\u544a: apt \u30c4\u30fc\u30eb\u3068\u3053\u308c\u306b\u95a2\u9023\u3059\u308b API \u306f\u3001\u6b21\u306e JDK \u30e1\u30b8\u30e3\u30fc\u30ea\u30ea\u30fc\u30b9\u3067\n\u524a\u9664\u3055\u308c\u308b\u4e88\u5b9a\u3067\u3059\u3002\u3053\u308c\u3089\u306e\u6a5f\u80fd\u306f\u3001\njavac \u304a\u3088\u3073\u6a19\u6e96\u5316\u6ce8\u91c8\u51e6\u7406 API \n(javax.annotation.processing \u3068 javax.lang.model) \u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3057\u305f\u3002javac \u306e\n\u6ce8\u91c8\u51e6\u7406\u6a5f\u80fd\u3078\u306e\u79fb\u884c\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002\u8a73\u7d30\u306f\u3001\njavac \u306e\u30de\u30cb\u30e5\u30a2\u30eb\u30da\u30fc\u30b8\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n +apt.misc.Deprecation=\n\u8B66\u544A: apt\u30C4\u30FC\u30EB\u3068\u30C4\u30FC\u30EB\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305FAPI\u306F\u3001\u6B21\u56DE\u306EJDK\n\u30E1\u30B8\u30E3\u30FC\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3059\u3002\u3053\u308C\u3089\u306E\u6A5F\u80FD\u306Fjavac\u304A\u3088\u3073\n\u6A19\u6E96\u5316\u3055\u308C\u305F\u6CE8\u91C8\u51E6\u7406API\u306Ejavax.annotation.processing\u304A\u3088\u3073javax.lang.model\n\u306B\u3088\u3063\u3066\u7F6E\u304D\u63DB\u3048\u3089\u308C\u307E\u3057\u305F\u3002\u30E6\u30FC\u30B6\u30FC\u306Fjavac\u306E\u6CE8\u91C8\u51E6\u7406\u6A5F\u80FD\u306B\n\u79FB\u884C\u3059\u308B\u3053\u3068\u3092\u304A\u85A6\u3081\u3057\u307E\u3059\u3002\n\u8A73\u7D30\u306F\u3001javac man\u30DA\u30FC\u30B8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n -apt.misc.Problem=\u6ce8\u91c8\u306e\u51e6\u7406\u4e2d\u306b\u554f\u984c\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002\n\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001\u4e0b\u8a18\u306e\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +apt.misc.Problem=\u6CE8\u91C8\u51E6\u7406\u4E2D\u306B\u554F\u984C\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n\u8A73\u7D30\u306F\u3001\u4E0B\u8A18\u306E\u30B9\u30BF\u30C3\u30AF\u30FB\u30C8\u30EC\u30FC\u30B9\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -apt.misc.SunMiscService=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u30d5\u30a1\u30af\u30c8\u30ea\u306e\u691c\u7d22\u30a8\u30e9\u30fc\u3067\u3059\u3002\nMETA-INF/services \u5185\u306e\u60c5\u5831\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +apt.misc.SunMiscService=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u306E\u691C\u7D22\u30A8\u30E9\u30FC\u3067\u3059\u3002\nMETA-INF/services\u5185\u306E\u60C5\u5831\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 # Print a notice from the Messager apt.note.Messager={0} @@ -92,35 +92,35 @@ ## ## All warning messages are preceded by the following string. -apt.warn.warning=\u8b66\u544a: +apt.warn.warning=\u8B66\u544A: -apt.warn.AnnotationsWithoutProcessors=\u30d7\u30ed\u30bb\u30c3\u30b5\u306a\u3057\u306e\u6ce8\u91c8\u578b\u3067\u3059: {0} +apt.warn.AnnotationsWithoutProcessors=\u30D7\u30ED\u30BB\u30C3\u30B5\u306A\u3057\u306E\u6CE8\u91C8\u578B\u3067\u3059: {0} -apt.warn.BadFactory=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u30d5\u30a1\u30af\u30c8\u30ea\u304c\u7121\u52b9\u3067\u3059: {0} +apt.warn.BadFactory=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u304C\u7121\u52B9\u3067\u3059: {0} -apt.warn.BadParentDirectory={0} \u306e\u3044\u304f\u3064\u304b\u306e\u89aa\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f +apt.warn.BadParentDirectory={0}\u306E\u3044\u304F\u3064\u304B\u306E\u89AA\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F -apt.warn.FactoryCantInstantiate=\u30d5\u30a1\u30af\u30c8\u30ea ''{0}'' \u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 +apt.warn.FactoryCantInstantiate=\u30D5\u30A1\u30AF\u30C8\u30EA''{0}''\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -apt.warn.FactoryWrongType=\u6307\u5b9a\u3057\u305f\u30d5\u30a1\u30af\u30c8\u30ea ''{0}'' \u306f AnnotationProcessorFactory \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +apt.warn.FactoryWrongType=\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30AF\u30C8\u30EA''{0}''\u306FAnnotationProcessorFactory\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 -apt.warn.FactoryNotFound=\u6307\u5b9a\u3057\u305f AnnotationProcessorFactory ''{0}'' \u306f\u691c\u7d22\u30d1\u30b9\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 +apt.warn.FactoryNotFound=\u6307\u5B9A\u3057\u305FAnnotationProcessorFactory ''{0}''\u306F\u691C\u7D22\u30D1\u30B9\u3067\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -apt.warn.FileReopening=''{0}'' \u3092\u8907\u6570\u56de\u4f5c\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002 +apt.warn.FileReopening=''{0}''\u3092\u8907\u6570\u56DE\u4F5C\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059 -apt.warn.IllegalFileName=\u7121\u52b9\u306a\u540d\u524d ''{0}'' \u306e\u30d5\u30a1\u30a4\u30eb\u306f\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002 +apt.warn.IllegalFileName=\u7121\u52B9\u306A\u540D\u524D''{0}''\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002 -apt.warn.MalformedSupportedString=\u30d5\u30a1\u30af\u30c8\u30ea\u304c\u8fd4\u3057\u305f\u6ce8\u91c8\u30b5\u30dd\u30fc\u30c8 ''{0}'' \u306e\u6587\u5b57\u5217\u304c\u4e0d\u6b63\u3067\u3059\u3002 +apt.warn.MalformedSupportedString=\u30D5\u30A1\u30AF\u30C8\u30EA\u304C\u8FD4\u3057\u305F\u6CE8\u91C8\u30B5\u30DD\u30FC\u30C8''{0}''\u306E\u6587\u5B57\u5217\u304C\u4E0D\u6B63\u3067\u3059\u3002 -apt.warn.NoNewFilesAfterRound=\u5f80\u5fa9\u306e\u7d42\u4e86\u5f8c\u306b\u30d5\u30a1\u30a4\u30eb ''{0}'' \u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 +apt.warn.NoNewFilesAfterRound=\u5F80\u5FA9\u306E\u7D42\u4E86\u5F8C\u306B\u30D5\u30A1\u30A4\u30EB''{0}''\u3092\u4F5C\u6210\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 # Print a warning from the Messager apt.warn.Messager={0} -apt.warn.NoAnnotationProcessors=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u304c\u3001\u6ce8\u91c8\u306f\u5b58\u5728\u3057\u307e\u3059\u3002 +apt.warn.NoAnnotationProcessors=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u304C\u3001\u6CE8\u91C8\u306F\u5B58\u5728\u3057\u307E\u3059\u3002 -apt.warn.NullProcessor=\u30d5\u30a1\u30af\u30c8\u30ea {0} \u304c\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306b null \u3092\u8fd4\u3057\u307e\u3057\u305f\u3002 +apt.warn.NullProcessor=\u30D5\u30A1\u30AF\u30C8\u30EA{0}\u304C\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306Bnull\u3092\u8FD4\u3057\u307E\u3057\u305F\u3002 -apt.warn.CorrespondingClassFile=\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb ''{0}'' \u306b\u5bfe\u5fdc\u3059\u308b\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306f\u3059\u3067\u306b\u4f5c\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002 +apt.warn.CorrespondingClassFile=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB''{0}''\u306B\u5BFE\u5FDC\u3059\u308B\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002 -apt.warn.CorrespondingSourceFile=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb ''{0}'' \u306b\u5bfe\u5fdc\u3059\u308b\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306f\u3059\u3067\u306b\u4f5c\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002 +apt.warn.CorrespondingSourceFile=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB''{0}''\u306B\u5BFE\u5FDC\u3059\u308B\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002
--- a/src/share/classes/com/sun/tools/apt/resources/apt_zh_CN.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/apt/resources/apt_zh_CN.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2006, 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 @@ -23,34 +23,34 @@ # questions. # -apt.msg.usage.header=\u7528\u6cd5\uff1a{0} <apt \u548c javac \u9009\u9879> <\u6e90\u6587\u4ef6>\n\u5176\u4e2d\uff0capt \u9009\u9879\u5305\u62ec\uff1a +apt.msg.usage.header=\u7528\u6CD5: {0} <apt and javac options> <source files>\n\u5176\u4E2D, apt \u9009\u9879\u5305\u62EC: -apt.msg.usage.footer=\u6709\u5173 javac \u9009\u9879\u7684\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1 javac -help\u3002 +apt.msg.usage.footer=\u6709\u5173 javac \u9009\u9879\u7684\u4FE1\u606F, \u8BF7\u53C2\u9605 javac -help\u3002 -apt.msg.usage.nonstandard.footer=\u8fd9\u4e9b\u9009\u9879\u53ca\u5176\u8f93\u51fa\u683c\u5f0f\u90fd\u4e0d\u662f\u6807\u51c6\u7684\uff0c\n\u5982\u6709\u66f4\u6539\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002 +apt.msg.usage.nonstandard.footer=\u8FD9\u4E9B\u9009\u9879\u53CA\u5176\u8F93\u51FA\u683C\u5F0F\u90FD\u4E0D\u662F\u6807\u51C6\u7684, \n\u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002 -apt.msg.bug=apt ({0}) \u4e2d\u51fa\u73b0\u5f02\u5e38\u3002 \u5982\u679c\u5728 Bug Parade \u4e2d\u6ca1\u6709\u627e\u5230\u8be5\u9519\u8bef\uff0c\u8bf7\u5728 Java Developer Connection (http://java.sun.com/webapps/bugreport) \u5bf9\u8be5\u9519\u8bef\u8fdb\u884c\u5f52\u6863\u3002 \u8bf7\u5728\u62a5\u544a\u4e2d\u9644\u4e0a\u60a8\u7684\u7a0b\u5e8f\u548c\u4ee5\u4e0b\u8bca\u65ad\u4fe1\u606f\u3002\u8c22\u8c22\u60a8\u7684\u5408\u4f5c\u3002 +apt.msg.bug=apt ({0}) \u4E2D\u51FA\u73B0\u5F02\u5E38\u9519\u8BEF\u3002 \u5982\u679C\u5728 Bug Parade \u4E2D\u6CA1\u6709\u627E\u5230\u8BE5\u9519\u8BEF, \u8BF7\u5728 Java Developer Connection (http://java.sun.com/webapps/bugreport) \u4E2D\u5EFA\u7ACB Bug\u3002\u8BF7\u5728\u62A5\u544A\u4E2D\u9644\u4E0A\u60A8\u7684\u7A0B\u5E8F\u548C\u4EE5\u4E0B\u8BCA\u65AD\u4FE1\u606F\u3002\u8C22\u8C22\u3002 ## apt options -apt.opt.A=\u4f20\u9012\u7ed9\u6ce8\u91ca\u5904\u7406\u5668\u7684\u9009\u9879 -apt.opt.arg.class=<\u7c7b> -apt.opt.arg.directory=\u6307\u5b9a\u5b58\u653e\u5904\u7406\u5668\u548c javac \u751f\u6210\u7684\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e -apt.opt.classpath=\u6307\u5b9a\u67e5\u627e\u7528\u6237\u7c7b\u6587\u4ef6\u548c\u6ce8\u91ca\u5904\u7406\u5668\u5de5\u5382\u7684\u4f4d\u7f6e -apt.opt.d=\u6307\u5b9a\u5b58\u653e\u5904\u7406\u5668\u548c javac \u751f\u6210\u7684\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e -apt.opt.factory=\u8981\u4f7f\u7528\u7684 AnnotationProcessorFactory \u7684\u540d\u79f0\uff1b\u7ed5\u8fc7\u9ed8\u8ba4\u7684\u641c\u7d22\u8fdb\u7a0b -apt.opt.factorypath=\u6307\u5b9a\u67e5\u627e\u6ce8\u91ca\u5904\u7406\u5668\u5de5\u5382\u7684\u4f4d\u7f6e -apt.opt.s=\u6307\u5b9a\u5b58\u653e\u5904\u7406\u5668\u751f\u6210\u7684\u6e90\u6587\u4ef6\u7684\u4f4d\u7f6e -apt.opt.help=\u8f93\u51fa\u6807\u51c6\u9009\u9879\u7684\u63d0\u8981\uff1b\u4f7f\u7528 javac -help \u53ef\u4ee5\u5f97\u5230\u66f4\u591a\u9009\u9879 -apt.opt.print=\u8f93\u51fa\u6307\u5b9a\u7c7b\u578b\u7684\u6587\u672c\u8868\u793a -apt.opt.nocompile=\u8bf7\u52ff\u5c06\u6e90\u6587\u4ef6\u7f16\u8bd1\u4e3a\u7c7b\u6587\u4ef6 -apt.opt.proc.flag=[\u5173\u952e\u5b57[=\u503c]] -apt.opt.version=\u7248\u672c\u4fe1\u606f -apt.opt.XListAnnotationTypes=\u5217\u51fa\u627e\u5230\u7684\u6ce8\u91ca\u7c7b\u578b -apt.opt.XListDeclarations=\u5217\u51fa\u6307\u5b9a\u548c\u5305\u542b\u7684\u58f0\u660e -apt.opt.XPrintAptRounds=\u8f93\u51fa\u6709\u5173\u521d\u59cb\u548c\u9012\u5f52 apt \u5faa\u73af\u7684\u4fe1\u606f -apt.opt.XPrintFactoryInfo=\u8f93\u51fa\u6709\u5173\u8bf7\u6c42\u5de5\u5382\u5904\u7406\u54ea\u4e9b\u6ce8\u91ca\u7684\u4fe1\u606f -apt.opt.XClassesAsDecls=\u5c06\u7c7b\u6587\u4ef6\u548c\u6e90\u6587\u4ef6\u90fd\u89c6\u4e3a\u8981\u5904\u7406\u7684\u58f0\u660e +apt.opt.A=\u4F20\u9012\u7ED9\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u7684\u9009\u9879 +apt.opt.arg.class=<\u7C7B> +apt.opt.arg.directory=\u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u548C javac \u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E +apt.opt.classpath=\u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u548C\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u7684\u4F4D\u7F6E +apt.opt.d=\u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u548C javac \u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E +apt.opt.factory=\u8981\u4F7F\u7528\u7684 AnnotationProcessorFactory \u7684\u540D\u79F0; \u7ED5\u8FC7\u9ED8\u8BA4\u7684\u641C\u7D22\u8FDB\u7A0B +apt.opt.factorypath=\u6307\u5B9A\u67E5\u627E\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u7684\u4F4D\u7F6E +apt.opt.s=\u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u751F\u6210\u7684\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E +apt.opt.help=\u8F93\u51FA\u6807\u51C6\u9009\u9879\u7684\u63D0\u8981; \u4F7F\u7528 javac -help \u53EF\u4EE5\u5F97\u5230\u66F4\u591A\u9009\u9879 +apt.opt.print=\u8F93\u51FA\u6307\u5B9A\u7C7B\u578B\u7684\u6587\u672C\u8868\u793A +apt.opt.nocompile=\u8BF7\u52FF\u5C06\u6E90\u6587\u4EF6\u7F16\u8BD1\u4E3A\u7C7B\u6587\u4EF6 +apt.opt.proc.flag=[\u5173\u952E\u5B57[=\u503C]] +apt.opt.version=\u7248\u672C\u4FE1\u606F +apt.opt.XListAnnotationTypes=\u5217\u51FA\u627E\u5230\u7684\u6CE8\u91CA\u7C7B\u578B +apt.opt.XListDeclarations=\u5217\u51FA\u6307\u5B9A\u548C\u5305\u542B\u7684\u58F0\u660E +apt.opt.XPrintAptRounds=\u8F93\u51FA\u6709\u5173\u521D\u59CB\u548C\u9012\u5F52 apt \u5FAA\u73AF\u7684\u4FE1\u606F +apt.opt.XPrintFactoryInfo=\u8F93\u51FA\u6709\u5173\u8BF7\u6C42\u5DE5\u5382\u5904\u7406\u54EA\u4E9B\u6CE8\u91CA\u7684\u4FE1\u606F +apt.opt.XClassesAsDecls=\u5C06\u7C7B\u6587\u4EF6\u548C\u6E90\u6587\u4EF6\u90FD\u89C6\u4E3A\u8981\u5904\u7406\u7684\u58F0\u660E ## ## errors @@ -59,17 +59,17 @@ ## All errors which do not refer to a particular line in the source code are ## preceded by this string. -apt.err.error=\u9519\u8bef\uff1a +apt.err.error=\u9519\u8BEF:\u0020 -apt.err.unsupported.source.version=\u4e0d\u652f\u6301\u6e90\u7248\u672c {0}\uff1b\u8bf7\u4f7f\u7528\u7248\u672c 5 \u6216\u65e9\u671f\u7248\u672c +apt.err.unsupported.source.version=\u4E0D\u652F\u6301\u6E90\u53D1\u884C\u7248 {0}; \u8BF7\u4F7F\u7528\u53D1\u884C\u7248 5 \u6216\u65E9\u671F\u53D1\u884C\u7248 -apt.err.unsupported.target.version=\u4e0d\u652f\u6301\u76ee\u6807\u7248\u672c {0}\uff1b\u8bf7\u4f7f\u7528\u7248\u672c 5 \u6216\u65e9\u671f\u7248\u672c +apt.err.unsupported.target.version=\u4E0D\u652F\u6301\u76EE\u6807\u53D1\u884C\u7248 {0}; \u8BF7\u4F7F\u7528\u53D1\u884C\u7248 5 \u6216\u65E9\u671F\u53D1\u884C\u7248 -apt.err.BadDeclaration=\u4e3a\u6ce8\u91ca\u7c7b\u578b {0} \u521b\u5efa\u7684\u58f0\u660e\u51fa\u73b0\u9519\u8bef +apt.err.BadDeclaration=\u4E3A\u6CE8\u91CA\u7C7B\u578B{0}\u521B\u5EFA\u7684\u58F0\u660E\u51FA\u73B0\u9519\u8BEF -apt.err.CantFindClass=\u627e\u4e0d\u5230 {0} \u7684\u7c7b\u6587\u4ef6 +apt.err.CantFindClass=\u627E\u4E0D\u5230{0}\u7684\u7C7B\u6587\u4EF6 -apt.err.DeclarationCreation=\u65e0\u6cd5\u4e3a\u6ce8\u91ca\u7c7b\u578b {0} \u521b\u5efa\u58f0\u660e +apt.err.DeclarationCreation=\u65E0\u6CD5\u4E3A\u6CE8\u91CA\u7C7B\u578B{0}\u521B\u5EFA\u58F0\u660E # Print an error from the Messager apt.err.Messager={0} @@ -78,11 +78,11 @@ ## miscellaneous strings ## -apt.misc.Deprecation=\n\u8b66\u544a\uff1a\u5728\u4e0b\u4e00\u4e2a JDK \u4e3b\u8981\u7248\u672c\u4e2d\uff0c\napt \u5de5\u5177\u53ca\u5176\u5173\u8054\u7684 API \u5c06\u88ab\u5220\u9664\u3002\u5176\u4e2d\u7684\u529f\u80fd\u5df2\u88ab javac \u4ee5\u53ca\n\u6807\u51c6\u5316\u6ce8\u91ca\u5904\u7406 API \njavax.annotation.processing \u548c javax.lang.model \u53d6\u4ee3\u3002\u5efa\u8bae\u7528\u6237\n\u6539\u7528 javac \u7684\u6ce8\u91ca\u5904\u7406\u529f\u80fd\uff1b\n\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1 javac \u624b\u518c\u9875\u3002\n +apt.misc.Deprecation=\n\u8B66\u544A:\u0020\u5DF2\u8BA1\u5212\u5728\u4E0B\u4E00\u4E2A JDK \u4E3B\u53D1\u884C\u7248\u4E2D\n\u5220\u9664 apt \u5DE5\u5177\u53CA\u5176\u5173\u8054\u7684 API\u3002\u8FD9\u4E9B\u529F\u80FD\n\u5DF2\u88AB javac \u548C\u6807\u51C6\u6CE8\u91CA\u5904\u7406 API,\njavax.annotation.processing \u548C javax.lang.model \u53D6\u4EE3\u3002\u5EFA\u8BAE\u7528\u6237\n\u79FB\u690D\u5230 javac \u7684\u6CE8\u91CA\u5904\u7406\u529F\u80FD;\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605 javac \u5E2E\u52A9\u9875\u3002\n -apt.misc.Problem=\u6ce8\u91ca\u5904\u7406\u8fc7\u7a0b\u4e2d\u9047\u5230\u95ee\u9898\uff1b\n\u6709\u5173\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1\u4e0b\u9762\u7684\u5806\u6808\u8ffd\u8e2a\u3002 +apt.misc.Problem=\u6CE8\u91CA\u5904\u7406\u8FC7\u7A0B\u4E2D\u9047\u5230\u95EE\u9898; \n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605\u4E0B\u9762\u7684\u5806\u6808\u8DDF\u8E2A\u3002 -apt.misc.SunMiscService=\u67e5\u627e\u6ce8\u91ca\u5904\u7406\u5668\u5de5\u5382\u65f6\u51fa\u9519\uff1b\n\u8bf7\u67e5\u770b META-INF/\u670d\u52a1\u4fe1\u606f\u3002 +apt.misc.SunMiscService=\u67E5\u627E\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u65F6\u51FA\u9519; \n\u8BF7\u67E5\u770B META-INF/\u670D\u52A1\u4FE1\u606F\u3002 # Print a notice from the Messager apt.note.Messager={0} @@ -92,35 +92,35 @@ ## ## All warning messages are preceded by the following string. -apt.warn.warning=\u8b66\u544a\uff1a +apt.warn.warning=\u8B66\u544A:\u0020 -apt.warn.AnnotationsWithoutProcessors=\u4e0d\u5e26\u5904\u7406\u5668\u7684\u6ce8\u91ca\u7c7b\u578b\uff1a {0} +apt.warn.AnnotationsWithoutProcessors=\u4E0D\u5E26\u5904\u7406\u7A0B\u5E8F\u7684\u6CE8\u91CA\u7C7B\u578B: {0} -apt.warn.BadFactory=\u6ce8\u91ca\u5904\u7406\u5668\u5de5\u5382\u51fa\u73b0\u9519\u8bef\uff1a {0} +apt.warn.BadFactory=\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u51FA\u73B0\u9519\u8BEF: {0} -apt.warn.BadParentDirectory=\u65e0\u6cd5\u521b\u5efa {0} \u7684\u67d0\u4e9b\u7236\u76ee\u5f55 +apt.warn.BadParentDirectory=\u65E0\u6CD5\u521B\u5EFA{0}\u7684\u67D0\u4E9B\u7236\u76EE\u5F55 -apt.warn.FactoryCantInstantiate=\u65e0\u6cd5\u5b9e\u4f8b\u5316\u5de5\u5382 "{0}" \u7684\u5b9e\u4f8b\u3002 +apt.warn.FactoryCantInstantiate=\u65E0\u6CD5\u5B9E\u4F8B\u5316\u5DE5\u5382 ''{0}'' \u7684\u5B9E\u4F8B\u3002 -apt.warn.FactoryWrongType=\u6307\u5b9a\u7684\u5de5\u5382 "{0}" \u4e0d\u662f AnnotationProcessorFactory\u3002 +apt.warn.FactoryWrongType=\u6307\u5B9A\u7684\u5DE5\u5382 ''{0}'' \u4E0D\u662F AnnotationProcessorFactory\u3002 -apt.warn.FactoryNotFound=\u5728\u641c\u7d22\u8def\u5f84\u4e2d\u627e\u4e0d\u5230\u6307\u5b9a\u7684 AnnotationProcessorFactory "{0}"\u3002 +apt.warn.FactoryNotFound=\u5728\u641C\u7D22\u8DEF\u5F84\u4E2D\u627E\u4E0D\u5230\u6307\u5B9A\u7684 AnnotationProcessorFactory ''{0}''\u3002 -apt.warn.FileReopening=\u5c1d\u8bd5\u591a\u6b21\u521b\u5efa "{0}" +apt.warn.FileReopening=\u5C1D\u8BD5\u591A\u6B21\u521B\u5EFA ''{0}'' -apt.warn.IllegalFileName=\u65e0\u6cd5\u521b\u5efa\u5e26\u6709\u975e\u6cd5\u540d\u79f0 "{0}" \u7684\u6587\u4ef6\u3002 +apt.warn.IllegalFileName=\u65E0\u6CD5\u521B\u5EFA\u5E26\u6709\u975E\u6CD5\u540D\u79F0 ''{0}'' \u7684\u6587\u4EF6\u3002 -apt.warn.MalformedSupportedString=\u5de5\u5382\u8fd4\u56de\u4e0d\u89c4\u5219\u7684\u6ce8\u91ca\u652f\u6301\u5b57\u7b26\u4e32 "{0}"\u3002 +apt.warn.MalformedSupportedString=\u5DE5\u5382\u8FD4\u56DE\u683C\u5F0F\u9519\u8BEF\u7684\u6CE8\u91CA\u652F\u6301\u5B57\u7B26\u4E32 ''{0}''\u3002 -apt.warn.NoNewFilesAfterRound=\u5faa\u73af\u7ed3\u675f\u540e\u65e0\u6cd5\u521b\u5efa\u6587\u4ef6 "{0}"\u3002 +apt.warn.NoNewFilesAfterRound=\u5FAA\u73AF\u7ED3\u675F\u540E\u65E0\u6CD5\u521B\u5EFA\u6587\u4EF6 ''{0}''\u3002 # Print a warning from the Messager apt.warn.Messager={0} -apt.warn.NoAnnotationProcessors=\u672a\u627e\u5230\u6ce8\u91ca\u5904\u7406\u5668\uff0c\u4f46\u5b58\u5728\u6ce8\u91ca\u3002 +apt.warn.NoAnnotationProcessors=\u627E\u4E0D\u5230\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F, \u4F46\u5B58\u5728\u6CE8\u91CA\u3002 -apt.warn.NullProcessor=\u5bf9\u4e8e\u67d0\u4e2a\u6ce8\u91ca\u5904\u7406\u5668\uff0c\u5de5\u5382 {0} \u8fd4\u56de\u7684\u503c\u4e3a null\u3002 +apt.warn.NullProcessor=\u5BF9\u4E8E\u67D0\u4E2A\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F, \u5DE5\u5382{0}\u8FD4\u56DE\u7684\u503C\u4E3A\u7A7A\u503C\u3002 -apt.warn.CorrespondingClassFile=\u5df2\u521b\u5efa\u4e0e\u6e90\u6587\u4ef6 "{0}" \u76f8\u5bf9\u5e94\u7684\u7c7b\u6587\u4ef6\u3002 +apt.warn.CorrespondingClassFile=\u5DF2\u521B\u5EFA\u4E0E\u6E90\u6587\u4EF6 ''{0}'' \u76F8\u5BF9\u5E94\u7684\u7C7B\u6587\u4EF6\u3002 -apt.warn.CorrespondingSourceFile=\u5df2\u521b\u5efa\u4e0e\u7c7b\u6587\u4ef6 "{0}" \u76f8\u5bf9\u5e94\u7684\u6e90\u6587\u4ef6\u3002 +apt.warn.CorrespondingSourceFile=\u5DF2\u521B\u5EFA\u4E0E\u7C7B\u6587\u4EF6 ''{0}'' \u76F8\u5BF9\u5E94\u7684\u6E90\u6587\u4EF6\u3002
--- a/src/share/classes/com/sun/tools/classfile/Attribute.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/classfile/Attribute.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -39,6 +39,7 @@ public abstract class Attribute { public static final String AnnotationDefault = "AnnotationDefault"; + public static final String BootstrapMethods = "BootstrapMethods"; public static final String CharacterRangeTable = "CharacterRangeTable"; public static final String Code = "Code"; public static final String ConstantValue = "ConstantValue"; @@ -54,8 +55,6 @@ public static final String RuntimeInvisibleAnnotations = "RuntimeInvisibleAnnotations"; public static final String RuntimeVisibleParameterAnnotations = "RuntimeVisibleParameterAnnotations"; public static final String RuntimeInvisibleParameterAnnotations = "RuntimeInvisibleParameterAnnotations"; - public static final String RuntimeVisibleTypeAnnotations = "RuntimeVisibleTypeAnnotations"; - public static final String RuntimeInvisibleTypeAnnotations = "RuntimeInvisibleTypeAnnotations"; public static final String Signature = "Signature"; public static final String SourceDebugExtension = "SourceDebugExtension"; public static final String SourceFile = "SourceFile"; @@ -101,6 +100,7 @@ protected void init() { standardAttributes = new HashMap<String,Class<? extends Attribute>>(); standardAttributes.put(AnnotationDefault, AnnotationDefault_attribute.class); + standardAttributes.put(BootstrapMethods, BootstrapMethods_attribute.class); standardAttributes.put(CharacterRangeTable, CharacterRangeTable_attribute.class); standardAttributes.put(Code, Code_attribute.class); standardAttributes.put(ConstantValue, ConstantValue_attribute.class); @@ -118,8 +118,6 @@ standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class); standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class); standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class); - standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class); - standardAttributes.put(RuntimeInvisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations_attribute.class); standardAttributes.put(Signature, Signature_attribute.class); standardAttributes.put(SourceID, SourceID_attribute.class); } @@ -159,6 +157,7 @@ public interface Visitor<R,P> { + R visitBootstrapMethods(BootstrapMethods_attribute attr, P p); R visitDefault(DefaultAttribute attr, P p); R visitAnnotationDefault(AnnotationDefault_attribute attr, P p); R visitCharacterRangeTable(CharacterRangeTable_attribute attr, P p); @@ -176,8 +175,6 @@ R visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations_attribute attr, P p); R visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, P p); R visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations_attribute attr, P p); - R visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, P p); - R visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, P p); R visitSignature(Signature_attribute attr, P p); R visitSourceDebugExtension(SourceDebugExtension_attribute attr, P p); R visitSourceFile(SourceFile_attribute attr, P p);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/com/sun/tools/classfile/BootstrapMethods_attribute.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.tools.classfile; + +import java.io.IOException; + +/** + * See JVMS3 <TBD> + * http://cr.openjdk.java.net/~jrose/pres/indy-javadoc-mlvm/ + * + * <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. + * This code and its internal interfaces are subject to change or + * deletion without notice.</b> + */ +public class BootstrapMethods_attribute extends Attribute { + public final BootstrapMethodSpecifier[] bootstrap_method_specifiers; + + BootstrapMethods_attribute(ClassReader cr, int name_index, int length) + throws IOException, AttributeException { + super(name_index, length); + int bootstrap_method_count = cr.readUnsignedShort(); + bootstrap_method_specifiers = new BootstrapMethodSpecifier[bootstrap_method_count]; + for (int i = 0; i < bootstrap_method_specifiers.length; i++) + bootstrap_method_specifiers[i] = new BootstrapMethodSpecifier(cr); + } + + public BootstrapMethods_attribute(int name_index, BootstrapMethodSpecifier[] bootstrap_method_specifiers) { + super(name_index, length(bootstrap_method_specifiers)); + this.bootstrap_method_specifiers = bootstrap_method_specifiers; + } + + public static int length(BootstrapMethodSpecifier[] bootstrap_method_specifiers) { + int n = 2; + for (BootstrapMethodSpecifier b : bootstrap_method_specifiers) + n += b.length(); + return n; + } + + @Override + public <R, P> R accept(Visitor<R, P> visitor, P p) { + return visitor.visitBootstrapMethods(this, p); + } + + public static class BootstrapMethodSpecifier { + public int bootstrap_method_ref; + public int[] bootstrap_arguments; + + public BootstrapMethodSpecifier(int bootstrap_method_ref, int[] bootstrap_arguments) { + this.bootstrap_method_ref = bootstrap_method_ref; + this.bootstrap_arguments = bootstrap_arguments; + } + BootstrapMethodSpecifier(ClassReader cr) throws IOException { + bootstrap_method_ref = cr.readUnsignedShort(); + int method_count = cr.readUnsignedShort(); + bootstrap_arguments = new int[method_count]; + for (int i = 0; i < bootstrap_arguments.length; i++) { + bootstrap_arguments[i] = cr.readUnsignedShort(); + } + } + + int length() { + // u2 (method_ref) + u2 (argc) + u2 * argc + return 2 + 2 + (bootstrap_arguments.length * 2); + } + } +}
--- a/src/share/classes/com/sun/tools/classfile/ClassTranslator.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/classfile/ClassTranslator.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2011 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 @@ -31,7 +31,10 @@ import com.sun.tools.classfile.ConstantPool.CONSTANT_Float_info; import com.sun.tools.classfile.ConstantPool.CONSTANT_Integer_info; import com.sun.tools.classfile.ConstantPool.CONSTANT_InterfaceMethodref_info; +import com.sun.tools.classfile.ConstantPool.CONSTANT_InvokeDynamic_info; import com.sun.tools.classfile.ConstantPool.CONSTANT_Long_info; +import com.sun.tools.classfile.ConstantPool.CONSTANT_MethodHandle_info; +import com.sun.tools.classfile.ConstantPool.CONSTANT_MethodType_info; import com.sun.tools.classfile.ConstantPool.CONSTANT_Methodref_info; import com.sun.tools.classfile.ConstantPool.CONSTANT_NameAndType_info; import com.sun.tools.classfile.ConstantPool.CONSTANT_String_info; @@ -304,6 +307,20 @@ return info; } + public CPInfo visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, Map<Object, Object> translations) { + CONSTANT_InvokeDynamic_info info2 = (CONSTANT_InvokeDynamic_info) translations.get(info); + if (info2 == null) { + ConstantPool cp2 = translate(info.cp, translations); + if (cp2 == info.cp) { + info2 = info; + } else { + info2 = new CONSTANT_InvokeDynamic_info(cp2, info.bootstrap_method_attr_index, info.name_and_type_index); + } + translations.put(info, info2); + } + return info; + } + public CPInfo visitLong(CONSTANT_Long_info info, Map<Object, Object> translations) { CONSTANT_Long_info info2 = (CONSTANT_Long_info) translations.get(info); if (info2 == null) { @@ -339,6 +356,34 @@ return info; } + public CPInfo visitMethodHandle(CONSTANT_MethodHandle_info info, Map<Object, Object> translations) { + CONSTANT_MethodHandle_info info2 = (CONSTANT_MethodHandle_info) translations.get(info); + if (info2 == null) { + ConstantPool cp2 = translate(info.cp, translations); + if (cp2 == info.cp) { + info2 = info; + } else { + info2 = new CONSTANT_MethodHandle_info(cp2, info.reference_kind, info.reference_index); + } + translations.put(info, info2); + } + return info; + } + + public CPInfo visitMethodType(CONSTANT_MethodType_info info, Map<Object, Object> translations) { + CONSTANT_MethodType_info info2 = (CONSTANT_MethodType_info) translations.get(info); + if (info2 == null) { + ConstantPool cp2 = translate(info.cp, translations); + if (cp2 == info.cp) { + info2 = info; + } else { + info2 = new CONSTANT_MethodType_info(cp2, info.descriptor_index); + } + translations.put(info, info2); + } + return info; + } + public CPInfo visitString(CONSTANT_String_info info, Map<Object, Object> translations) { CONSTANT_String_info info2 = (CONSTANT_String_info) translations.get(info); if (info2 == null) {
--- a/src/share/classes/com/sun/tools/classfile/ClassWriter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/classfile/ClassWriter.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2011, 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 @@ -267,6 +267,12 @@ return 1; } + public Integer visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, ClassOutputStream out) { + out.writeShort(info.bootstrap_method_attr_index); + out.writeShort(info.name_and_type_index); + return 1; + } + public Integer visitLong(CONSTANT_Long_info info, ClassOutputStream out) { out.writeLong(info.value); return 2; @@ -278,6 +284,17 @@ return 1; } + public Integer visitMethodHandle(CONSTANT_MethodHandle_info info, ClassOutputStream out) { + out.writeByte(info.reference_kind.tag); + out.writeShort(info.reference_index); + return 1; + } + + public Integer visitMethodType(CONSTANT_MethodType_info info, ClassOutputStream out) { + out.writeShort(info.descriptor_index); + return 1; + } + public Integer visitMethodref(CONSTANT_Methodref_info info, ClassOutputStream out) { return writeRef(info, out); } @@ -332,6 +349,19 @@ return null; } + public Void visitBootstrapMethods(BootstrapMethods_attribute attr, ClassOutputStream out) { + out.writeShort(attr.bootstrap_method_specifiers.length); + for (BootstrapMethods_attribute.BootstrapMethodSpecifier bsm : attr.bootstrap_method_specifiers) { + out.writeShort(bsm.bootstrap_method_ref); + int bsm_args_count = bsm.bootstrap_arguments.length; + out.writeShort(bsm_args_count); + for (int i : bsm.bootstrap_arguments) { + out.writeShort(i); + } + } + return null; + } + public Void visitCharacterRangeTable(CharacterRangeTable_attribute attr, ClassOutputStream out) { out.writeShort(attr.character_range_table.length); for (CharacterRangeTable_attribute.Entry e: attr.character_range_table) @@ -459,16 +489,6 @@ return null; } - public Void visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, ClassOutputStream out) { - annotationWriter.write(attr.annotations, out); - return null; - } - - public Void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, ClassOutputStream out) { - annotationWriter.write(attr.annotations, out); - return null; - } - public Void visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, ClassOutputStream out) { out.writeByte(attr.parameter_annotations.length); for (Annotation[] annos: attr.parameter_annotations) @@ -628,12 +648,6 @@ write(anno, out); } - public void write(ExtendedAnnotation[] annos, ClassOutputStream out) { - out.writeShort(annos.length); - for (ExtendedAnnotation anno: annos) - write(anno, out); - } - public void write(Annotation anno, ClassOutputStream out) { out.writeShort(anno.type_index); out.writeShort(anno.element_value_pairs.length); @@ -641,11 +655,6 @@ write(p, out); } - public void write(ExtendedAnnotation anno, ClassOutputStream out) { - write(anno.annotation, out); - write(anno.position, out); - } - public void write(element_value_pair pair, ClassOutputStream out) { out.writeShort(pair.element_name_index); write(pair.value, out); @@ -684,95 +693,5 @@ return null; } - private void write(ExtendedAnnotation.Position p, ClassOutputStream out) { - out.writeByte(p.type.targetTypeValue()); - switch (p.type) { - // type case - case TYPECAST: - case TYPECAST_GENERIC_OR_ARRAY: - // object creation - case INSTANCEOF: - case INSTANCEOF_GENERIC_OR_ARRAY: - // new expression - case NEW: - case NEW_GENERIC_OR_ARRAY: - case NEW_TYPE_ARGUMENT: - case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - out.writeShort(p.offset); - break; - // local variable - case LOCAL_VARIABLE: - case LOCAL_VARIABLE_GENERIC_OR_ARRAY: - int table_length = p.lvarOffset.length; - out.writeShort(table_length); - for (int i = 0; i < table_length; ++i) { - out.writeShort(1); // for table length - out.writeShort(p.lvarOffset[i]); - out.writeShort(p.lvarLength[i]); - out.writeShort(p.lvarIndex[i]); - } - break; - // method receiver - case METHOD_RECEIVER: - // Do nothing - break; - // type parameters - case CLASS_TYPE_PARAMETER: - case METHOD_TYPE_PARAMETER: - out.writeByte(p.parameter_index); - break; - // type parameters bounds - case CLASS_TYPE_PARAMETER_BOUND: - case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - case METHOD_TYPE_PARAMETER_BOUND: - case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - out.writeByte(p.parameter_index); - out.writeByte(p.bound_index); - break; - // wildcards - case WILDCARD_BOUND: - case WILDCARD_BOUND_GENERIC_OR_ARRAY: - write(p.wildcard_position, out); - break; - // Class extends and implements clauses - case CLASS_EXTENDS: - case CLASS_EXTENDS_GENERIC_OR_ARRAY: - out.writeByte(p.type_index); - break; - // throws - case THROWS: - out.writeByte(p.type_index); - break; - case CLASS_LITERAL: - case CLASS_LITERAL_GENERIC_OR_ARRAY: - out.writeShort(p.offset); - break; - // method parameter: not specified - case METHOD_PARAMETER_GENERIC_OR_ARRAY: - out.writeByte(p.parameter_index); - break; - // method type argument: wasn't specified - case METHOD_TYPE_ARGUMENT: - case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - out.writeShort(p.offset); - out.writeByte(p.type_index); - break; - // We don't need to worry abut these - case METHOD_RETURN_GENERIC_OR_ARRAY: - case FIELD_GENERIC_OR_ARRAY: - break; - case UNKNOWN: - break; - default: - throw new AssertionError("unknown type: " + p); - } - - // Append location data for generics/arrays. - if (p.type.hasLocation()) { - out.writeShort(p.location.size()); - for (int i : p.location) - out.writeByte((byte)i); - } - } } }
--- a/src/share/classes/com/sun/tools/classfile/ConstantPool.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/classfile/ConstantPool.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -114,6 +114,54 @@ public static final int CONSTANT_Methodref = 10; public static final int CONSTANT_InterfaceMethodref = 11; public static final int CONSTANT_NameAndType = 12; + public static final int CONSTANT_MethodHandle = 15; + public static final int CONSTANT_MethodType = 16; + public static final int CONSTANT_InvokeDynamic = 18; + + public static enum RefKind { + REF_getField(1, "getfield"), + REF_getStatic(2, "getstatic"), + REF_putField(3, "putfield"), + REF_putStatic(4, "putstatic"), + REF_invokeVirtual(5, "invokevirtual"), + REF_invokeStatic(6, "invokestatic"), + REF_invokeSpecial(7, "invokespecial"), + REF_newInvokeSpecial(8, "newinvokespecial"), + REF_invokeInterface(9, "invokeinterface"); + + public final int tag; + public final String name; + + RefKind(int tag, String name) { + this.tag = tag; + this.name = name; + } + + static RefKind getRefkind(int tag) { + switch(tag) { + case 1: + return REF_getField; + case 2: + return REF_getStatic; + case 3: + return REF_putField; + case 4: + return REF_putStatic; + case 5: + return REF_invokeVirtual; + case 6: + return REF_invokeStatic; + case 7: + return REF_invokeSpecial; + case 8: + return REF_newInvokeSpecial; + case 9: + return REF_invokeInterface; + default: + return null; + } + } + } ConstantPool(ClassReader cr) throws IOException, InvalidEntry { int count = cr.readUnsignedShort(); @@ -146,11 +194,23 @@ pool[i] = new CONSTANT_InterfaceMethodref_info(this, cr); break; + case CONSTANT_InvokeDynamic: + pool[i] = new CONSTANT_InvokeDynamic_info(this, cr); + break; + case CONSTANT_Long: pool[i] = new CONSTANT_Long_info(cr); i++; break; + case CONSTANT_MethodHandle: + pool[i] = new CONSTANT_MethodHandle_info(this, cr); + break; + + case CONSTANT_MethodType: + pool[i] = new CONSTANT_MethodType_info(this, cr); + break; + case CONSTANT_Methodref: pool[i] = new CONSTANT_Methodref_info(this, cr); break; @@ -279,9 +339,12 @@ R visitFloat(CONSTANT_Float_info info, P p); R visitInteger(CONSTANT_Integer_info info, P p); R visitInterfaceMethodref(CONSTANT_InterfaceMethodref_info info, P p); + R visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, P p); R visitLong(CONSTANT_Long_info info, P p); R visitNameAndType(CONSTANT_NameAndType_info info, P p); R visitMethodref(CONSTANT_Methodref_info info, P p); + R visitMethodHandle(CONSTANT_MethodHandle_info info, P p); + R visitMethodType(CONSTANT_MethodType_info info, P p); R visitString(CONSTANT_String_info info, P p); R visitUtf8(CONSTANT_Utf8_info info, P p); } @@ -548,6 +611,44 @@ } } + public static class CONSTANT_InvokeDynamic_info extends CPInfo { + CONSTANT_InvokeDynamic_info(ConstantPool cp, ClassReader cr) throws IOException { + super(cp); + bootstrap_method_attr_index = cr.readUnsignedShort(); + name_and_type_index = cr.readUnsignedShort(); + } + + public CONSTANT_InvokeDynamic_info(ConstantPool cp, int bootstrap_method_index, int name_and_type_index) { + super(cp); + this.bootstrap_method_attr_index = bootstrap_method_index; + this.name_and_type_index = name_and_type_index; + } + + public int getTag() { + return CONSTANT_InvokeDynamic; + } + + public int byteLength() { + return 5; + } + + @Override + public String toString() { + return "CONSTANT_InvokeDynamic_info[bootstrap_method_index: " + bootstrap_method_attr_index + ", name_and_type_index: " + name_and_type_index + "]"; + } + + public <R, D> R accept(Visitor<R, D> visitor, D data) { + return visitor.visitInvokeDynamic(this, data); + } + + public CONSTANT_NameAndType_info getNameAndTypeInfo() throws ConstantPoolException { + return cp.getNameAndTypeInfo(name_and_type_index); + } + + public final int bootstrap_method_attr_index; + public final int name_and_type_index; + } + public static class CONSTANT_Long_info extends CPInfo { CONSTANT_Long_info(ClassReader cr) throws IOException { value = cr.readLong(); @@ -582,6 +683,87 @@ public final long value; } + public static class CONSTANT_MethodHandle_info extends CPInfo { + CONSTANT_MethodHandle_info(ConstantPool cp, ClassReader cr) throws IOException { + super(cp); + reference_kind = RefKind.getRefkind(cr.readUnsignedByte()); + reference_index = cr.readUnsignedShort(); + } + + public CONSTANT_MethodHandle_info(ConstantPool cp, RefKind ref_kind, int member_index) { + super(cp); + this.reference_kind = ref_kind; + this.reference_index = member_index; + } + + public int getTag() { + return CONSTANT_MethodHandle; + } + + public int byteLength() { + return 4; + } + + @Override + public String toString() { + return "CONSTANT_MethodHandle_info[ref_kind: " + reference_kind + ", member_index: " + reference_index + "]"; + } + + public <R, D> R accept(Visitor<R, D> visitor, D data) { + return visitor.visitMethodHandle(this, data); + } + + public CPRefInfo getCPRefInfo() throws ConstantPoolException { + int expected = CONSTANT_Methodref; + int actual = cp.get(reference_index).getTag(); + // allow these tag types also: + switch (actual) { + case CONSTANT_Fieldref: + case CONSTANT_InterfaceMethodref: + expected = actual; + } + return (CPRefInfo) cp.get(reference_index, expected); + } + + public final RefKind reference_kind; + public final int reference_index; + } + + public static class CONSTANT_MethodType_info extends CPInfo { + CONSTANT_MethodType_info(ConstantPool cp, ClassReader cr) throws IOException { + super(cp); + descriptor_index = cr.readUnsignedShort(); + } + + public CONSTANT_MethodType_info(ConstantPool cp, int signature_index) { + super(cp); + this.descriptor_index = signature_index; + } + + public int getTag() { + return CONSTANT_MethodType; + } + + public int byteLength() { + return 3; + } + + @Override + public String toString() { + return "CONSTANT_MethodType_info[signature_index: " + descriptor_index + "]"; + } + + public <R, D> R accept(Visitor<R, D> visitor, D data) { + return visitor.visitMethodType(this, data); + } + + public String getType() throws ConstantPoolException { + return cp.getUTF8Value(descriptor_index); + } + + public final int descriptor_index; + } + public static class CONSTANT_Methodref_info extends CPRefInfo { CONSTANT_Methodref_info(ConstantPool cp, ClassReader cr) throws IOException { super(cp, cr, CONSTANT_Methodref); @@ -729,5 +911,4 @@ public final String value; } - }
--- a/src/share/classes/com/sun/tools/classfile/Dependencies.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/classfile/Dependencies.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011 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 @@ -626,10 +626,26 @@ return visitRef(info, p); } + public Void visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, Void p) { + return null; + } + public Void visitLong(CONSTANT_Long_info info, Void p) { return null; } + public Void visitMethodHandle(CONSTANT_MethodHandle_info info, Void p) { + return null; + } + + public Void visitMethodType(CONSTANT_MethodType_info info, Void p) { + return null; + } + + public Void visitMethodref(CONSTANT_Methodref_info info, Void p) { + return visitRef(info, p); + } + public Void visitNameAndType(CONSTANT_NameAndType_info info, Void p) { try { new Signature(info.type_index).getType(constant_pool).accept(this, null); @@ -639,10 +655,6 @@ } } - public Void visitMethodref(CONSTANT_Methodref_info info, Void p) { - return visitRef(info, p); - } - public Void visitString(CONSTANT_String_info info, Void p) { return null; }
--- a/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,612 +0,0 @@ -/* - * Copyright (c) 2009, 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. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.tools.classfile; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.List; -import java.util.Set; - -import static com.sun.tools.classfile.ExtendedAnnotation.TargetAttribute.*; - -/** - * See JSR 308 specification, section 4.1 - * - * <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. - * This code and its internal interfaces are subject to change or - * deletion without notice.</b> - */ -public class ExtendedAnnotation { - ExtendedAnnotation(ClassReader cr) throws IOException, Annotation.InvalidAnnotation { - annotation = new Annotation(cr); - position = read_position(cr); - } - - public ExtendedAnnotation(ConstantPool constant_pool, - Annotation annotation, Position position) { - this.annotation = annotation; - this.position = position; - } - - public int length() { - int n = annotation.length(); - n += position_length(position); - return n; - } - - public final Annotation annotation; - public final Position position; - - private static Position read_position(ClassReader cr) throws IOException, Annotation.InvalidAnnotation { - // Copied from ClassReader - int tag = (byte)cr.readUnsignedByte(); // cast to introduce signedness - if (!TargetType.isValidTargetTypeValue(tag)) - throw new Annotation.InvalidAnnotation("invalid type annotation target type value: " + tag); - - TargetType type = TargetType.fromTargetTypeValue(tag); - - Position position = new Position(); - position.type = type; - - switch (type) { - // type case - case TYPECAST: - case TYPECAST_GENERIC_OR_ARRAY: - // object creation - case INSTANCEOF: - case INSTANCEOF_GENERIC_OR_ARRAY: - // new expression - case NEW: - case NEW_GENERIC_OR_ARRAY: - position.offset = cr.readUnsignedShort(); - break; - // local variable - case LOCAL_VARIABLE: - case LOCAL_VARIABLE_GENERIC_OR_ARRAY: - int table_length = cr.readUnsignedShort(); - position.lvarOffset = new int[table_length]; - position.lvarLength = new int[table_length]; - position.lvarIndex = new int[table_length]; - for (int i = 0; i < table_length; ++i) { - position.lvarOffset[i] = cr.readUnsignedShort(); - position.lvarLength[i] = cr.readUnsignedShort(); - position.lvarIndex[i] = cr.readUnsignedShort(); - } - break; - // method receiver - case METHOD_RECEIVER: - // Do nothing - break; - // type parameters - case CLASS_TYPE_PARAMETER: - case METHOD_TYPE_PARAMETER: - position.parameter_index = cr.readUnsignedByte(); - break; - // type parameter bounds - case CLASS_TYPE_PARAMETER_BOUND: - case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - case METHOD_TYPE_PARAMETER_BOUND: - case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - position.parameter_index = cr.readUnsignedByte(); - position.bound_index = cr.readUnsignedByte(); - break; - // wildcards - case WILDCARD_BOUND: - case WILDCARD_BOUND_GENERIC_OR_ARRAY: - position.wildcard_position = read_position(cr); - break; - // Class extends and implements clauses - case CLASS_EXTENDS: - case CLASS_EXTENDS_GENERIC_OR_ARRAY: - int in = cr.readUnsignedShort(); - if (in == 0xFFFF) - in = -1; - position.type_index = in; - break; - // throws - case THROWS: - position.type_index = cr.readUnsignedShort(); - break; - case CLASS_LITERAL: - case CLASS_LITERAL_GENERIC_OR_ARRAY: - position.offset = cr.readUnsignedShort(); - break; - // method parameter: not specified - case METHOD_PARAMETER_GENERIC_OR_ARRAY: - position.parameter_index = cr.readUnsignedByte(); - break; - // method type argument: wasn't specified - case NEW_TYPE_ARGUMENT: - case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - case METHOD_TYPE_ARGUMENT: - case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - position.offset = cr.readUnsignedShort(); - position.type_index = cr.readUnsignedByte(); - break; - // We don't need to worry abut these - case METHOD_RETURN_GENERIC_OR_ARRAY: - case FIELD_GENERIC_OR_ARRAY: - break; - case UNKNOWN: - break; - default: - throw new AssertionError("Cannot be here"); - } - - if (type.hasLocation()) { - int len = cr.readUnsignedShort(); - List<Integer> loc = new ArrayList<Integer>(len); - for (int i = 0; i < len; i++) - loc.add(cr.readUnsignedByte()); - position.location = loc; - } - return position; - } - - private static int position_length(Position pos) { - int n = 0; - n += 1; // target_type - switch (pos.type) { - // type case - case TYPECAST: - case TYPECAST_GENERIC_OR_ARRAY: - // object creation - case INSTANCEOF: - case INSTANCEOF_GENERIC_OR_ARRAY: - // new expression - case NEW: - case NEW_GENERIC_OR_ARRAY: - n += 2; - break; - // local variable - case LOCAL_VARIABLE: - case LOCAL_VARIABLE_GENERIC_OR_ARRAY: - n += 2; // table_length; - int table_length = pos.lvarOffset.length; - n += 2 * table_length; // offset - n += 2 * table_length; // length; - n += 2 * table_length; // index - break; - // method receiver - case METHOD_RECEIVER: - // Do nothing - break; - // type parameters - case CLASS_TYPE_PARAMETER: - case METHOD_TYPE_PARAMETER: - n += 1; // parameter_index; - break; - // type parameter bounds - case CLASS_TYPE_PARAMETER_BOUND: - case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - case METHOD_TYPE_PARAMETER_BOUND: - case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - n += 1; // parameter_index - n += 1; // bound_index - break; - case WILDCARD_BOUND: - case WILDCARD_BOUND_GENERIC_OR_ARRAY: - n += position_length(pos.wildcard_position); - break; - // Class extends and implements clauses - case CLASS_EXTENDS: - case CLASS_EXTENDS_GENERIC_OR_ARRAY: - n += 2; // type_index - break; - // throws - case THROWS: - n += 2; // type_index - break; - case CLASS_LITERAL: - case CLASS_LITERAL_GENERIC_OR_ARRAY: - n += 1; // offset - break; - // method parameter: not specified - case METHOD_PARAMETER_GENERIC_OR_ARRAY: - n += 1; // parameter_index - break; - // method type argument: wasn't specified - case NEW_TYPE_ARGUMENT: - case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - case METHOD_TYPE_ARGUMENT: - case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - n += 2; // offset - n += 1; // type index - break; - // We don't need to worry abut these - case METHOD_RETURN_GENERIC_OR_ARRAY: - case FIELD_GENERIC_OR_ARRAY: - break; - case UNKNOWN: - break; - default: - } - - if (pos.type.hasLocation()) { - n += 2; // length - n += 1 * pos.location.size(); // actual array size - } - - return n; - } - - // Code duplicated from com.sun.tools.javac.code.TypeAnnotations.Position - public static class Position { - - public TargetType type = TargetType.UNKNOWN; - - // For generic/array types. - public List<Integer> location = new ArrayList<Integer>(); - - // For typecasts, type tests, new (and locals, as start_pc). - public int offset = -1; - - // For locals. - public int[] lvarOffset = null; - public int[] lvarLength = null; - public int[] lvarIndex = null; - - // For type parameter bound - public int bound_index = Integer.MIN_VALUE; - - // For type parameter and method parameter - public int parameter_index = Integer.MIN_VALUE; - - // For class extends, implements, and throws classes - public int type_index = Integer.MIN_VALUE; - - // For wildcards - public Position wildcard_position = null; - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append('['); - sb.append(type); - - switch (type) { - // type case - case TYPECAST: - case TYPECAST_GENERIC_OR_ARRAY: - // object creation - case INSTANCEOF: - case INSTANCEOF_GENERIC_OR_ARRAY: - // new expression - case NEW: - case NEW_GENERIC_OR_ARRAY: - case NEW_TYPE_ARGUMENT: - case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - sb.append(", offset = "); - sb.append(offset); - break; - // local variable - case LOCAL_VARIABLE: - case LOCAL_VARIABLE_GENERIC_OR_ARRAY: - sb.append(", {"); - for (int i = 0; i < lvarOffset.length; ++i) { - if (i != 0) sb.append("; "); - sb.append(", start_pc = "); - sb.append(lvarOffset[i]); - sb.append(", length = "); - sb.append(lvarLength[i]); - sb.append(", index = "); - sb.append(lvarIndex[i]); - } - sb.append("}"); - break; - // method receiver - case METHOD_RECEIVER: - // Do nothing - break; - // type parameters - case CLASS_TYPE_PARAMETER: - case METHOD_TYPE_PARAMETER: - sb.append(", param_index = "); - sb.append(parameter_index); - break; - // type parameters bound - case CLASS_TYPE_PARAMETER_BOUND: - case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - case METHOD_TYPE_PARAMETER_BOUND: - case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - sb.append(", param_index = "); - sb.append(parameter_index); - sb.append(", bound_index = "); - sb.append(bound_index); - break; - // wildcard - case WILDCARD_BOUND: - case WILDCARD_BOUND_GENERIC_OR_ARRAY: - sb.append(", wild_card = "); - sb.append(wildcard_position); - break; - // Class extends and implements clauses - case CLASS_EXTENDS: - case CLASS_EXTENDS_GENERIC_OR_ARRAY: - sb.append(", type_index = "); - sb.append(type_index); - break; - // throws - case THROWS: - sb.append(", type_index = "); - sb.append(type_index); - break; - case CLASS_LITERAL: - case CLASS_LITERAL_GENERIC_OR_ARRAY: - sb.append(", offset = "); - sb.append(offset); - break; - // method parameter: not specified - case METHOD_PARAMETER_GENERIC_OR_ARRAY: - sb.append(", param_index = "); - sb.append(parameter_index); - break; - // method type argument: wasn't specified - case METHOD_TYPE_ARGUMENT: - case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - sb.append(", offset = "); - sb.append(offset); - sb.append(", type_index = "); - sb.append(type_index); - break; - // We don't need to worry abut these - case METHOD_RETURN_GENERIC_OR_ARRAY: - case FIELD_GENERIC_OR_ARRAY: - break; - case UNKNOWN: - break; - default: - throw new AssertionError("unknown type: " + type); - } - - // Append location data for generics/arrays. - if (type.hasLocation()) { - sb.append(", location = ("); - sb.append(location); - sb.append(")"); - } - - sb.append(']'); - return sb.toString(); - } - } - - // Code duplicated from com.sun.tools.javac.comp.TargetType - public enum TargetType { - - /** For annotations on typecasts. */ - TYPECAST(0x00), - - /** For annotations on a type argument or nested array of a typecast. */ - TYPECAST_GENERIC_OR_ARRAY(0x01, HasLocation), - - /** For annotations on type tests. */ - INSTANCEOF(0x02), - - /** For annotations on a type argument or nested array of a type test. */ - INSTANCEOF_GENERIC_OR_ARRAY(0x03, HasLocation), - - /** For annotations on object creation expressions. */ - NEW(0x04), - - /** - * For annotations on a type argument or nested array of an object creation - * expression. - */ - NEW_GENERIC_OR_ARRAY(0x05, HasLocation), - - - /** For annotations on the method receiver. */ - METHOD_RECEIVER(0x06), - - // invalid location - // METHOD_RECEIVER_GENERIC_OR_ARRAY(0x07, HasLocation), - - /** For annotations on local variables. */ - LOCAL_VARIABLE(0x08), - - /** For annotations on a type argument or nested array of a local. */ - LOCAL_VARIABLE_GENERIC_OR_ARRAY(0x09, HasLocation), - - // already handled by regular annotations - // METHOD_RETURN(0x0A), - - /** - * For annotations on a type argument or nested array of a method return - * type. - */ - METHOD_RETURN_GENERIC_OR_ARRAY(0x0B, HasLocation), - - // already handled by regular annotations - // METHOD_PARAMETER(0x0C), - - /** For annotations on a type argument or nested array of a method parameter. */ - METHOD_PARAMETER_GENERIC_OR_ARRAY(0x0D, HasLocation), - - // already handled by regular annotations - // FIELD(0x0E), - - /** For annotations on a type argument or nested array of a field. */ - FIELD_GENERIC_OR_ARRAY(0x0F, HasLocation), - - /** For annotations on a bound of a type parameter of a class. */ - CLASS_TYPE_PARAMETER_BOUND(0x10, HasBound, HasParameter), - - /** - * For annotations on a type argument or nested array of a bound of a type - * parameter of a class. - */ - CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY(0x11, HasBound, HasLocation, HasParameter), - - /** For annotations on a bound of a type parameter of a method. */ - METHOD_TYPE_PARAMETER_BOUND(0x12, HasBound, HasParameter), - - /** - * For annotations on a type argument or nested array of a bound of a type - * parameter of a method. - */ - METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY(0x13, HasBound, HasLocation, HasParameter), - - /** For annotations on the type of an "extends" or "implements" clause. */ - CLASS_EXTENDS(0x14), - - /** For annotations on the inner type of an "extends" or "implements" clause. */ - CLASS_EXTENDS_GENERIC_OR_ARRAY(0x15, HasLocation), - - /** For annotations on a throws clause in a method declaration. */ - THROWS(0x16), - - // invalid location - // THROWS_GENERIC_OR_ARRAY(0x17, HasLocation), - - /** For annotations in type arguments of object creation expressions. */ - NEW_TYPE_ARGUMENT(0x18), - NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY(0x19, HasLocation), - - METHOD_TYPE_ARGUMENT(0x1A), - METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY(0x1B, HasLocation), - - WILDCARD_BOUND(0x1C, HasBound), - WILDCARD_BOUND_GENERIC_OR_ARRAY(0x1D, HasBound, HasLocation), - - CLASS_LITERAL(0x1E), - CLASS_LITERAL_GENERIC_OR_ARRAY(0x1F, HasLocation), - - METHOD_TYPE_PARAMETER(0x20, HasParameter), - - // invalid location - // METHOD_TYPE_PARAMETER_GENERIC_OR_ARRAY(0x21, HasLocation, HasParameter), - - CLASS_TYPE_PARAMETER(0x22, HasParameter), - - // invalid location - // CLASS_TYPE_PARAMETER_GENERIC_OR_ARRAY(0x23, HasLocation, HasParameter), - - /** For annotations with an unknown target. */ - UNKNOWN(-1); - - static final int MAXIMUM_TARGET_TYPE_VALUE = 0x22; - - private final int targetTypeValue; - private Set<TargetAttribute> flags; - - TargetType(int targetTypeValue, TargetAttribute... attrs) { - if (targetTypeValue < Byte.MIN_VALUE - || targetTypeValue > Byte.MAX_VALUE) - throw new AssertionError("attribute type value needs to be a byte: " + targetTypeValue); - this.targetTypeValue = (byte)targetTypeValue; - this.flags = EnumSet.noneOf(TargetAttribute.class); - for (TargetAttribute attr : attrs) - this.flags.add(attr); - } - - /** - * Returns whether or not this TargetType represents an annotation whose - * target is an inner type of a generic or array type. - * - * @return true if this TargetType represents an annotation on an inner - * type, false otherwise - */ - public boolean hasLocation() { - return flags.contains(HasLocation); - } - - public TargetType getGenericComplement() { - if (hasLocation()) - return this; - else - return fromTargetTypeValue(targetTypeValue() + 1); - } - - /** - * Returns whether or not this TargetType represents an annotation whose - * target has a parameter index. - * - * @return true if this TargetType has a parameter index, - * false otherwise - */ - public boolean hasParameter() { - return flags.contains(HasParameter); - } - - /** - * Returns whether or not this TargetType represents an annotation whose - * target is a type parameter bound. - * - * @return true if this TargetType represents an type parameter bound - * annotation, false otherwise - */ - public boolean hasBound() { - return flags.contains(HasBound); - } - - public int targetTypeValue() { - return this.targetTypeValue; - } - - private static TargetType[] targets = null; - - private static TargetType[] buildTargets() { - TargetType[] targets = new TargetType[MAXIMUM_TARGET_TYPE_VALUE + 1]; - TargetType[] alltargets = values(); - for (TargetType target : alltargets) - if (target.targetTypeValue >= 0) - targets[target.targetTypeValue] = target; - for (int i = 0; i <= MAXIMUM_TARGET_TYPE_VALUE; ++i) - if (targets[i] == null) - targets[i] = UNKNOWN; - return targets; - } - - public static boolean isValidTargetTypeValue(int tag) { - if (targets == null) - targets = buildTargets(); - - if (((byte)tag) == ((byte)UNKNOWN.targetTypeValue)) - return true; - - return (tag >= 0 && tag < targets.length); - } - - public static TargetType fromTargetTypeValue(int tag) { - if (targets == null) - targets = buildTargets(); - - if (((byte)tag) == ((byte)UNKNOWN.targetTypeValue)) - return UNKNOWN; - - if (tag < 0 || tag >= targets.length) - throw new IllegalArgumentException("Unknown TargetType: " + tag); - return targets[tag]; - } - } - - static enum TargetAttribute { - HasLocation, HasParameter, HasBound; - } -}
--- a/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleTypeAnnotations_attribute.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.tools.classfile; - -import java.io.IOException; - -/** - * See JSR 308 specification, section 4.1 - * - * <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. - * This code and its internal interfaces are subject to change or - * deletion without notice.</b> - */ -public class RuntimeInvisibleTypeAnnotations_attribute extends RuntimeTypeAnnotations_attribute { - RuntimeInvisibleTypeAnnotations_attribute(ClassReader cr, int name_index, int length) - throws IOException, Annotation.InvalidAnnotation { - super(cr, name_index, length); - } - - public RuntimeInvisibleTypeAnnotations_attribute(ConstantPool cp, ExtendedAnnotation[] annotations) - throws ConstantPoolException { - this(cp.getUTF8Index(Attribute.RuntimeInvisibleTypeAnnotations), annotations); - } - - public RuntimeInvisibleTypeAnnotations_attribute(int name_index, ExtendedAnnotation[] annotations) { - super(name_index, annotations); - } - - public <R, P> R accept(Visitor<R, P> visitor, P p) { - return visitor.visitRuntimeInvisibleTypeAnnotations(this, p); - } -}
--- a/src/share/classes/com/sun/tools/classfile/RuntimeTypeAnnotations_attribute.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.tools.classfile; - -import java.io.IOException; - -/** - * See JSR 308 specification, section 4 - * - * <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. - * This code and its internal interfaces are subject to change or - * deletion without notice.</b> - */ -public abstract class RuntimeTypeAnnotations_attribute extends Attribute { - protected RuntimeTypeAnnotations_attribute(ClassReader cr, int name_index, int length) - throws IOException, Annotation.InvalidAnnotation { - super(name_index, length); - int num_annotations = cr.readUnsignedShort(); - annotations = new ExtendedAnnotation[num_annotations]; - for (int i = 0; i < annotations.length; i++) - annotations[i] = new ExtendedAnnotation(cr); - } - - protected RuntimeTypeAnnotations_attribute(int name_index, ExtendedAnnotation[] annotations) { - super(name_index, length(annotations)); - this.annotations = annotations; - } - - private static int length(ExtendedAnnotation[] annos) { - int n = 2; - for (ExtendedAnnotation anno: annos) - n += anno.length(); - return n; - } - - public final ExtendedAnnotation[] annotations; -}
--- a/src/share/classes/com/sun/tools/classfile/RuntimeVisibleTypeAnnotations_attribute.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.tools.classfile; - -import java.io.IOException; - -/** - * See JSR 308 specification, section 4.1 - * - * <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. - * This code and its internal interfaces are subject to change or - * deletion without notice.</b> - */ -public class RuntimeVisibleTypeAnnotations_attribute extends RuntimeTypeAnnotations_attribute { - RuntimeVisibleTypeAnnotations_attribute(ClassReader cr, int name_index, int length) - throws IOException, Annotation.InvalidAnnotation { - super(cr, name_index, length); - } - - public RuntimeVisibleTypeAnnotations_attribute(ConstantPool cp, ExtendedAnnotation[] annotations) - throws ConstantPoolException { - this(cp.getUTF8Index(Attribute.RuntimeVisibleTypeAnnotations), annotations); - } - - public RuntimeVisibleTypeAnnotations_attribute(int name_index, ExtendedAnnotation[] annotations) { - super(name_index, annotations); - } - - public <R, P> R accept(Visitor<R, P> visitor, P p) { - return visitor.visitRuntimeVisibleTypeAnnotations(this, p); - } -}
--- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java Sat Apr 09 00:45:10 2011 +0100 @@ -755,22 +755,30 @@ if (!isInline() && !endsWithNewLine(contentBuilder)) contentBuilder.append(DocletConstants.NL); String tagString = htmlTag.toString(); - contentBuilder.append("<" + tagString); + contentBuilder.append("<"); + contentBuilder.append(tagString); Iterator<HtmlAttr> iterator = attrs.keySet().iterator(); HtmlAttr key; String value = ""; while (iterator.hasNext()) { key = iterator.next(); value = attrs.get(key); - contentBuilder.append(" " + key.toString()); - if (!value.isEmpty()) - contentBuilder.append("=\"" + value + "\""); + contentBuilder.append(" "); + contentBuilder.append(key.toString()); + if (!value.isEmpty()) { + contentBuilder.append("=\""); + contentBuilder.append(value); + contentBuilder.append("\""); + } } contentBuilder.append(">"); for (Content c : content) c.write(contentBuilder); - if (htmlTag.endTagRequired()) - contentBuilder.append("</" + tagString + ">"); + if (htmlTag.endTagRequired()) { + contentBuilder.append("</"); + contentBuilder.append(tagString); + contentBuilder.append(">"); + } if (!isInline()) contentBuilder.append(DocletConstants.NL); }
--- a/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,224 +1,225 @@ -doclet.build_version=\u6a19\u6e96 Doclet \u30d0\u30fc\u30b8\u30e7\u30f3 {0} -doclet.Contents=\u30b3\u30f3\u30c6\u30f3\u30c4 +doclet.build_version=\u6A19\u6E96Doclet\u30D0\u30FC\u30B8\u30E7\u30F3{0} +doclet.Contents=\u30B3\u30F3\u30C6\u30F3\u30C4 doclet.Overview=\u6982\u8981 -doclet.Window_Overview=\u6982\u8981\u30ea\u30b9\u30c8 +doclet.Window_Overview=\u6982\u8981\u30EA\u30B9\u30C8 doclet.Window_Overview_Summary=\u6982\u8981 -doclet.Package=\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.All_Packages=\u3059\u3079\u3066\u306e\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.Tree=\u968e\u5c64\u30c4\u30ea\u30fc -doclet.Class_Hierarchy=\u30af\u30e9\u30b9\u968e\u5c64 -doclet.Window_Class_Hierarchy=\u30af\u30e9\u30b9\u968e\u5c64 -doclet.Interface_Hierarchy=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u968e\u5c64 -doclet.Enum_Hierarchy=\u5217\u6319\u578b\u968e\u5c64 -doclet.Annotation_Type_Hierarchy=\u6ce8\u91c8\u578b\u968e\u5c64 -doclet.Prev=\u524d -doclet.Next=\u6b21 -doclet.Prev_Class=\u524d\u306e\u30af\u30e9\u30b9 -doclet.Next_Class=\u6b21\u306e\u30af\u30e9\u30b9 -doclet.Prev_Package=\u524d\u306e\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.Next_Package=\u6b21\u306e\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.Prev_Letter=\u524d\u306e\u6587\u5b57 -doclet.Next_Letter=\u6b21\u306e\u6587\u5b57 -doclet.Show_Lists=\u30ea\u30b9\u30c8\u306e\u8868\u793a -doclet.Hide_Lists=\u30ea\u30b9\u30c8\u306e\u975e\u8868\u793a -doclet.Href_Class_Title={0} \u5185\u306e\u30af\u30e9\u30b9 -doclet.Href_Interface_Title={0} \u5185\u306e\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.Href_Annotation_Title={0} \u5185\u306e\u6ce8\u91c8 -doclet.Href_Enum_Title={0} \u5185\u306e\u5217\u6319\u578b -doclet.Href_Type_Param_Title={0} \u5185\u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf -doclet.Href_Class_Or_Interface_Title={0} \u5185\u306e\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.Summary=\u6982\u8981: -doclet.Detail=\u8a73\u7d30: -doclet.navNested=\u5165\u308c\u5b50 -doclet.navAnnotationTypeOptionalMember=\u30aa\u30d7\u30b7\u30e7\u30f3 -doclet.navAnnotationTypeRequiredMember=\u5fc5\u9808 -doclet.navAnnotationTypeMember=\u8981\u7d20 -doclet.navField=\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.navEnum=\u5217\u6319\u578b\u5b9a\u6570 -doclet.navConstructor=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -doclet.navMethod=\u30e1\u30bd\u30c3\u30c9 -doclet.navFactoryMethod=\u30d5\u30a1\u30af\u30c8\u30ea -doclet.Index=\u7d22\u5f15 -doclet.Window_Single_Index=\u7d22\u5f15 -doclet.Window_Split_Index={0} \u306e\u7d22\u5f15 -doclet.Help=\u30d8\u30eb\u30d7 -doclet.Skip_navigation_links=\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30ea\u30f3\u30af\u3092\u30b9\u30ad\u30c3\u30d7 -doclet.None=\u306a\u3057 -doclet.CLASSES=\u30af\u30e9\u30b9 -doclet.MEMBERS=\u30e1\u30f3\u30d0 -doclet.NONE=\u306a\u3057 -doclet.Factory_Method_Detail=static \u30d5\u30a1\u30af\u30c8\u30ea\u30e1\u30bd\u30c3\u30c9\u306e\u8a73\u7d30 -doclet.navDeprecated=\u975e\u63a8\u5968 API -doclet.Deprecated_List=\u975e\u63a8\u5968 API \u306e\u30ea\u30b9\u30c8 -doclet.Window_Deprecated_List=\u975e\u63a8\u5968 API \u306e\u30ea\u30b9\u30c8 -doclet.Note_0_is_deprecated=\u6ce8: {0} \u306f\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -doclet.Overrides=\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9: -doclet.in_class=\u30af\u30e9\u30b9 {1} \u5185\u306e {0} -doclet.0_Fields_and_Methods="{0}" \u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u30e1\u30bd\u30c3\u30c9 -doclet.Index_of_Fields_and_Methods=\u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u30e1\u30bd\u30c3\u30c9\u306e\u7d22\u5f15 -doclet.Static_variable_in={0} \u306e static \u5909\u6570 -doclet.Variable_in={0} \u306e\u5909\u6570 -doclet.Constructor_for={0} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -doclet.Static_method_in={0} \u306e static \u30e1\u30bd\u30c3\u30c9 -doclet.Method_in={0} \u306e\u30e1\u30bd\u30c3\u30c9 -doclet.throws=\u30b9\u30ed\u30fc -doclet.package=\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.MalformedURL=\u4e0d\u6b63\u306a URL: {0} -doclet.File_error=\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f\u30a8\u30e9\u30fc: {0} -doclet.URL_error=URL \u53d6\u308a\u51fa\u3057\u30a8\u30e9\u30fc: {0} -doclet.No_Package_Comment_File=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306e Package.Comment \u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -doclet.No_Source_For_Class=\u30af\u30e9\u30b9 {0} \u306e\u30bd\u30fc\u30b9\u60c5\u5831\u304c\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002 -doclet.see.class_or_package_not_found=\u30bf\u30b0 {0}: \u53c2\u7167\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: {1} -doclet.see.malformed_tag={0} \u30bf\u30b0: \u4e0d\u6b63\u306a {1} \u30bf\u30b0 -doclet.Inherited_API_Summary=\u7d99\u627f\u3055\u308c\u305f API \u306e\u6982\u8981 -doclet.Deprecated_API=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044 API -doclet.Deprecated_Classes=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30af\u30e9\u30b9 -doclet.Deprecated_Enums=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u5217\u6319\u578b -doclet.Deprecated_Interfaces=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.Deprecated_Exceptions=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u4f8b\u5916 -doclet.Deprecated_Annotation_Types=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u6ce8\u91c8\u578b -doclet.Deprecated_Errors=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30a8\u30e9\u30fc -doclet.Deprecated_Fields=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.Deprecated_Constructors=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -doclet.Deprecated_Methods=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30e1\u30bd\u30c3\u30c9 -doclet.Deprecated_Enum_Constants=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u5217\u6319\u578b\u5b9a\u6570 -doclet.Deprecated_Annotation_Type_Members=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u6ce8\u91c8\u578b\u306e\u8981\u7d20 -doclet.deprecated_classes=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30af\u30e9\u30b9 -doclet.deprecated_enums=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u5217\u6319\u578b -doclet.deprecated_interfaces=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.deprecated_exceptions=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u4f8b\u5916 -doclet.deprecated_annotation_types=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u6ce8\u91c8\u578b -doclet.deprecated_errors=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30a8\u30e9\u30fc -doclet.deprecated_fields=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.deprecated_constructors=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -doclet.deprecated_methods=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30e1\u30bd\u30c3\u30c9 -doclet.deprecated_enum_constants=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u5217\u6319\u578b\u5b9a\u6570 -doclet.deprecated_annotation_type_members=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u6ce8\u91c8\u578b\u306e\u8981\u7d20 -doclet.Frame_Output=\u30d5\u30ec\u30fc\u30e0\u51fa\u529b -doclet.Docs_generated_by_Javadoc=\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f javadoc \u3067\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -doclet.Generated_Docs_Untitled=\u751f\u6210\u3055\u308c\u305f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 (\u30bf\u30a4\u30c8\u30eb\u306a\u3057) -doclet.Blank=\u30d6\u30e9\u30f3\u30af -doclet.Other_Packages=\u305d\u306e\u4ed6\u306e\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.Package_Description=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306e\u8aac\u660e -doclet.Description=\u8aac\u660e -doclet.Specified_By=\u5b9a\u7fa9: -doclet.in_interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {1} \u5185\u306e {0} -doclet.Subclasses=\u76f4\u7cfb\u306e\u65e2\u77e5\u306e\u30b5\u30d6\u30af\u30e9\u30b9: -doclet.Subinterfaces=\u65e2\u77e5\u306e\u30b5\u30d6\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u4e00\u89a7: -doclet.Implementing_Classes=\u65e2\u77e5\u306e\u5b9f\u88c5\u30af\u30e9\u30b9\u306e\u4e00\u89a7: -doclet.also=\u540c\u69d8\u306b -doclet.Option=\u30aa\u30d7\u30b7\u30e7\u30f3 -doclet.Or=\u307e\u305f\u306f -doclet.Frames=\u30d5\u30ec\u30fc\u30e0\u3042\u308a -doclet.FRAMES=\u30d5\u30ec\u30fc\u30e0\u3042\u308a -doclet.NO_FRAMES=\u30d5\u30ec\u30fc\u30e0\u306a\u3057 -doclet.Package_Hierarchies=\u30d1\u30c3\u30b1\u30fc\u30b8\u968e\u5c64: -doclet.Hierarchy_For_Package=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306e\u968e\u5c64 -doclet.Source_Code=\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9: -doclet.Hierarchy_For_All_Packages=\u3059\u3079\u3066\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u968e\u5c64 -doclet.Cannot_handle_no_packages=\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u51e6\u7406\u3067\u304d\u307e\u305b\u3093\u3002 -doclet.Frame_Alert=\u30d5\u30ec\u30fc\u30e0\u95a2\u9023\u306e\u8b66\u544a -doclet.Overview-Member-Frame=\u6982\u8981\u30e1\u30f3\u30d0\u30d5\u30ec\u30fc\u30e0 -doclet.Frame_Warning_Message=\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u30d5\u30ec\u30fc\u30e0\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u4f5c\u3089\u308c\u3066\u3044\u307e\u3059\u3002\u30d5\u30ec\u30fc\u30e0\u3092\u8868\u793a\u3067\u304d\u306a\u3044 Web \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u5834\u5408\u306b\u3053\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002 -doclet.Non_Frame_Version=\u30d5\u30ec\u30fc\u30e0\u306a\u3057\u306e\u30d0\u30fc\u30b8\u30e7\u30f3 -doclet.Frame_Version=\u30d5\u30ec\u30fc\u30e0\u3042\u308a\u306e\u30d0\u30fc\u30b8\u30e7\u30f3 -doclet.Link_To=\u30ea\u30f3\u30af\u5148 -doclet.Following_From_Class=\u30af\u30e9\u30b9 {0} \u304b\u3089\u30b3\u30d4\u30fc\u3055\u308c\u305f\u30bf\u30b0: -doclet.Following_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u304b\u3089\u30b3\u30d4\u30fc\u3055\u308c\u305f\u30bf\u30b0: -doclet.Description_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u306e\u8a18\u8ff0: -doclet.Description_From_Class=\u30af\u30e9\u30b9 {0} \u306e\u8a18\u8ff0: -doclet.Standard_doclet_invoked=\u6a19\u6e96\u306e doclet \u304c\u8d77\u52d5\u3055\u308c\u307e\u3057\u305f... -doclet.No_Non_Deprecated_Classes_To_Document=\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3059\u308b\u975e\u63a8\u5968\u4ee5\u5916\u306e\u30af\u30e9\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -doclet.Interfaces_Italic=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 (\u30a4\u30bf\u30ea\u30c3\u30af) -doclet.Enclosing_Class=\u542b\u307e\u308c\u3066\u3044\u308b\u30af\u30e9\u30b9: -doclet.Enclosing_Interface=\u542b\u307e\u308c\u3066\u3044\u308b\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9: -doclet.Help_title=API \u30d8\u30eb\u30d7 -doclet.Window_Help_title=API \u30d8\u30eb\u30d7 -doclet.Help_line_1=API \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u69cb\u6210 -doclet.Help_line_2=\u3053\u306e API (Application Programming Interface) \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u306f\u3001\u6b21\u306b\u8aac\u660e\u3059\u308b\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u306b\u3042\u308b\u9805\u76ee\u306b\u5bfe\u5fdc\u3059\u308b\u30da\u30fc\u30b8\u304c\u542b\u307e\u308c\u307e\u3059\u3002 -doclet.Help_line_3={0} \u30da\u30fc\u30b8\u306f API \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30d5\u30ed\u30f3\u30c8\u30da\u30fc\u30b8\u3067\u3001\u5404\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6982\u8981\u3092\u542b\u3080\u5168\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e00\u89a7\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u4e00\u9023\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6982\u8981\u8aac\u660e\u3082\u8868\u793a\u3055\u308c\u307e\u3059\u3002 -doclet.Help_line_4=\u5404\u30d1\u30c3\u30b1\u30fc\u30b8\u306f\u3001\u305d\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30af\u30e9\u30b9\u3068\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3078\u306e\u30ea\u30f3\u30af\u3092\u542b\u3080\u30da\u30fc\u30b8\u3092\u6301\u3061\u307e\u3059\u3002\u3053\u306e\u30da\u30fc\u30b8\u306f 4 \u3064\u306e\u30ab\u30c6\u30b4\u30ea\u3067\u69cb\u6210\u3055\u308c\u307e\u3059: -doclet.Help_line_5=\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.Help_line_6=\u5404\u30af\u30e9\u30b9\u3001\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3001\u5165\u308c\u5b50\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u5165\u308c\u5b50\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306f\u500b\u5225\u306e\u30da\u30fc\u30b8\u3092\u6301\u3061\u307e\u3059\u3002\u5404\u30da\u30fc\u30b8\u306b\u306f\u6b21\u306e\u3088\u3046\u306b\u3001\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u8aac\u660e\u3068\u3001\u6982\u8981\u30c6\u30fc\u30d6\u30eb\u3001\u304a\u3088\u3073\u30e1\u30f3\u30d0\u306e\u8a73\u7d30\u8aac\u660e\u304c\u542b\u307e\u308c\u307e\u3059: -doclet.Help_line_7=\u30af\u30e9\u30b9\u968e\u5c64\u8868\u793a -doclet.Help_line_8=\u76f4\u7cfb\u306e\u30b5\u30d6\u30af\u30e9\u30b9 -doclet.Help_line_9=\u65e2\u77e5\u306e\u30b5\u30d6\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u4e00\u89a7 -doclet.Help_line_10=\u65e2\u77e5\u306e\u5b9f\u88c5\u30af\u30e9\u30b9\u306e\u4e00\u89a7 -doclet.Help_line_11=\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u5ba3\u8a00 -doclet.Help_line_12=\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u8a18\u8ff0 -doclet.Help_line_13=\u5404\u6982\u8981\u30a8\u30f3\u30c8\u30ea\u306b\u306f\u3001\u305d\u306e\u9805\u76ee\u306e\u8a73\u7d30\u306a\u8a18\u8ff0\u306e\u4e2d\u304b\u3089 1 \u884c\u76ee\u306e\u6587\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u8a73\u7d30\u306a\u8a18\u8ff0\u306f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306b\u73fe\u308f\u308c\u308b\u9806\u306b\u4e26\u3079\u3089\u308c\u307e\u3059\u304c\u3001\u6982\u8981\u30a8\u30f3\u30c8\u30ea\u306f\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u9806\u306b\u4e26\u3079\u3089\u308c\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u3063\u3066\u3001\u30d7\u30ed\u30b0\u30e9\u30de\u304c\u8a2d\u5b9a\u3057\u305f\u8ad6\u7406\u7684\u306a\u30b0\u30eb\u30fc\u30d7\u5206\u3051\u304c\u4fdd\u6301\u3055\u308c\u307e\u3059\u3002 -doclet.Help_line_14=\u4f7f\u7528 -doclet.Help_line_15=\u5404\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3055\u308c\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306f\u305d\u308c\u305e\u308c [\u4f7f\u7528] \u30da\u30fc\u30b8\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u3001\u3069\u306e\u3088\u3046\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u30e1\u30bd\u30c3\u30c9\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3001\u304a\u3088\u3073\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u3001\u7279\u5b9a\u306e\u30af\u30e9\u30b9\u307e\u305f\u306f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e00\u90e8\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b\u304c\u8a18\u8ff0\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u30af\u30e9\u30b9 A \u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 A \u306e\u5834\u5408\u3001\u305d\u306e [\u4f7f\u7528] \u30da\u30fc\u30b8\u306b\u306f\u3001A \u306e\u30b5\u30d6\u30af\u30e9\u30b9\u3001A \u3068\u3057\u3066\u5ba3\u8a00\u3055\u308c\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u3001A \u3092\u8fd4\u3059\u30e1\u30bd\u30c3\u30c9\u3001\u304a\u3088\u3073\u3001\u578b A \u3092\u6301\u3064\u30e1\u30bd\u30c3\u30c9\u3068\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u3053\u306e\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001\u307e\u305a\u305d\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306b\u79fb\u52d5\u3057\u3001\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u306e [\u4f7f\u7528] \u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -doclet.Help_line_16=\u968e\u5c64\u30c4\u30ea\u30fc (\u30af\u30e9\u30b9\u968e\u5c64) -doclet.Help_line_17_with_tree_link=\u3059\u3079\u3066\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u306f {0} \u30da\u30fc\u30b8\u304c\u3042\u308a\u3001\u3055\u3089\u306b\u5404\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u968e\u5c64\u304c\u3042\u308a\u307e\u3059\u3002\u5404\u968e\u5c64\u30da\u30fc\u30b8\u306f\u3001\u30af\u30e9\u30b9\u306e\u30ea\u30b9\u30c8\u3068\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u30ea\u30b9\u30c8\u3092\u542b\u307f\u307e\u3059\u3002\u30af\u30e9\u30b9\u306f <code>java.lang.Object</code> \u3092\u958b\u59cb\u70b9\u3068\u3059\u308b\u7d99\u627f\u69cb\u9020\u3067\u7de8\u6210\u3055\u308c\u307e\u3059\u3002\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306f\u3001<code>java.lang.Object</code> \u304b\u3089\u306f\u7d99\u627f\u3057\u307e\u305b\u3093\u3002 -doclet.Help_line_18=\u6982\u8981\u30da\u30fc\u30b8\u3092\u8868\u793a\u3057\u3066\u3044\u308b\u3068\u304d\u306b [\u30c4\u30ea\u30fc] \u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u5168\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u968e\u5c64\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002 -doclet.Help_line_19=\u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u8868\u793a\u3057\u3066\u3044\u308b\u3068\u304d\u306b [\u30c4\u30ea\u30fc] \u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u8a72\u5f53\u3059\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3060\u3051\u306e\u968e\u5c64\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002 -doclet.Help_line_20_with_deprecated_api_link={0} \u30da\u30fc\u30b8\u306f\u3001\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u3059\u3079\u3066\u306e API \u306e\u30ea\u30b9\u30c8\u3092\u8868\u793a\u3057\u307e\u3059\u3002\u975e\u63a8\u5968 API \u3068\u306f\u3001\u6a5f\u80fd\u6539\u826f\u306a\u3069\u306e\u7406\u7531\u304b\u3089\u4f7f\u7528\u3092\u304a\u52e7\u3081\u3067\u304d\u306a\u304f\u306a\u3063\u305f API \u306e\u3053\u3068\u3067\u3001\u901a\u5e38\u306f\u305d\u308c\u306b\u4ee3\u308f\u308b API \u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002\u975e\u63a8\u5968 API \u306f\u4eca\u5f8c\u306e\u5b9f\u88c5\u3067\u524a\u9664\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 -doclet.Help_line_21=\u7d22\u5f15 -doclet.Help_line_22={0} \u306b\u306f\u3001\u3059\u3079\u3066\u306e\u30af\u30e9\u30b9\u3001\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3001\u30e1\u30bd\u30c3\u30c9\u3001\u304a\u3088\u3073\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u9806\u306e\u30ea\u30b9\u30c8\u304c\u542b\u307e\u308c\u307e\u3059\u3002 -doclet.Help_line_23=\u524d/\u6b21 -doclet.Help_line_24=\u3053\u308c\u3089\u306e\u30ea\u30f3\u30af\u306b\u3088\u308a\u3001\u524d\u307e\u305f\u306f\u6b21\u306e\u30af\u30e9\u30b9\u3001\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u307e\u305f\u306f\u95a2\u9023\u30da\u30fc\u30b8\u3078\u79fb\u52d5\u3067\u304d\u307e\u3059\u3002 -doclet.Help_line_25=\u30d5\u30ec\u30fc\u30e0\u3042\u308a/\u30d5\u30ec\u30fc\u30e0\u306a\u3057 -doclet.Help_line_26=\u3053\u308c\u3089\u306e\u30ea\u30f3\u30af\u306f HTML \u30d5\u30ec\u30fc\u30e0\u3092\u8868\u793a\u3057\u305f\u308a\u96a0\u3057\u305f\u308a\u3057\u307e\u3059\u3002\u3059\u3079\u3066\u306e\u30da\u30fc\u30b8\u306f\u30d5\u30ec\u30fc\u30e0\u3042\u308a\u3067\u3082\u3001\u30d5\u30ec\u30fc\u30e0\u306a\u3057\u3067\u3082\u8868\u793a\u3067\u304d\u307e\u3059\u3002 -doclet.Help_line_27=\u76f4\u5217\u5316\u53ef\u80fd\u3001\u307e\u305f\u306f\u5916\u90e8\u5316\u53ef\u80fd\u306a\u5404\u30af\u30e9\u30b9\u306f\u3001\u76f4\u5217\u5316\u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u30e1\u30bd\u30c3\u30c9\u306e\u8a18\u8ff0\u3092\u542b\u307f\u307e\u3059\u3002\u3053\u306e\u60c5\u5831\u306f\u3001API \u3092\u4f7f\u7528\u3059\u308b\u958b\u767a\u8005\u3067\u306f\u306a\u304f\u3001\u518d\u5b9f\u88c5\u3092\u884c\u3046\u62c5\u5f53\u8005\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u306b\u30ea\u30f3\u30af\u304c\u306a\u3044\u5834\u5408\u3001\u76f4\u5217\u5316\u3055\u308c\u305f\u30af\u30e9\u30b9\u306b\u79fb\u52d5\u3057\u3066\u3001\u30af\u30e9\u30b9\u8a18\u8ff0\u306e [\u95a2\u9023\u9805\u76ee] \u30bb\u30af\u30b7\u30e7\u30f3\u306b\u3042\u308b [\u76f4\u5217\u5316\u3055\u308c\u305f\u5f62\u5f0f] \u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001\u3053\u306e\u60c5\u5831\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002 -doclet.Help_line_28=<a href="constant-values.html">\u300c\u5b9a\u6570\u30d5\u30a3\u30fc\u30eb\u30c9\u5024\u300d</a> \u30da\u30fc\u30b8\u306b\u306f\u3001static final \u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u305d\u306e\u5024\u306e\u30ea\u30b9\u30c8\u304c\u3042\u308a\u307e\u3059\u3002 -doclet.Help_line_29=\u3053\u306e\u30d8\u30eb\u30d7\u30d5\u30a1\u30a4\u30eb\u306f\u3001\u6a19\u6e96 doclet \u3092\u4f7f\u7528\u3057\u3066\u751f\u6210\u3055\u308c\u305f API \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u9069\u7528\u3055\u308c\u307e\u3059\u3002 -doclet.Help_enum_line_1=\u5404\u5217\u6319\u578b\u306b\u306f\u3001\u305d\u308c\u81ea\u8eab\u306e\u500b\u5225\u306e\u30da\u30fc\u30b8\u3068\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u304c\u3042\u308a\u307e\u3059: -doclet.Help_enum_line_2=\u5217\u6319\u578b\u306e\u5ba3\u8a00 -doclet.Help_enum_line_3=\u5217\u6319\u578b\u306e\u8aac\u660e -doclet.Help_annotation_type_line_1=\u5404\u6ce8\u91c8\u578b\u306b\u306f\u3001\u305d\u308c\u81ea\u8eab\u306e\u500b\u5225\u306e\u30da\u30fc\u30b8\u3068\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u304c\u3042\u308a\u307e\u3059: -doclet.Help_annotation_type_line_2=\u6ce8\u91c8\u578b\u306e\u5ba3\u8a00 -doclet.Help_annotation_type_line_3=\u6ce8\u91c8\u578b\u306e\u8aac\u660e +doclet.Package=\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.All_Packages=\u3059\u3079\u3066\u306E\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.Tree=\u968E\u5C64\u30C4\u30EA\u30FC +doclet.Class_Hierarchy=\u30AF\u30E9\u30B9\u968E\u5C64 +doclet.Window_Class_Hierarchy=\u30AF\u30E9\u30B9\u968E\u5C64 +doclet.Interface_Hierarchy=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u968E\u5C64 +doclet.Enum_Hierarchy=\u5217\u6319\u578B\u968E\u5C64 +doclet.Annotation_Type_Hierarchy=\u6CE8\u91C8\u578B\u968E\u5C64 +doclet.Prev=\u524D +doclet.Next=\u6B21 +doclet.Prev_Class=PREV CLASS +doclet.Next_Class=NEXT CLASS +doclet.Prev_Package=PREV PACKAGE +doclet.Next_Package=NEXT PACKAGE +doclet.Prev_Letter=PREV LETTER +doclet.Next_Letter=NEXT LETTER +doclet.Show_Lists=SHOW LISTS +doclet.Hide_Lists=HIDE LISTS +doclet.Href_Class_Title={0}\u5185\u306E\u30AF\u30E9\u30B9 +doclet.Href_Interface_Title={0}\u5185\u306E\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.Href_Annotation_Title={0}\u5185\u306E\u6CE8\u91C8 +doclet.Href_Enum_Title={0}\u5185\u306E\u5217\u6319\u578B +doclet.Href_Type_Param_Title={0}\u5185\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF +doclet.Href_Class_Or_Interface_Title={0}\u5185\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.Summary=SUMMARY: +doclet.Detail=DETAIL: +doclet.navNested=NESTED +doclet.navAnnotationTypeOptionalMember=OPTIONAL +doclet.navAnnotationTypeRequiredMember=REQUIRED +doclet.navAnnotationTypeMember=ELEMENT +doclet.navField=FIELD +doclet.navEnum=ENUM CONSTANTS +doclet.navConstructor=CONSTR +doclet.navMethod=METHOD +doclet.navFactoryMethod=FACTORY +doclet.Index=\u7D22\u5F15 +doclet.Window_Single_Index=\u7D22\u5F15 +doclet.Window_Split_Index={0}\u306E\u7D22\u5F15 +doclet.Help=\u30D8\u30EB\u30D7 +doclet.Skip_navigation_links=\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30EA\u30F3\u30AF\u3092\u30B9\u30AD\u30C3\u30D7 +doclet.None=\u306A\u3057 +doclet.CLASSES=CLASSES +doclet.MEMBERS=MEMBERS +doclet.NONE=\u306A\u3057 +doclet.Factory_Method_Detail=static\u30D5\u30A1\u30AF\u30C8\u30EA\u30FB\u30E1\u30BD\u30C3\u30C9\u306E\u8A73\u7D30 +doclet.navDeprecated=\u975E\u63A8\u5968 +doclet.Deprecated_List=\u975E\u63A8\u5968API\u306E\u30EA\u30B9\u30C8 +doclet.Window_Deprecated_List=\u975E\u63A8\u5968API\u306E\u30EA\u30B9\u30C8 +doclet.Note_0_is_deprecated=\u6CE8\u610F: {0}\u306F\u63A8\u5968\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +doclet.Overrides=\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9: +doclet.in_class=\u30AF\u30E9\u30B9{1}\u5185\u306E{0} +doclet.0_Fields_and_Methods="{0}"\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30E1\u30BD\u30C3\u30C9 +doclet.Index_of_Fields_and_Methods=\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30E1\u30BD\u30C3\u30C9\u306E\u7D22\u5F15 +doclet.Static_variable_in={0}\u306Estatic\u5909\u6570 +doclet.Variable_in={0}\u306E\u5909\u6570 +doclet.Constructor_for={0}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +doclet.Static_method_in={0}\u306Estatic\u30E1\u30BD\u30C3\u30C9 +doclet.Method_in={0}\u306E\u30E1\u30BD\u30C3\u30C9 +doclet.throws=\u30B9\u30ED\u30FC +doclet.package=\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.MalformedURL=\u4E0D\u6B63\u306AURL: {0} +doclet.File_error=\u30D5\u30A1\u30A4\u30EB\u8AAD\u8FBC\u307F\u30A8\u30E9\u30FC: {0} +doclet.URL_error=URL\u53D6\u51FA\u3057\u30A8\u30E9\u30FC: {0} +doclet.No_Package_Comment_File=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306EPackage.Comment\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 +doclet.No_Source_For_Class=\u30AF\u30E9\u30B9{0}\u306E\u30BD\u30FC\u30B9\u60C5\u5831\u304C\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +doclet.see.class_or_package_not_found=\u30BF\u30B0{0}: \u53C2\u7167\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {1} +doclet.see.class_or_package_not_accessible=\u30BF\u30B0{0}: \u53C2\u7167\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093: {1} +doclet.see.malformed_tag={0}\u30BF\u30B0: \u4E0D\u6B63\u306A{1}\u30BF\u30B0 +doclet.Inherited_API_Summary=\u7D99\u627F\u3055\u308C\u305FAPI\u306E\u6982\u8981 +doclet.Deprecated_API=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044API +doclet.Deprecated_Classes=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30AF\u30E9\u30B9 +doclet.Deprecated_Enums=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u5217\u6319\u578B +doclet.Deprecated_Interfaces=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.Deprecated_Exceptions=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u4F8B\u5916 +doclet.Deprecated_Annotation_Types=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u6CE8\u91C8\u578B +doclet.Deprecated_Errors=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30A8\u30E9\u30FC +doclet.Deprecated_Fields=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.Deprecated_Constructors=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +doclet.Deprecated_Methods=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30E1\u30BD\u30C3\u30C9 +doclet.Deprecated_Enum_Constants=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u5217\u6319\u578B\u5B9A\u6570 +doclet.Deprecated_Annotation_Type_Members=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u6CE8\u91C8\u578B\u306E\u8981\u7D20 +doclet.deprecated_classes=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30AF\u30E9\u30B9 +doclet.deprecated_enums=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u5217\u6319\u578B +doclet.deprecated_interfaces=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.deprecated_exceptions=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u4F8B\u5916 +doclet.deprecated_annotation_types=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u6CE8\u91C8\u578B +doclet.deprecated_errors=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30A8\u30E9\u30FC +doclet.deprecated_fields=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.deprecated_constructors=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +doclet.deprecated_methods=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30E1\u30BD\u30C3\u30C9 +doclet.deprecated_enum_constants=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u5217\u6319\u578B\u5B9A\u6570 +doclet.deprecated_annotation_type_members=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u6CE8\u91C8\u578B\u306E\u8981\u7D20 +doclet.Frame_Output=\u30D5\u30EC\u30FC\u30E0\u51FA\u529B +doclet.Docs_generated_by_Javadoc=\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306Fjavadoc\u3067\u751F\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +doclet.Generated_Docs_Untitled=\u751F\u6210\u3055\u308C\u305F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8(\u30BF\u30A4\u30C8\u30EB\u306A\u3057) +doclet.Blank=\u30D6\u30E9\u30F3\u30AF +doclet.Other_Packages=\u305D\u306E\u4ED6\u306E\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.Package_Description=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306E\u8AAC\u660E +doclet.Description=\u8AAC\u660E +doclet.Specified_By=\u5B9A\u7FA9: +doclet.in_interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{1}\u5185\u306E{0} +doclet.Subclasses=\u76F4\u7CFB\u306E\u65E2\u77E5\u306E\u30B5\u30D6\u30AF\u30E9\u30B9: +doclet.Subinterfaces=\u65E2\u77E5\u306E\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8: +doclet.Implementing_Classes=\u65E2\u77E5\u306E\u5B9F\u88C5\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8: +doclet.also=\u540C\u69D8\u306B +doclet.Option=\u30AA\u30D7\u30B7\u30E7\u30F3 +doclet.Or=\u307E\u305F\u306F +doclet.Frames=\u30D5\u30EC\u30FC\u30E0 +doclet.FRAMES=FRAMES +doclet.NO_FRAMES=NO FRAMES +doclet.Package_Hierarchies=\u30D1\u30C3\u30B1\u30FC\u30B8\u968E\u5C64: +doclet.Hierarchy_For_Package=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306E\u968E\u5C64 +doclet.Source_Code=\u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9: +doclet.Hierarchy_For_All_Packages=\u3059\u3079\u3066\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u968E\u5C64 +doclet.Cannot_handle_no_packages=\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093\u3002 +doclet.Frame_Alert=\u30D5\u30EC\u30FC\u30E0\u95A2\u9023\u306E\u30A2\u30E9\u30FC\u30C8 +doclet.Overview-Member-Frame=\u6982\u8981\u30E1\u30F3\u30D0\u30FC\u30FB\u30D5\u30EC\u30FC\u30E0 +doclet.Frame_Warning_Message=\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306F\u30D5\u30EC\u30FC\u30E0\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u3066\u8868\u793A\u3059\u308B\u3088\u3046\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30D5\u30EC\u30FC\u30E0\u3092\u8868\u793A\u3067\u304D\u306A\u3044Web\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306E\u5834\u5408\u306B\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002 +doclet.Non_Frame_Version=\u30D5\u30EC\u30FC\u30E0\u306A\u3057\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3002 +doclet.Frame_Version=\u30D5\u30EC\u30FC\u30E0\u3042\u308A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3 +doclet.Link_To=\u30EA\u30F3\u30AF\u5148 +doclet.Following_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u30BF\u30B0: +doclet.Following_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u30BF\u30B0: +doclet.Description_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u8AAC\u660E: +doclet.Description_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u8AAC\u660E: +doclet.Standard_doclet_invoked=\u6A19\u6E96\u306Edoclet\u304C\u8D77\u52D5\u3055\u308C\u307E\u3057\u305F... +doclet.No_Non_Deprecated_Classes_To_Document=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3059\u308B\u975E\u63A8\u5968\u4EE5\u5916\u306E\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +doclet.Interfaces_Italic=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9(\u30A4\u30BF\u30EA\u30C3\u30AF) +doclet.Enclosing_Class=\u542B\u307E\u308C\u3066\u3044\u308B\u30AF\u30E9\u30B9: +doclet.Enclosing_Interface=\u542B\u307E\u308C\u3066\u3044\u308B\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9: +doclet.Help_title=API\u30D8\u30EB\u30D7 +doclet.Window_Help_title=API\u30D8\u30EB\u30D7 +doclet.Help_line_1=API\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u69CB\u6210 +doclet.Help_line_2=\u3053\u306EAPI(Application Programming Interface)\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u3001\u6B21\u306B\u8AAC\u660E\u3059\u308B\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u3042\u308B\u9805\u76EE\u306B\u5BFE\u5FDC\u3059\u308B\u30DA\u30FC\u30B8\u304C\u542B\u307E\u308C\u307E\u3059\u3002 +doclet.Help_line_3={0}\u30DA\u30FC\u30B8\u306FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30D5\u30ED\u30F3\u30C8\u30FB\u30DA\u30FC\u30B8\u3067\u3001\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u3092\u542B\u3080\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30EA\u30B9\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4E00\u9023\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u8AAC\u660E\u3082\u8868\u793A\u3055\u308C\u307E\u3059\u3002 +doclet.Help_line_4=\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u306F\u3001\u305D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8\u3068\u3001\u305D\u308C\u305E\u308C\u306E\u6982\u8981\u3092\u542B\u3080\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306F4\u3064\u306E\u30AB\u30C6\u30B4\u30EA\u3067\u69CB\u6210\u3055\u308C\u307E\u3059\u3002 +doclet.Help_line_5=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.Help_line_6=\u5404\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u306F\u500B\u5225\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u5404\u30DA\u30FC\u30B8\u306B\u306F\u6B21\u306E\u3088\u3046\u306B\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E\u3068\u3001\u6982\u8981\u8868\u304A\u3088\u3073\u30E1\u30F3\u30D0\u30FC\u306E\u8A73\u7D30\u8AAC\u660E\u304C\u542B\u307E\u308C\u307E\u3059\u3002 +doclet.Help_line_7=\u30AF\u30E9\u30B9\u968E\u5C64\u8868\u793A +doclet.Help_line_8=\u76F4\u7CFB\u306E\u30B5\u30D6\u30AF\u30E9\u30B9 +doclet.Help_line_9=\u65E2\u77E5\u306E\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8 +doclet.Help_line_10=\u65E2\u77E5\u306E\u5B9F\u88C5\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8 +doclet.Help_line_11=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u5BA3\u8A00 +doclet.Help_line_12=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E +doclet.Help_line_13=\u5404\u6982\u8981\u30A8\u30F3\u30C8\u30EA\u306B\u306F\u3001\u305D\u306E\u9805\u76EE\u306E\u8A73\u7D30\u306A\u8AAC\u660E\u306E\u4E2D\u304B\u30891\u884C\u76EE\u306E\u6587\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u8A73\u7D30\u306A\u8AAC\u660E\u306F\u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9\u306B\u73FE\u308C\u308B\u9806\u306B\u4E26\u3079\u3089\u308C\u307E\u3059\u304C\u3001\u6982\u8981\u30A8\u30F3\u30C8\u30EA\u306F\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306B\u4E26\u3079\u3089\u308C\u307E\u3059\u3002\u3053\u308C\u306B\u3088\u3063\u3066\u3001\u30D7\u30ED\u30B0\u30E9\u30DE\u304C\u8A2D\u5B9A\u3057\u305F\u8AD6\u7406\u7684\u306A\u30B0\u30EB\u30FC\u30D7\u5206\u3051\u304C\u4FDD\u6301\u3055\u308C\u307E\u3059\u3002 +doclet.Help_line_14=\u4F7F\u7528 +doclet.Help_line_15=\u5404\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3055\u308C\u305F\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u306F\u305D\u308C\u305E\u308C\u300C\u4F7F\u7528\u300D\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306B\u306F\u3001\u3069\u306E\u3088\u3046\u306A\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u3001\u30E1\u30BD\u30C3\u30C9\u3001\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u304A\u3088\u3073\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3001\u7279\u5B9A\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u4E00\u90E8\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u304B\u304C\u8A18\u8FF0\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u305F\u3068\u3048\u3070\u3001\u30AF\u30E9\u30B9A\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9A\u306E\u5834\u5408\u3001\u305D\u306E\u300C\u4F7F\u7528\u300D\u30DA\u30FC\u30B8\u306B\u306F\u3001A\u306E\u30B5\u30D6\u30AF\u30E9\u30B9\u3001A\u3068\u3057\u3066\u5BA3\u8A00\u3055\u308C\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u3001A\u3092\u8FD4\u3059\u30E1\u30BD\u30C3\u30C9\u3068\u3001\u578BA\u3092\u6301\u3064\u30E1\u30BD\u30C3\u30C9\u304A\u3088\u3073\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u304C\u542B\u307E\u308C\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u306B\u306F\u3001\u307E\u305A\u305D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u79FB\u52D5\u3057\u3001\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306E\u300C\u4F7F\u7528\u300D\u30EA\u30F3\u30AF\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +doclet.Help_line_16=\u968E\u5C64\u30C4\u30EA\u30FC(\u30AF\u30E9\u30B9\u968E\u5C64) +doclet.Help_line_17_with_tree_link=\u3059\u3079\u3066\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u306F{0}\u30DA\u30FC\u30B8\u304C\u3042\u308A\u3001\u3055\u3089\u306B\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u968E\u5C64\u304C\u3042\u308A\u307E\u3059\u3002\u5404\u968E\u5C64\u30DA\u30FC\u30B8\u306F\u3001\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8\u3068\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8\u3092\u542B\u307F\u307E\u3059\u3002\u30AF\u30E9\u30B9\u306F <code>java.lang.Object</code> \u3092\u958B\u59CB\u70B9\u3068\u3059\u308B\u7D99\u627F\u69CB\u9020\u3067\u7DE8\u6210\u3055\u308C\u307E\u3059\u3002\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306F\u3001<code>java.lang.Object</code> \u304B\u3089\u306F\u7D99\u627F\u3057\u307E\u305B\u3093\u3002 +doclet.Help_line_18=\u6982\u8981\u30DA\u30FC\u30B8\u3092\u8868\u793A\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u300C\u968E\u5C64\u30C4\u30EA\u30FC\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u968E\u5C64\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002 +doclet.Help_line_19=\u7279\u5B9A\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u8868\u793A\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u300C\u968E\u5C64\u30C4\u30EA\u30FC\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u8A72\u5F53\u3059\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u307F\u306E\u968E\u5C64\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002 +doclet.Help_line_20_with_deprecated_api_link={0}\u30DA\u30FC\u30B8\u306F\u3001\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u3059\u3079\u3066\u306EAPI\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u975E\u63A8\u5968API\u3068\u306F\u3001\u6A5F\u80FD\u6539\u826F\u306A\u3069\u306E\u7406\u7531\u304B\u3089\u4F7F\u7528\u3092\u304A\u85A6\u3081\u3067\u304D\u306A\u304F\u306A\u3063\u305FAPI\u306E\u3053\u3068\u3067\u3001\u901A\u5E38\u306F\u305D\u308C\u306B\u4EE3\u308F\u308BAPI\u304C\u63D0\u4F9B\u3055\u308C\u307E\u3059\u3002\u975E\u63A8\u5968API\u306F\u4ECA\u5F8C\u306E\u5B9F\u88C5\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 +doclet.Help_line_21=\u7D22\u5F15 +doclet.Help_line_22={0}\u306B\u306F\u3001\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u3001\u30E1\u30BD\u30C3\u30C9\u304A\u3088\u3073\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306E\u30EA\u30B9\u30C8\u304C\u542B\u307E\u308C\u307E\u3059\u3002 +doclet.Help_line_23=\u524D/\u6B21 +doclet.Help_line_24=\u3053\u308C\u3089\u306E\u30EA\u30F3\u30AF\u306B\u3088\u308A\u3001\u524D\u307E\u305F\u306F\u6B21\u306E\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30D1\u30C3\u30B1\u30FC\u30B8\u307E\u305F\u306F\u95A2\u9023\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\u3067\u304D\u307E\u3059\u3002 +doclet.Help_line_25=\u30D5\u30EC\u30FC\u30E0/\u30D5\u30EC\u30FC\u30E0\u306A\u3057 +doclet.Help_line_26=\u3053\u308C\u3089\u306E\u30EA\u30F3\u30AF\u306FHTML\u30D5\u30EC\u30FC\u30E0\u306E\u8868\u793A\u3068\u975E\u8868\u793A\u3092\u5207\u308A\u66FF\u3048\u307E\u3059\u3002\u3059\u3079\u3066\u306E\u30DA\u30FC\u30B8\u306F\u30D5\u30EC\u30FC\u30E0\u3042\u308A\u3067\u3082\u3001\u30D5\u30EC\u30FC\u30E0\u306A\u3057\u3067\u3082\u8868\u793A\u3067\u304D\u307E\u3059\u3002 +doclet.Help_line_27=\u76F4\u5217\u5316\u53EF\u80FD\u307E\u305F\u306F\u5916\u90E8\u5316\u53EF\u80FD\u306A\u5404\u30AF\u30E9\u30B9\u306F\u3001\u76F4\u5217\u5316\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30E1\u30BD\u30C3\u30C9\u306E\u8AAC\u660E\u3092\u542B\u307F\u307E\u3059\u3002\u3053\u306E\u60C5\u5831\u306F\u3001API\u3092\u4F7F\u7528\u3059\u308B\u958B\u767A\u8005\u3067\u306F\u306A\u304F\u3001\u518D\u5B9F\u88C5\u3092\u884C\u3046\u62C5\u5F53\u8005\u306B\u5F79\u7ACB\u3061\u307E\u3059\u3002\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u30EA\u30F3\u30AF\u304C\u306A\u3044\u5834\u5408\u3001\u76F4\u5217\u5316\u3055\u308C\u305F\u30AF\u30E9\u30B9\u306B\u79FB\u52D5\u3057\u3066\u3001\u30AF\u30E9\u30B9\u8A18\u8FF0\u306E\u300C\u95A2\u9023\u9805\u76EE\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u3042\u308B\u300C\u76F4\u5217\u5316\u3055\u308C\u305F\u5F62\u5F0F\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3053\u3068\u306B\u3088\u308A\u3001\u3053\u306E\u60C5\u5831\u3092\u8868\u793A\u3067\u304D\u307E\u3059\u3002 +doclet.Help_line_28=<a href="constant-values.html">\u300C\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9\u5024\u300D</a> \u30DA\u30FC\u30B8\u306B\u306F\u3001static final\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u305D\u306E\u5024\u306E\u30EA\u30B9\u30C8\u304C\u3042\u308A\u307E\u3059\u3002 +doclet.Help_line_29=\u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u6A19\u6E96doclet\u3092\u4F7F\u7528\u3057\u3066\u751F\u6210\u3055\u308C\u305FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002 +doclet.Help_enum_line_1=\u5404\u5217\u6319\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059: +doclet.Help_enum_line_2=\u5217\u6319\u578B\u306E\u5BA3\u8A00 +doclet.Help_enum_line_3=\u5217\u6319\u578B\u306E\u8AAC\u660E +doclet.Help_annotation_type_line_1=\u5404\u6CE8\u91C8\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059: +doclet.Help_annotation_type_line_2=\u6CE8\u91C8\u578B\u306E\u5BA3\u8A00 +doclet.Help_annotation_type_line_3=\u6CE8\u91C8\u578B\u306E\u8AAC\u660E doclet.The=The -doclet.Style_line_1=javadoc \u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8 -doclet.Style_line_2=\u8272\u3084\u30d5\u30a9\u30f3\u30c8\u306a\u3069\u306e\u30b9\u30bf\u30a4\u30eb\u5c5e\u6027\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4e0a\u66f8\u304d\u3059\u308b\u306b\u306f\u3001\u3053\u3053\u3067\u5b9a\u7fa9\u3057\u307e\u3059\u3002 -doclet.Style_line_3=\u30da\u30fc\u30b8\u306e\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u306e\u8272 -doclet.Style_Headings=\u898b\u51fa\u3057 -doclet.Style_line_4=\u30c6\u30fc\u30d6\u30eb\u306e\u8272 -doclet.Style_line_5=\u6fc3\u3044\u85e4\u8272 -doclet.Style_line_6=\u8584\u3044\u85e4\u8272 -doclet.Style_line_7=\u767d -doclet.Style_line_8=\u5de6\u5074\u306e\u30d5\u30ec\u30fc\u30e0\u306e\u30ea\u30b9\u30c8\u306b\u4f7f\u7528\u3059\u308b\u30d5\u30a9\u30f3\u30c8 -doclet.Style_line_9=\u30d5\u30ec\u30fc\u30e0\u306b\u304a\u3051\u308b\u3001\u3088\u308a\u5c0f\u3055\u3044\u3001\u30bb\u30ea\u30d5\u306a\u3057\u30d5\u30a9\u30f3\u30c8\u306e\u4f8b -doclet.Style_line_10=\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u306e\u30d5\u30a9\u30f3\u30c8\u3068\u8272 -doclet.Style_line_11=\u6fc3\u3044\u9752 -doclet.Style_line_12=\u8868\u898b\u51fa\u3057\u306e\u30b9\u30bf\u30a4\u30eb -doclet.ClassUse_Packages.that.use.0={0} \u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.ClassUse_Uses.of.0.in.1={1} \u3067\u306e {0} \u306e\u4f7f\u7528 -doclet.ClassUse_Classes.in.0.used.by.1={1} \u306b\u3088\u308a\u4f7f\u7528\u3055\u308c\u308b {0} \u306e\u30af\u30e9\u30b9 -doclet.ClassUse_PackageAnnotation={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.ClassUse_Annotation={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9 -doclet.ClassUse_TypeParameter={0} \u578b\u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30af\u30e9\u30b9 -doclet.ClassUse_MethodTypeParameter={0} \u578b\u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9 -doclet.ClassUse_FieldTypeParameter={0} \u578b\u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.ClassUse_FieldAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.ClassUse_MethodAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9 -doclet.ClassUse_MethodParameterAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9\u30d1\u30e9\u30e1\u30fc\u30bf -doclet.ClassUse_MethodReturnTypeParameter={0} \u578b\u306e\u5f15\u6570\u3092\u6301\u3064\u578b\u3092\u8fd4\u3059 {1} \u306e\u30e1\u30bd\u30c3\u30c9 -doclet.ClassUse_Subclass={1} \u3067\u306e {0} \u306e\u30b5\u30d6\u30af\u30e9\u30b9 -doclet.ClassUse_Subinterface={1} \u3067\u306e {0} \u306e\u30b5\u30d6\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.ClassUse_ImplementingClass={0} \u3092\u5b9f\u88c5\u3057\u3066\u3044\u308b {1} \u306e\u30af\u30e9\u30b9 -doclet.ClassUse_Field={0} \u3068\u3057\u3066\u5ba3\u8a00\u3055\u308c\u3066\u3044\u308b {1} \u306e\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.ClassUse_MethodReturn={0} \u3092\u8fd4\u3059 {1} \u306e\u30e1\u30bd\u30c3\u30c9 -doclet.ClassUse_MethodArgs={0} \u578b\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9 -doclet.ClassUse_MethodArgsTypeParameters={0} \u578b\u306e\u578b\u5f15\u6570\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9\u30d1\u30e9\u30e1\u30fc\u30bf -doclet.ClassUse_MethodThrows={0} \u3092\u30b9\u30ed\u30fc\u3059\u308b {1} \u306e\u30e1\u30bd\u30c3\u30c9 -doclet.ClassUse_ConstructorAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -doclet.ClassUse_ConstructorParameterAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u30d1\u30e9\u30e1\u30fc\u30bf -doclet.ClassUse_ConstructorArgs={0} \u578b\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -doclet.ClassUse_ConstructorArgsTypeParameters={0} \u578b\u306e\u578b\u5f15\u6570\u3092\u6301\u3064 {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u30d1\u30e9\u30e1\u30fc\u30bf -doclet.ClassUse_ConstructorThrows={0} \u3092\u30b9\u30ed\u30fc\u3059\u308b {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -doclet.ClassUse_No.usage.of.0={0} \u306f\u3069\u3053\u304b\u3089\u3082\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u305b\u3093 -doclet.Window_ClassUse_Header={0} {1} \u306e\u4f7f\u7528 -doclet.ClassUse_Title={0}<br>{1} \u306e\u4f7f\u7528 -doclet.navClassUse=\u4f7f\u7528 -doclet.link_option_twice=\u5916\u90e8 URL \u30ea\u30f3\u30af\u30aa\u30d7\u30b7\u30e7\u30f3 (link \u307e\u305f\u306f linkoffline) \u304c 2 \u56de\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -doclet.Error_in_packagelist=-group \u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u4f7f\u7528\u65b9\u6cd5\u306e\u30a8\u30e9\u30fc: {0} {1} -doclet.Groupname_already_used=-group \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u304a\u3044\u3066\u3001\u3059\u3067\u306b\u30b0\u30eb\u30fc\u30d7\u540d\u304c\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0} -doclet.Same_package_name_used=\u30d1\u30c3\u30b1\u30fc\u30b8\u540d\u5f62\u5f0f\u304c 2 \u56de\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0} -doclet.Serialization.Excluded_Class=\u5e38\u99d0\u30d5\u30a3\u30fc\u30eb\u30c9 {1} \u306f\u3001\u9664\u5916\u3055\u308c\u305f\u30af\u30e9\u30b9 {0} \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 -doclet.Serialization.Nonexcluded_Class=\u5e38\u99d0\u30d5\u30a3\u30fc\u30eb\u30c9 {1} \u306f\u3001\u975e\u8868\u793a\u306e\u3001\u542b\u307e\u308c\u306a\u3044\u30af\u30e9\u30b9 {0} \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 -doclet.usage=\u6a19\u6e96\u306e doclet \u306b\u3088\u308a\u63d0\u4f9b\u3055\u308c\u308b\u3082\u306e:\n-d <directory> \u51fa\u529b\u30d5\u30a1\u30a4\u30eb\u306e\u8ee2\u9001\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n-use \u30af\u30e9\u30b9\u3068\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f7f\u7528\u30da\u30fc\u30b8\u3092\u4f5c\u6210\u3059\u308b\n-version @version \u30d1\u30e9\u30b0\u30e9\u30d5\u3092\u542b\u3081\u308b\n-author @author \u30d1\u30e9\u30b0\u30e9\u30d5\u3092\u542b\u3081\u308b\n-docfilessubdirs doc-file \u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u518d\u5e30\u7684\u306b\u30b3\u30d4\u30fc\u3059\u308b\n-splitindex 1 \u5b57\u3054\u3068\u306b 1 \u30d5\u30a1\u30a4\u30eb\u306b\u7d22\u5f15\u3092\u5206\u5272\u3059\u308b\n-windowtitle <text> \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u7528\u306e\u30d6\u30e9\u30a6\u30b6\u30a6\u30a3\u30f3\u30c9\u30a6\u30bf\u30a4\u30c8\u30eb\n-doctitle <html-code> \u6982\u8981\u30da\u30fc\u30b8\u306b\u30bf\u30a4\u30c8\u30eb\u3092\u542b\u3081\u308b\n-header <html-code> \u5404\u30da\u30fc\u30b8\u306b\u30d8\u30c3\u30c0\u30fc\u3092\u542b\u3081\u308b\n-footer <html-code> \u5404\u30da\u30fc\u30b8\u306b\u30d5\u30c3\u30bf\u30fc\u3092\u542b\u3081\u308b\n-top <html-code> \u5404\u30da\u30fc\u30b8\u306b\u4e0a\u90e8\u30c6\u30ad\u30b9\u30c8\u3092\u542b\u3081\u308b\n-bottom <html-code> \u5404\u30da\u30fc\u30b8\u306b\u4e0b\u90e8\u30c6\u30ad\u30b9\u30c8\u3092\u542b\u3081\u308b\n-link <url> <url> \u306b javadoc \u51fa\u529b\u3078\u306e\u30ea\u30f3\u30af\u3092\u4f5c\u6210\u3059\u308b\n-linkoffline <url> <url2> <url2> \u306b\u3042\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u30ea\u30b9\u30c8\u3092\u4f7f\u7528\u3057\u3066 <url> \u306e docs \u306b\u30ea\u30f3\u30af\u3059\u308b\n-excludedocfilessubdir <name1>:.. \u6307\u5b9a\u3055\u308c\u305f\u540d\u524d\u306e doc-files \u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u3059\u3079\u3066\u9664\u5916\u3059\u308b\n-group <name> <p1>:<p2>.. \u6307\u5b9a\u3059\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u6982\u8981\u30da\u30fc\u30b8\u306b\u304a\u3044\u3066\u30b0\u30eb\u30fc\u30d7\u5316\u3059\u308b\n-nocomment \u8a18\u8ff0\u304a\u3088\u3073\u30bf\u30b0\u3092\u6291\u5236\u3057\u3066\u5ba3\u8a00\u3060\u3051\u3092\u751f\u6210\u3059\u308b\n-nodeprecated @deprecated \u60c5\u5831\u3092\u9664\u5916\u3059\u308b\n-noqualifier <name1>:<name2>:... \u51fa\u529b\u304b\u3089\u4fee\u98fe\u5b50\u306e\u30ea\u30b9\u30c8\u3092\u9664\u5916\u3059\u308b\n-nosince @since \u60c5\u5831\u3092\u9664\u5916\u3059\u308b\n-notimestamp \u975e\u8868\u793a\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092\u9664\u5916\u3059\u308b\n-nodeprecatedlist \u975e\u63a8\u5968 \u306e\u30ea\u30b9\u30c8\u3092\u751f\u6210\u3057\u306a\u3044\n-notree \u30af\u30e9\u30b9\u968e\u5c64\u3092\u751f\u6210\u3057\u306a\u3044\n-noindex \u7d22\u5f15\u3092\u751f\u6210\u3057\u306a\u3044\n-nohelp \u30d8\u30eb\u30d7\u30ea\u30f3\u30af\u3092\u751f\u6210\u3057\u306a\u3044\n-nonavbar \u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u3092\u751f\u6210\u3057\u306a\u3044\n-serialwarn @serial \u30bf\u30b0\u306b\u95a2\u3059\u308b\u8b66\u544a\u3092\u751f\u6210\u3059\u308b\n-tag <name>:<locations>:<header> \u5358\u4e00\u306e\u5f15\u6570\u3092\u6301\u3064\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0\u3092\u6307\u5b9a\u3059\u308b\n-taglet \u30bf\u30b0\u30ec\u30c3\u30c8\u306e\u5b8c\u5168\u4fee\u98fe\u540d\u3092\u767b\u9332\u3059\u308b\n-tagletpath \u30bf\u30b0\u30ec\u30c3\u30c8\u306e\u30d1\u30b9\n-charset <charset> \u751f\u6210\u3055\u308c\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30af\u30ed\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\n-helpfile <file> \u30d8\u30eb\u30d7\u30ea\u30f3\u30af\u306e\u30ea\u30f3\u30af\u5148\u30d5\u30a1\u30a4\u30eb\u3092\u542b\u3081\u308b\n-linksource HTML \u5f62\u5f0f\u3067\u30bd\u30fc\u30b9\u3092\u751f\u6210\u3059\u308b\n-sourcetab <tab length> \u30bd\u30fc\u30b9\u5185\u306e\u30bf\u30d6\u306e\u7a7a\u767d\u6587\u5b57\u306e\u6570\u3092\u6307\u5b9a\u3059\u308b\n-keywords HTML \u306e meta \u30bf\u30b0\u306b\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u30e1\u30f3\u30d0\u30fc\u306e\u60c5\u5831\u3092\u542b\u3081\u308b\n-stylesheetfile <path> \u751f\u6210\u3055\u308c\u305f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30b9\u30bf\u30a4\u30eb\u5909\u66f4\u7528\u30d5\u30a1\u30a4\u30eb\n-docencoding <name> \u51fa\u529b\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u540d +doclet.Style_line_1=javadoc\u30B9\u30BF\u30A4\u30EB\u30FB\u30B7\u30FC\u30C8 +doclet.Style_line_2=\u8272\u3084\u30D5\u30A9\u30F3\u30C8\u306A\u3069\u306E\u30B9\u30BF\u30A4\u30EB\u5C5E\u6027\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\u306B\u306F\u3001\u3053\u3053\u3067\u5B9A\u7FA9\u3057\u307E\u3059 +doclet.Style_line_3=\u30DA\u30FC\u30B8\u306E\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u306E\u8272 +doclet.Style_Headings=\u898B\u51FA\u3057 +doclet.Style_line_4=\u8868\u306E\u8272 +doclet.Style_line_5=\u6FC3\u3044\u85E4\u8272 +doclet.Style_line_6=\u8584\u3044\u85E4\u8272 +doclet.Style_line_7=\u767D +doclet.Style_line_8=\u5DE6\u5074\u306E\u30D5\u30EC\u30FC\u30E0\u306E\u30EA\u30B9\u30C8\u306B\u4F7F\u7528\u3059\u308B\u30D5\u30A9\u30F3\u30C8 +doclet.Style_line_9=\u30D5\u30EC\u30FC\u30E0\u306B\u304A\u3051\u308B\u3001\u3088\u308A\u5C0F\u3055\u3044sans-serif\u30D5\u30A9\u30F3\u30C8\u306E\u4F8B +doclet.Style_line_10=\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306E\u30D5\u30A9\u30F3\u30C8\u3068\u8272 +doclet.Style_line_11=\u6FC3\u3044\u9752 +doclet.Style_line_12=\u8868\u306E\u30AD\u30E3\u30D7\u30B7\u30E7\u30F3\u30FB\u30B9\u30BF\u30A4\u30EB +doclet.ClassUse_Packages.that.use.0={0}\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.ClassUse_Uses.of.0.in.1={1}\u3067\u306E{0}\u306E\u4F7F\u7528 +doclet.ClassUse_Classes.in.0.used.by.1={1}\u306B\u3088\u308A\u4F7F\u7528\u3055\u308C\u308B{0}\u306E\u30AF\u30E9\u30B9 +doclet.ClassUse_PackageAnnotation={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.ClassUse_Annotation={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9 +doclet.ClassUse_TypeParameter={0}\u578B\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30AF\u30E9\u30B9 +doclet.ClassUse_MethodTypeParameter={0}\u578B\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9 +doclet.ClassUse_FieldTypeParameter={0}\u578B\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.ClassUse_FieldAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.ClassUse_MethodAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9 +doclet.ClassUse_MethodParameterAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF +doclet.ClassUse_MethodReturnTypeParameter={0}\u578B\u306E\u5F15\u6570\u3092\u6301\u3064\u578B\u3092\u8FD4\u3059{1}\u306E\u30E1\u30BD\u30C3\u30C9 +doclet.ClassUse_Subclass={1}\u3067\u306E{0}\u306E\u30B5\u30D6\u30AF\u30E9\u30B9 +doclet.ClassUse_Subinterface={1}\u3067\u306E{0}\u306E\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.ClassUse_ImplementingClass={0}\u3092\u5B9F\u88C5\u3057\u3066\u3044\u308B{1}\u306E\u30AF\u30E9\u30B9 +doclet.ClassUse_Field={0}\u3068\u3057\u3066\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B{1}\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.ClassUse_MethodReturn={0}\u3092\u8FD4\u3059{1}\u306E\u30E1\u30BD\u30C3\u30C9 +doclet.ClassUse_MethodArgs={0}\u578B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9 +doclet.ClassUse_MethodArgsTypeParameters={0}\u578B\u306E\u578B\u5F15\u6570\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF +doclet.ClassUse_MethodThrows={0}\u3092\u30B9\u30ED\u30FC\u3059\u308B{1}\u306E\u30E1\u30BD\u30C3\u30C9 +doclet.ClassUse_ConstructorAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +doclet.ClassUse_ConstructorParameterAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF +doclet.ClassUse_ConstructorArgs={0}\u578B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +doclet.ClassUse_ConstructorArgsTypeParameters={0}\u578B\u306E\u578B\u5F15\u6570\u3092\u6301\u3064{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF +doclet.ClassUse_ConstructorThrows={0}\u3092\u30B9\u30ED\u30FC\u3059\u308B{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +doclet.ClassUse_No.usage.of.0={0}\u306F\u3069\u3053\u304B\u3089\u3082\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +doclet.Window_ClassUse_Header={0} {1}\u306E\u4F7F\u7528 +doclet.ClassUse_Title={0}<br>{1}\u306E\u4F7F\u7528 +doclet.navClassUse=\u4F7F\u7528 +doclet.link_option_twice=\u5916\u90E8URL\u30EA\u30F3\u30AF\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3(link\u307E\u305F\u306Flinkoffline)\u304C2\u56DE\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +doclet.Error_in_packagelist=-group\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u4F7F\u7528\u65B9\u6CD5\u306E\u30A8\u30E9\u30FC: {0} {1} +doclet.Groupname_already_used=-group\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u304A\u3044\u3066\u3001\u3059\u3067\u306B\u30B0\u30EB\u30FC\u30D7\u540D\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0} +doclet.Same_package_name_used=\u30D1\u30C3\u30B1\u30FC\u30B8\u540D\u5F62\u5F0F\u304C2\u56DE\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0} +doclet.Serialization.Excluded_Class=\u5E38\u99D0\u30D5\u30A3\u30FC\u30EB\u30C9{1}\u306F\u3001\u9664\u5916\u3055\u308C\u305F\u30AF\u30E9\u30B9{0}\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002 +doclet.Serialization.Nonexcluded_Class=\u5E38\u99D0\u30D5\u30A3\u30FC\u30EB\u30C9{1}\u306F\u3001\u975E\u8868\u793A\u306E\u3001\u542B\u307E\u308C\u306A\u3044\u30AF\u30E9\u30B9{0}\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002 +doclet.usage=\u6A19\u6E96\u306Edoclet\u306B\u3088\u308A\u63D0\u4F9B\u3055\u308C\u308B\u3082\u306E:\n-d <directory> \u51FA\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u8EE2\u9001\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n-use \u30AF\u30E9\u30B9\u3068\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u4F7F\u7528\u30DA\u30FC\u30B8\u3092\u4F5C\u6210\u3059\u308B\n-version @version\u30D1\u30E9\u30B0\u30E9\u30D5\u3092\u542B\u3081\u308B\n-author @author\u30D1\u30E9\u30B0\u30E9\u30D5\u3092\u542B\u3081\u308B\n-docfilessubdirs doc-file\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u518D\u5E30\u7684\u306B\u30B3\u30D4\u30FC\u3059\u308B\n-splitindex 1\u5B57\u3054\u3068\u306B1\u30D5\u30A1\u30A4\u30EB\u306B\u7D22\u5F15\u3092\u5206\u5272\u3059\u308B\n-windowtitle <text> \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u7528\u306E\u30D6\u30E9\u30A6\u30B6\u30FB\u30A6\u30A3\u30F3\u30C9\u30A6\u30FB\u30BF\u30A4\u30C8\u30EB\n-doctitle <html-code> \u6982\u8981\u30DA\u30FC\u30B8\u306B\u30BF\u30A4\u30C8\u30EB\u3092\u542B\u3081\u308B\n-header <html-code> \u5404\u30DA\u30FC\u30B8\u306B\u30D8\u30C3\u30C0\u30FC\u3092\u542B\u3081\u308B\n-footer <html-code> \u5404\u30DA\u30FC\u30B8\u306B\u30D5\u30C3\u30BF\u30FC\u3092\u542B\u3081\u308B\n-top <html-code> \u5404\u30DA\u30FC\u30B8\u306B\u4E0A\u90E8\u30C6\u30AD\u30B9\u30C8\u3092\u542B\u3081\u308B\n-bottom <html-code> \u5404\u30DA\u30FC\u30B8\u306B\u4E0B\u90E8\u30C6\u30AD\u30B9\u30C8\u3092\u542B\u3081\u308B\n-link <url> <url>\u306Bjavadoc\u51FA\u529B\u3078\u306E\u30EA\u30F3\u30AF\u3092\u4F5C\u6210\u3059\u308B\n-linkoffline <url> <url2> <url2>\u306B\u3042\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30EA\u30B9\u30C8\u3092\u4F7F\u7528\u3057\u3066<url>\u306Edocs\u306B\u30EA\u30F3\u30AF\u3059\u308B\n-excludedocfilessubdir <name1>:.. \u6307\u5B9A\u3055\u308C\u305F\u540D\u524D\u306Edoc-files\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u3059\u3079\u3066\u9664\u5916\u3059\u308B\n-group <name> <p1>:<p2>.. \u6307\u5B9A\u3059\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u6982\u8981\u30DA\u30FC\u30B8\u306B\u304A\u3044\u3066\u30B0\u30EB\u30FC\u30D7\u5316\u3059\u308B\n-nocomment \u8A18\u8FF0\u304A\u3088\u3073\u30BF\u30B0\u3092\u6291\u5236\u3057\u3066\u5BA3\u8A00\u306E\u307F\u3092\u751F\u6210\u3059\u308B\n-nodeprecated @deprecated\u60C5\u5831\u3092\u9664\u5916\u3059\u308B\n-noqualifier <name1>:<name2>:... \u51FA\u529B\u304B\u3089\u4FEE\u98FE\u5B50\u306E\u30EA\u30B9\u30C8\u3092\u9664\u5916\u3059\u308B\n-nosince @since\u60C5\u5831\u3092\u9664\u5916\u3059\u308B\n-notimestamp \u975E\u8868\u793A\u306E\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u3092\u9664\u5916\u3059\u308B\n-nodeprecatedlist \u975E\u63A8\u5968\u306E\u30EA\u30B9\u30C8\u3092\u751F\u6210\u3057\u306A\u3044\n-notree \u30AF\u30E9\u30B9\u968E\u5C64\u3092\u751F\u6210\u3057\u306A\u3044\n-noindex \u7D22\u5F15\u3092\u751F\u6210\u3057\u306A\u3044\n-nohelp \u30D8\u30EB\u30D7\u30FB\u30EA\u30F3\u30AF\u3092\u751F\u6210\u3057\u306A\u3044\n-nonavbar \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u3092\u751F\u6210\u3057\u306A\u3044\n-serialwarn @serial\u30BF\u30B0\u306B\u95A2\u3059\u308B\u8B66\u544A\u3092\u751F\u6210\u3059\u308B\n-tag <name>:<locations>:<header> \u5358\u4E00\u306E\u5F15\u6570\u3092\u6301\u3064\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0\u3092\u6307\u5B9A\u3059\u308B\n-taglet \u30BF\u30B0\u30EC\u30C3\u30C8\u306E\u5B8C\u5168\u4FEE\u98FE\u540D\u3092\u767B\u9332\u3059\u308B\n-tagletpath \u30BF\u30B0\u30EC\u30C3\u30C8\u306E\u30D1\u30B9\n-charset <charset> \u751F\u6210\u3055\u308C\u308B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306E\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\n-helpfile <file> \u30D8\u30EB\u30D7\u30FB\u30EA\u30F3\u30AF\u306E\u30EA\u30F3\u30AF\u5148\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3081\u308B\n-linksource HTML\u5F62\u5F0F\u3067\u30BD\u30FC\u30B9\u3092\u751F\u6210\u3059\u308B\n-sourcetab <tab length> \u30BD\u30FC\u30B9\u5185\u306E\u30BF\u30D6\u306E\u7A7A\u767D\u6587\u5B57\u306E\u6570\u3092\u6307\u5B9A\u3059\u308B\n-keywords HTML\u306Emeta\u30BF\u30B0\u306B\u3001\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30E1\u30F3\u30D0\u30FC\u306E\u60C5\u5831\u3092\u542B\u3081\u308B\n-stylesheetfile <path> \u751F\u6210\u3055\u308C\u305F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30B9\u30BF\u30A4\u30EB\u5909\u66F4\u7528\u30D5\u30A1\u30A4\u30EB\n-docencoding <name> \u51FA\u529B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u540D
--- a/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,224 +1,225 @@ -doclet.build_version=\u6807\u51c6 Doclet \u7248\u672c {0} -doclet.Contents=\u76ee\u5f55 -doclet.Overview=\u6982\u8ff0 -doclet.Window_Overview=\u6982\u8ff0\u5217\u8868 -doclet.Window_Overview_Summary=\u6982\u8ff0 -doclet.Package=\u8f6f\u4ef6\u5305 -doclet.All_Packages=\u6240\u6709\u8f6f\u4ef6\u5305 +doclet.build_version=\u6807\u51C6 Doclet \u7248\u672C {0} +doclet.Contents=\u76EE\u5F55 +doclet.Overview=\u6982\u89C8 +doclet.Window_Overview=\u6982\u89C8\u5217\u8868 +doclet.Window_Overview_Summary=\u6982\u89C8 +doclet.Package=\u7A0B\u5E8F\u5305 +doclet.All_Packages=\u6240\u6709\u7A0B\u5E8F\u5305 doclet.Tree=\u6811 -doclet.Class_Hierarchy=\u7c7b\u5206\u5c42\u7ed3\u6784 -doclet.Window_Class_Hierarchy=\u7c7b\u5206\u5c42\u7ed3\u6784 -doclet.Interface_Hierarchy=\u63a5\u53e3\u5206\u5c42\u7ed3\u6784 -doclet.Enum_Hierarchy=\u679a\u4e3e\u5206\u5c42\u7ed3\u6784 -doclet.Annotation_Type_Hierarchy=\u6ce8\u91ca\u7c7b\u578b\u5206\u5c42\u7ed3\u6784 -doclet.Prev=\u4e0a\u4e00\u4e2a -doclet.Next=\u4e0b\u4e00\u4e2a -doclet.Prev_Class=\u4e0a\u4e00\u4e2a\u7c7b -doclet.Next_Class=\u4e0b\u4e00\u4e2a\u7c7b -doclet.Prev_Package=\u4e0a\u4e00\u4e2a\u8f6f\u4ef6\u5305 -doclet.Next_Package=\u4e0b\u4e00\u4e2a\u8f6f\u4ef6\u5305 -doclet.Prev_Letter=\u4e0a\u4e00\u4e2a\u5b57\u6bcd -doclet.Next_Letter=\u4e0b\u4e00\u4e2a\u5b57\u6bcd -doclet.Show_Lists=\u663e\u793a\u5217\u8868 -doclet.Hide_Lists=\u9690\u85cf\u5217\u8868 -doclet.Href_Class_Title={0} \u4e2d\u7684\u7c7b -doclet.Href_Interface_Title={0} \u4e2d\u7684\u63a5\u53e3 -doclet.Href_Annotation_Title={0} \u4e2d\u7684\u6ce8\u91ca -doclet.Href_Enum_Title={0} \u4e2d\u7684\u679a\u4e3e -doclet.Href_Type_Param_Title={0} \u4e2d\u7684\u7c7b\u578b\u53c2\u6570 -doclet.Href_Class_Or_Interface_Title={0} \u4e2d\u7684\u7c7b\u6216\u63a5\u53e3 -doclet.Summary=\u6458\u8981\uff1a -doclet.Detail=\u8be6\u7ec6\u4fe1\u606f\uff1a -doclet.navNested=\u5d4c\u5957 -doclet.navAnnotationTypeOptionalMember=\u53ef\u9009 -doclet.navAnnotationTypeRequiredMember=\u5fc5\u9700 -doclet.navAnnotationTypeMember=\u5143\u7d20 -doclet.navField=\u5b57\u6bb5 -doclet.navEnum=\u679a\u4e3e\u5e38\u91cf -doclet.navConstructor=\u6784\u9020\u65b9\u6cd5 -doclet.navMethod=\u65b9\u6cd5 -doclet.navFactoryMethod=\u5de5\u5382 -doclet.Index=\u7d22\u5f15 -doclet.Window_Single_Index=\u7d22\u5f15 -doclet.Window_Split_Index={0} - \u7d22\u5f15 -doclet.Help=\u5e2e\u52a9 -doclet.Skip_navigation_links=\u8df3\u8fc7\u5bfc\u822a\u94fe\u63a5 -doclet.None=\u65e0 -doclet.CLASSES=\u7c7b -doclet.MEMBERS=\u6210\u5458 -doclet.NONE=\u65e0 -doclet.Factory_Method_Detail=\u9759\u6001\u5de5\u5382\u65b9\u6cd5\u8be6\u7ec6\u4fe1\u606f -doclet.navDeprecated=\u5df2\u8fc7\u65f6 -doclet.Deprecated_List=\u5df2\u8fc7\u65f6\u9879\u76ee\u5217\u8868 -doclet.Window_Deprecated_List=\u5df2\u8fc7\u65f6\u9879\u76ee\u5217\u8868 -doclet.Note_0_is_deprecated=\u6ce8\u610f\uff1a{0} \u5df2\u8fc7\u65f6\u3002 -doclet.Overrides=\u8986\u76d6\uff1a -doclet.in_class=\u7c7b {1} \u4e2d\u7684 {0} -doclet.0_Fields_and_Methods="{0}" \u5b57\u6bb5\u548c\u65b9\u6cd5 -doclet.Index_of_Fields_and_Methods=\u5b57\u6bb5\u548c\u65b9\u6cd5\u7684\u7d22\u5f15 -doclet.Static_variable_in={0} \u4e2d\u7684\u9759\u6001\u53d8\u91cf -doclet.Variable_in={0} \u4e2d\u7684\u53d8\u91cf -doclet.Constructor_for={0} \u7684\u6784\u9020\u65b9\u6cd5 -doclet.Static_method_in={0} \u4e2d\u7684\u9759\u6001\u65b9\u6cd5 -doclet.Method_in={0} \u4e2d\u7684\u65b9\u6cd5 -doclet.throws=\u629b\u51fa -doclet.package=\u8f6f\u4ef6\u5305 -doclet.MalformedURL=\u4e0d\u89c4\u5219\u7684 URL\uff1a {0} -doclet.File_error=\u8bfb\u53d6\u6587\u4ef6\u65f6\u51fa\u9519\uff1a{0} -doclet.URL_error=\u83b7\u53d6 URL \u65f6\u51fa\u9519\uff1a{0} -doclet.No_Package_Comment_File=\u5bf9\u4e8e\u8f6f\u4ef6\u5305 {0}\uff0c\u627e\u4e0d\u5230 Package.Comment \u6587\u4ef6 -doclet.No_Source_For_Class=\u7c7b {0} \u7684\u6e90\u4fe1\u606f\u4e0d\u53ef\u7528\u3002 -doclet.see.class_or_package_not_found=\u6807\u8bb0 {0}\uff1a\u627e\u4e0d\u5230\u5f15\u7528\uff1a {1} -doclet.see.malformed_tag=\u6807\u8bb0 {0}\uff1a\u4e0d\u89c4\u5219\uff1a {1} -doclet.Inherited_API_Summary=\u7ee7\u627f\u7684 API \u6458\u8981 -doclet.Deprecated_API=\u5df2\u8fc7\u65f6\u7684 API -doclet.Deprecated_Classes=\u5df2\u8fc7\u65f6\u7684\u7c7b -doclet.Deprecated_Enums=\u5df2\u8fc7\u65f6\u7684\u679a\u4e3e -doclet.Deprecated_Interfaces=\u5df2\u8fc7\u65f6\u7684\u63a5\u53e3 -doclet.Deprecated_Exceptions=\u5df2\u8fc7\u65f6\u7684\u5f02\u5e38 -doclet.Deprecated_Annotation_Types=\u5df2\u8fc7\u65f6\u7684\u6ce8\u91ca\u7c7b\u578b -doclet.Deprecated_Errors=\u5df2\u8fc7\u65f6\u7684\u9519\u8bef -doclet.Deprecated_Fields=\u5df2\u8fc7\u65f6\u7684\u5b57\u6bb5 -doclet.Deprecated_Constructors=\u5df2\u8fc7\u65f6\u7684\u6784\u9020\u65b9\u6cd5 -doclet.Deprecated_Methods=\u5df2\u8fc7\u65f6\u7684\u65b9\u6cd5 -doclet.Deprecated_Enum_Constants=\u5df2\u8fc7\u65f6\u7684\u679a\u4e3e\u5e38\u91cf -doclet.Deprecated_Annotation_Type_Members=\u5df2\u8fc7\u65f6\u7684\u6ce8\u91ca\u7c7b\u578b\u5143\u7d20 -doclet.deprecated_classes=\u5df2\u8fc7\u65f6\u7684\u7c7b -doclet.deprecated_enums=\u5df2\u8fc7\u65f6\u7684\u679a\u4e3e -doclet.deprecated_interfaces=\u5df2\u8fc7\u65f6\u7684\u63a5\u53e3 -doclet.deprecated_exceptions=\u5df2\u8fc7\u65f6\u7684\u5f02\u5e38 -doclet.deprecated_annotation_types=\u5df2\u8fc7\u65f6\u7684\u6ce8\u91ca\u7c7b\u578b -doclet.deprecated_errors=\u5df2\u8fc7\u65f6\u7684\u9519\u8bef -doclet.deprecated_fields=\u5df2\u8fc7\u65f6\u7684\u5b57\u6bb5 -doclet.deprecated_constructors=\u5df2\u8fc7\u65f6\u7684\u6784\u9020\u51fd\u6570 -doclet.deprecated_methods=\u5df2\u8fc7\u65f6\u7684\u65b9\u6cd5 -doclet.deprecated_enum_constants=\u5df2\u8fc7\u65f6\u7684\u679a\u4e3e\u5e38\u91cf -doclet.deprecated_annotation_type_members=\u5df2\u8fc7\u65f6\u7684\u6ce8\u91ca\u7c7b\u578b\u5143\u7d20 -doclet.Frame_Output=\u6846\u67b6\u8f93\u51fa -doclet.Docs_generated_by_Javadoc=\u7531 Javadoc \u751f\u6210\u7684\u6587\u6863\u3002 -doclet.Generated_Docs_Untitled=\u751f\u6210\u7684\u6587\u6863\uff08\u65e0\u6807\u9898\uff09 -doclet.Blank=\u7a7a\u767d -doclet.Other_Packages=\u5176\u4ed6\u8f6f\u4ef6\u5305 -doclet.Package_Description=\u8f6f\u4ef6\u5305 {0} \u7684\u63cf\u8ff0 -doclet.Description=\u63cf\u8ff0 -doclet.Specified_By=\u6307\u5b9a\u8005\uff1a -doclet.in_interface=\u63a5\u53e3 {1} \u4e2d\u7684 {0} -doclet.Subclasses=\u76f4\u63a5\u5df2\u77e5\u5b50\u7c7b\uff1a -doclet.Subinterfaces=\u6240\u6709\u5df2\u77e5\u5b50\u63a5\u53e3\uff1a -doclet.Implementing_Classes=\u6240\u6709\u5df2\u77e5\u5b9e\u73b0\u7c7b\uff1a -doclet.also=\u5e76 +doclet.Class_Hierarchy=\u7C7B\u5206\u5C42\u7ED3\u6784 +doclet.Window_Class_Hierarchy=\u7C7B\u5206\u5C42\u7ED3\u6784 +doclet.Interface_Hierarchy=\u63A5\u53E3\u5206\u5C42\u7ED3\u6784 +doclet.Enum_Hierarchy=\u679A\u4E3E\u5206\u5C42\u7ED3\u6784 +doclet.Annotation_Type_Hierarchy=\u6CE8\u91CA\u7C7B\u578B\u5206\u5C42\u7ED3\u6784 +doclet.Prev=\u4E0A\u4E00\u4E2A +doclet.Next=\u4E0B\u4E00\u4E2A +doclet.Prev_Class=PREV CLASS +doclet.Next_Class=NEXT CLASS +doclet.Prev_Package=PREV PACKAGE +doclet.Next_Package=NEXT PACKAGE +doclet.Prev_Letter=PREV LETTER +doclet.Next_Letter=NEXT LETTER +doclet.Show_Lists=SHOW LISTS +doclet.Hide_Lists=HIDE LISTS +doclet.Href_Class_Title={0}\u4E2D\u7684\u7C7B +doclet.Href_Interface_Title={0}\u4E2D\u7684\u63A5\u53E3 +doclet.Href_Annotation_Title={0}\u4E2D\u7684\u6CE8\u91CA +doclet.Href_Enum_Title={0}\u4E2D\u7684\u679A\u4E3E +doclet.Href_Type_Param_Title={0}\u4E2D\u7684\u7C7B\u578B\u53C2\u6570 +doclet.Href_Class_Or_Interface_Title={0}\u4E2D\u7684\u7C7B\u6216\u63A5\u53E3 +doclet.Summary=SUMMARY: +doclet.Detail=DETAIL: +doclet.navNested=NESTED +doclet.navAnnotationTypeOptionalMember=OPTIONAL +doclet.navAnnotationTypeRequiredMember=REQUIRED +doclet.navAnnotationTypeMember=ELEMENT +doclet.navField=FIELD +doclet.navEnum=ENUM CONSTANTS +doclet.navConstructor=CONSTR +doclet.navMethod=METHOD +doclet.navFactoryMethod=FACTORY +doclet.Index=\u7D22\u5F15 +doclet.Window_Single_Index=\u7D22\u5F15 +doclet.Window_Split_Index={0} - \u7D22\u5F15 +doclet.Help=\u5E2E\u52A9 +doclet.Skip_navigation_links=\u8DF3\u8FC7\u5BFC\u822A\u94FE\u63A5 +doclet.None=\u65E0 +doclet.CLASSES=CLASSES +doclet.MEMBERS=MEMBERS +doclet.NONE=\u65E0 +doclet.Factory_Method_Detail=\u9759\u6001\u5DE5\u5382\u65B9\u6CD5\u8BE6\u7EC6\u8D44\u6599 +doclet.navDeprecated=\u5DF2\u8FC7\u65F6 +doclet.Deprecated_List=\u5DF2\u8FC7\u65F6\u7684\u5217\u8868 +doclet.Window_Deprecated_List=\u5DF2\u8FC7\u65F6\u7684\u5217\u8868 +doclet.Note_0_is_deprecated=\u6CE8: {0}\u5DF2\u8FC7\u65F6\u3002 +doclet.Overrides=\u8986\u76D6: +doclet.in_class=\u7C7B{1}\u4E2D\u7684{0} +doclet.0_Fields_and_Methods="{0}" \u5B57\u6BB5\u548C\u65B9\u6CD5 +doclet.Index_of_Fields_and_Methods=\u5B57\u6BB5\u548C\u65B9\u6CD5\u7684\u7D22\u5F15 +doclet.Static_variable_in={0}\u4E2D\u7684\u9759\u6001\u53D8\u91CF +doclet.Variable_in={0}\u4E2D\u7684\u53D8\u91CF +doclet.Constructor_for={0}\u7684\u6784\u9020\u5668 +doclet.Static_method_in={0}\u4E2D\u7684\u9759\u6001\u65B9\u6CD5 +doclet.Method_in={0}\u4E2D\u7684\u65B9\u6CD5 +doclet.throws=\u629B\u51FA +doclet.package=\u7A0B\u5E8F\u5305 +doclet.MalformedURL=\u683C\u5F0F\u9519\u8BEF\u7684 URL: {0} +doclet.File_error=\u8BFB\u53D6\u6587\u4EF6\u65F6\u51FA\u9519: {0} +doclet.URL_error=\u83B7\u53D6 URL \u65F6\u51FA\u9519: {0} +doclet.No_Package_Comment_File=\u5BF9\u4E8E\u7A0B\u5E8F\u5305{0}, \u627E\u4E0D\u5230 Package.Comment \u6587\u4EF6 +doclet.No_Source_For_Class=\u7C7B{0}\u7684\u6E90\u4FE1\u606F\u4E0D\u53EF\u7528\u3002 +doclet.see.class_or_package_not_found=\u6807\u8BB0{0}: \u627E\u4E0D\u5230\u5F15\u7528: {1} +doclet.see.class_or_package_not_accessible=\u6807\u8BB0{0}: \u65E0\u6CD5\u8BBF\u95EE\u5F15\u7528: {1} +doclet.see.malformed_tag=\u6807\u8BB0{0}: \u683C\u5F0F\u9519\u8BEF: {1} +doclet.Inherited_API_Summary=\u7EE7\u627F\u7684 API \u6982\u8981 +doclet.Deprecated_API=\u5DF2\u8FC7\u65F6\u7684 API +doclet.Deprecated_Classes=\u5DF2\u8FC7\u65F6\u7684\u7C7B +doclet.Deprecated_Enums=\u5DF2\u8FC7\u65F6\u7684\u679A\u4E3E +doclet.Deprecated_Interfaces=\u5DF2\u8FC7\u65F6\u7684\u63A5\u53E3 +doclet.Deprecated_Exceptions=\u5DF2\u8FC7\u65F6\u7684\u5F02\u5E38\u9519\u8BEF +doclet.Deprecated_Annotation_Types=\u5DF2\u8FC7\u65F6\u7684\u6CE8\u91CA\u7C7B\u578B +doclet.Deprecated_Errors=\u5DF2\u8FC7\u65F6\u7684\u9519\u8BEF +doclet.Deprecated_Fields=\u5DF2\u8FC7\u65F6\u7684\u5B57\u6BB5 +doclet.Deprecated_Constructors=\u5DF2\u8FC7\u65F6\u7684\u6784\u9020\u5668 +doclet.Deprecated_Methods=\u5DF2\u8FC7\u65F6\u7684\u65B9\u6CD5 +doclet.Deprecated_Enum_Constants=\u5DF2\u8FC7\u65F6\u7684\u679A\u4E3E\u5E38\u91CF +doclet.Deprecated_Annotation_Type_Members=\u5DF2\u8FC7\u65F6\u7684\u6CE8\u91CA\u7C7B\u578B\u5143\u7D20 +doclet.deprecated_classes=\u5DF2\u8FC7\u65F6\u7684\u7C7B +doclet.deprecated_enums=\u5DF2\u8FC7\u65F6\u7684\u679A\u4E3E +doclet.deprecated_interfaces=\u5DF2\u8FC7\u65F6\u7684\u63A5\u53E3 +doclet.deprecated_exceptions=\u5DF2\u8FC7\u65F6\u7684\u5F02\u5E38\u9519\u8BEF +doclet.deprecated_annotation_types=\u5DF2\u8FC7\u65F6\u7684\u6CE8\u91CA\u7C7B\u578B +doclet.deprecated_errors=\u5DF2\u8FC7\u65F6\u7684\u9519\u8BEF +doclet.deprecated_fields=\u5DF2\u8FC7\u65F6\u7684\u5B57\u6BB5 +doclet.deprecated_constructors=\u5DF2\u8FC7\u65F6\u7684\u6784\u9020\u5668 +doclet.deprecated_methods=\u5DF2\u8FC7\u65F6\u7684\u65B9\u6CD5 +doclet.deprecated_enum_constants=\u5DF2\u8FC7\u65F6\u7684\u679A\u4E3E\u5E38\u91CF +doclet.deprecated_annotation_type_members=\u5DF2\u8FC7\u65F6\u7684\u6CE8\u91CA\u7C7B\u578B\u5143\u7D20 +doclet.Frame_Output=\u6846\u67B6\u8F93\u51FA +doclet.Docs_generated_by_Javadoc=\u7531 Javadoc \u751F\u6210\u7684\u6587\u6863\u3002 +doclet.Generated_Docs_Untitled=\u751F\u6210\u7684\u6587\u6863 (\u65E0\u6807\u9898) +doclet.Blank=\u7A7A\u767D +doclet.Other_Packages=\u5176\u4ED6\u7A0B\u5E8F\u5305 +doclet.Package_Description=\u7A0B\u5E8F\u5305{0}\u7684\u8BF4\u660E +doclet.Description=\u8BF4\u660E +doclet.Specified_By=\u6307\u5B9A\u8005: +doclet.in_interface=\u63A5\u53E3{1}\u4E2D\u7684{0} +doclet.Subclasses=\u76F4\u63A5\u5DF2\u77E5\u5B50\u7C7B: +doclet.Subinterfaces=\u6240\u6709\u5DF2\u77E5\u5B50\u63A5\u53E3: +doclet.Implementing_Classes=\u6240\u6709\u5DF2\u77E5\u5B9E\u73B0\u7C7B: +doclet.also=\u5E76 doclet.Option=\u9009\u9879 doclet.Or=\u6216 -doclet.Frames=\u6846\u67b6 -doclet.FRAMES=\u6846\u67b6 -doclet.NO_FRAMES=\u65e0\u6846\u67b6 -doclet.Package_Hierarchies=\u8f6f\u4ef6\u5305\u5206\u5c42\u7ed3\u6784\uff1a -doclet.Hierarchy_For_Package=\u8f6f\u4ef6\u5305 {0} \u7684\u5206\u5c42\u7ed3\u6784 -doclet.Source_Code=\u6e90\u4ee3\u7801\uff1a -doclet.Hierarchy_For_All_Packages=\u6240\u6709\u8f6f\u4ef6\u5305\u7684\u5206\u5c42\u7ed3\u6784 -doclet.Cannot_handle_no_packages=\u65e0\u6cd5\u5904\u7406\u6ca1\u6709\u8f6f\u4ef6\u5305\u7684\u60c5\u51b5\u3002 -doclet.Frame_Alert=\u6846\u67b6\u8b66\u62a5 -doclet.Overview-Member-Frame=\u6210\u5458\u6846\u67b6\u6982\u8ff0 -doclet.Frame_Warning_Message=\u8bf7\u4f7f\u7528\u6846\u67b6\u529f\u80fd\u67e5\u770b\u6b64\u6587\u6863\u3002\u5982\u679c\u770b\u5230\u6b64\u6d88\u606f\uff0c\u5219\u8868\u660e\u60a8\u4f7f\u7528\u7684\u662f\u4e0d\u652f\u6301\u6846\u67b6\u7684 Web \u5ba2\u6237\u673a\u3002 -doclet.Non_Frame_Version=\u975e\u6846\u67b6\u7248\u672c\u3002 -doclet.Frame_Version=\u6846\u67b6\u7248\u672c -doclet.Link_To=\u94fe\u63a5\u5230 -doclet.Following_From_Class=\u4ee5\u4e0b\u5185\u5bb9\u662f\u4ece\u7c7b {0} \u590d\u5236\u7684 -doclet.Following_From_Interface=\u4ee5\u4e0b\u5185\u5bb9\u662f\u4ece\u63a5\u53e3 {0} \u590d\u5236\u7684 -doclet.Description_From_Interface=\u4ece\u63a5\u53e3 {0} \u590d\u5236\u7684\u63cf\u8ff0 -doclet.Description_From_Class=\u4ece\u7c7b {0} \u590d\u5236\u7684\u63cf\u8ff0 -doclet.Standard_doclet_invoked=\u5df2\u8c03\u7528\u7684\u6807\u51c6 doclet... -doclet.No_Non_Deprecated_Classes_To_Document=\u627e\u4e0d\u5230\u53ef\u4ee5\u6587\u6863\u5316\u7684\u672a\u8fc7\u65f6\u7684\u7c7b\u3002 -doclet.Interfaces_Italic=\u63a5\u53e3\uff08\u659c\u4f53\uff09 -doclet.Enclosing_Class=\u5305\u5bb9\u7c7b\uff1a -doclet.Enclosing_Interface=\u6b63\u5728\u5c01\u95ed\u63a5\u53e3\uff1a -doclet.Help_title=API \u5e2e\u52a9 -doclet.Window_Help_title=API \u5e2e\u52a9 -doclet.Help_line_1=\u6b64 API \u6587\u6863\u7684\u7ec4\u7ec7\u65b9\u5f0f -doclet.Help_line_2=\u6b64 API\uff08\u5e94\u7528\u7a0b\u5e8f\u7f16\u7a0b\u63a5\u53e3\uff09\u6587\u6863\u5305\u542b\u5bf9\u5e94\u4e8e\u5bfc\u822a\u680f\u4e2d\u7684\u9879\u76ee\u7684\u9875\u9762\uff0c\u5982\u4e0b\u6240\u8ff0\u3002 -doclet.Help_line_3={0} \u9875\u9762\u662f\u6b64 API \u6587\u6863\u7684\u9996\u9875\uff0c\u63d0\u4f9b\u4e86\u6240\u6709\u8f6f\u4ef6\u5305\u7684\u5217\u8868\u53ca\u5176\u6458\u8981\u3002\u6b64\u9875\u9762\u4e5f\u53ef\u80fd\u5305\u542b\u8fd9\u4e9b\u8f6f\u4ef6\u5305\u7684\u603b\u4f53\u63cf\u8ff0\u3002 -doclet.Help_line_4=\u6bcf\u4e2a\u8f6f\u4ef6\u5305\u90fd\u6709\u4e00\u4e2a\u9875\u9762\uff0c\u5176\u4e2d\u5305\u542b\u5b83\u7684\u7c7b\u548c\u63a5\u53e3\u7684\u5217\u8868\u53ca\u5176\u6458\u8981\u3002\u6b64\u9875\u9762\u53ef\u4ee5\u5305\u542b\u56db\u4e2a\u7c7b\u522b\uff1a -doclet.Help_line_5=\u7c7b/\u63a5\u53e3 -doclet.Help_line_6=\u6bcf\u4e2a\u7c7b\u3001\u63a5\u53e3\u3001\u5d4c\u5957\u7c7b\u548c\u5d4c\u5957\u63a5\u53e3\u90fd\u6709\u5404\u81ea\u7684\u9875\u9762\u3002\u5176\u4e2d\u6bcf\u4e2a\u9875\u9762\u90fd\u7531\u4e09\u90e8\u5206\uff08\u7c7b/\u63a5\u53e3\u63cf\u8ff0\u3001\u6458\u8981\u8868\uff0c\u4ee5\u53ca\u8be6\u7ec6\u7684\u6210\u5458\u63cf\u8ff0\uff09\u7ec4\u6210\uff1a -doclet.Help_line_7=\u7c7b\u7ee7\u627f\u56fe -doclet.Help_line_8=\u76f4\u63a5\u5b50\u7c7b -doclet.Help_line_9=\u6240\u6709\u5df2\u77e5\u5b50\u63a5\u53e3 -doclet.Help_line_10=\u6240\u6709\u5df2\u77e5\u5b9e\u73b0\u7c7b -doclet.Help_line_11=\u7c7b/\u63a5\u53e3\u58f0\u660e -doclet.Help_line_12=\u7c7b/\u63a5\u53e3\u63cf\u8ff0 -doclet.Help_line_13=\u6bcf\u4e2a\u6458\u8981\u6761\u76ee\u90fd\u5305\u542b\u8be5\u9879\u76ee\u7684\u8be6\u7ec6\u63cf\u8ff0\u7684\u7b2c\u4e00\u53e5\u3002\u6458\u8981\u6761\u76ee\u6309\u5b57\u6bcd\u987a\u5e8f\u6392\u5217\uff0c\u800c\u8be6\u7ec6\u63cf\u8ff0\u5219\u6309\u5176\u5728\u6e90\u4ee3\u7801\u4e2d\u51fa\u73b0\u7684\u987a\u5e8f\u6392\u5217\u3002\u8fd9\u6837\u4fdd\u6301\u4e86\u7a0b\u5e8f\u5458\u6240\u5efa\u7acb\u7684\u903b\u8f91\u5206\u7ec4\u3002 -doclet.Help_line_14=\u4f7f\u7528 -doclet.Help_line_15=\u6bcf\u4e2a\u5df2\u6587\u6863\u5316\u7684\u8f6f\u4ef6\u5305\u3001\u7c7b\u548c\u63a5\u53e3\u90fd\u6709\u5404\u81ea\u7684\u201c\u4f7f\u7528\u201d\u9875\u9762\u3002\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u4f7f\u7528\u7ed9\u5b9a\u7c7b\u6216\u8f6f\u4ef6\u5305\u7684\u4efb\u4f55\u90e8\u5206\u7684\u8f6f\u4ef6\u5305\u3001\u7c7b\u3001\u65b9\u6cd5\u3001\u6784\u9020\u65b9\u6cd5\u548c\u5b57\u6bb5\u3002\u5bf9\u4e8e\u7ed9\u5b9a\u7684\u7c7b\u6216\u63a5\u53e3 A\uff0c\u5176\u201c\u4f7f\u7528\u201d\u9875\u9762\u5305\u542b A \u7684\u5b50\u7c7b\u3001\u58f0\u660e\u4e3a A \u7684\u5b57\u6bb5\u3001\u8fd4\u56de A \u7684\u65b9\u6cd5\uff0c\u4ee5\u53ca\u5e26\u6709\u7c7b\u578b\u4e3a A \u7684\u53c2\u6570\u7684\u65b9\u6cd5\u548c\u6784\u9020\u65b9\u6cd5\u3002\u8bbf\u95ee\u6b64\u9875\u9762\u7684\u65b9\u6cd5\u662f\uff1a\u9996\u5148\u8f6c\u81f3\u8f6f\u4ef6\u5305\u3001\u7c7b\u6216\u63a5\u53e3\uff0c\u7136\u540e\u5355\u51fb\u5bfc\u822a\u680f\u4e2d\u7684\u201c\u4f7f\u7528\u201d\u94fe\u63a5\u3002 -doclet.Help_line_16=\u6811\uff08\u7c7b\u5206\u5c42\u7ed3\u6784\uff09 -doclet.Help_line_17_with_tree_link=\u5bf9\u4e8e\u6240\u6709\u8f6f\u4ef6\u5305\uff0c\u6709\u4e00\u4e2a {0} \u9875\u9762\uff0c\u4ee5\u53ca\u6bcf\u4e2a\u8f6f\u4ef6\u5305\u7684\u5206\u5c42\u7ed3\u6784\u3002\u6bcf\u4e2a\u5206\u5c42\u7ed3\u6784\u9875\u9762\u90fd\u5305\u542b\u7c7b\u7684\u5217\u8868\u548c\u63a5\u53e3\u7684\u5217\u8868\u3002\u4ece <code>java.lang.Object</code> \u5f00\u59cb\uff0c\u6309\u7ee7\u627f\u7ed3\u6784\u5bf9\u7c7b\u8fdb\u884c\u6392\u5217\u3002\u63a5\u53e3\u4e0d\u4ece <code>java.lang.Object</code> \u7ee7\u627f\u3002 -doclet.Help_line_18=\u67e5\u770b\u201c\u6982\u8ff0\u201d\u9875\u9762\u65f6\uff0c\u5355\u51fb\u201c\u6811\u201d\u5c06\u663e\u793a\u6240\u6709\u8f6f\u4ef6\u5305\u7684\u5206\u5c42\u7ed3\u6784\u3002 -doclet.Help_line_19=\u67e5\u770b\u7279\u5b9a\u8f6f\u4ef6\u5305\u3001\u7c7b\u6216\u63a5\u53e3\u9875\u9762\u65f6\uff0c\u5355\u51fb\u201c\u6811\u201d\u5c06\u4ec5\u663e\u793a\u8be5\u8f6f\u4ef6\u5305\u7684\u5206\u5c42\u7ed3\u6784\u3002 -doclet.Help_line_20_with_deprecated_api_link={0} \u9875\u9762\u5217\u51fa\u4e86\u6240\u6709\u5df2\u8fc7\u65f6\u7684 API\u3002\u4e00\u822c\u7531\u4e8e\u8fdb\u884c\u4e86\u6539\u8fdb\u5e76\u4e14\u901a\u5e38\u63d0\u4f9b\u4e86\u66ff\u4ee3\u7684 API\uff0c\u6240\u4ee5\u5efa\u8bae\u4e0d\u8981\u4f7f\u7528\u5df2\u8fc7\u65f6\u7684 API\u3002\u5728\u5c06\u6765\u7684\u5b9e\u65bd\u8fc7\u7a0b\u4e2d\uff0c\u53ef\u80fd\u4f1a\u5220\u9664\u5df2\u8fc7\u65f6\u7684 API\u3002 -doclet.Help_line_21=\u7d22\u5f15 -doclet.Help_line_22={0} \u5305\u542b\u6309\u5b57\u6bcd\u987a\u5e8f\u6392\u5217\u7684\u6240\u6709\u7c7b\u3001\u63a5\u53e3\u3001\u6784\u9020\u65b9\u6cd5\u3001\u65b9\u6cd5\u548c\u5b57\u6bb5\u7684\u5217\u8868\u3002 -doclet.Help_line_23=\u4e0a\u4e00\u4e2a/\u4e0b\u4e00\u4e2a -doclet.Help_line_24=\u8fd9\u4e9b\u94fe\u63a5\u4f7f\u60a8\u53ef\u4ee5\u8f6c\u81f3\u4e0b\u4e00\u4e2a\u6216\u4e0a\u4e00\u4e2a\u7c7b\u3001\u63a5\u53e3\u3001\u8f6f\u4ef6\u5305\u6216\u76f8\u5173\u9875\u9762\u3002 -doclet.Help_line_25=\u6846\u67b6/\u65e0\u6846\u67b6 -doclet.Help_line_26=\u8fd9\u4e9b\u94fe\u63a5\u7528\u4e8e\u663e\u793a\u548c\u9690\u85cf HTML \u6846\u67b6\u3002\u6240\u6709\u9875\u9762\u5747\u5177\u6709\u6709\u6846\u67b6\u548c\u65e0\u6846\u67b6\u4e24\u79cd\u663e\u793a\u65b9\u5f0f\u3002 -doclet.Help_line_27=\u6bcf\u4e2a\u53ef\u5e8f\u5217\u5316\u6216\u53ef\u5916\u90e8\u5316\u7684\u7c7b\u90fd\u6709\u5176\u5e8f\u5217\u5316\u5b57\u6bb5\u548c\u65b9\u6cd5\u7684\u63cf\u8ff0\u3002\u6b64\u4fe1\u606f\u5bf9\u91cd\u65b0\u5b9e\u73b0\u8005\u6709\u7528\uff0c\u800c\u5bf9\u4f7f\u7528 API \u7684\u5f00\u53d1\u8005\u5219\u6ca1\u6709\u4ec0\u4e48\u7528\u5904\u3002\u5c3d\u7ba1\u5bfc\u822a\u680f\u4e2d\u6ca1\u6709\u94fe\u63a5\uff0c\u4f46\u60a8\u53ef\u4ee5\u901a\u8fc7\u4e0b\u5217\u65b9\u5f0f\u83b7\u53d6\u6b64\u4fe1\u606f\uff1a\u8f6c\u81f3\u4efb\u4f55\u5e8f\u5217\u5316\u7c7b\uff0c\u7136\u540e\u5355\u51fb\u7c7b\u63cf\u8ff0\u7684\u201c\u53e6\u8bf7\u53c2\u89c1\u201d\u90e8\u5206\u4e2d\u7684\u201c\u5e8f\u5217\u5316\u8868\u683c\u201d\u3002 -doclet.Help_line_28=<a href="constant-values.html">\u5e38\u91cf\u5b57\u6bb5\u503c</a>\u9875\u9762\u5217\u51fa\u4e86\u9759\u6001\u6700\u7ec8\u5b57\u6bb5\u53ca\u5176\u503c\u3002 -doclet.Help_line_29=\u6b64\u5e2e\u52a9\u6587\u4ef6\u9002\u7528\u4e8e\u4f7f\u7528\u6807\u51c6 doclet \u751f\u6210\u7684 API \u6587\u6863\u3002 -doclet.Help_enum_line_1=\u6bcf\u4e2a\u679a\u4e3e\u90fd\u6709\u5404\u81ea\u7684\u9875\u9762\uff0c\u5176\u4e2d\u5305\u542b\u4ee5\u4e0b\u90e8\u5206\uff1a -doclet.Help_enum_line_2=\u679a\u4e3e\u58f0\u660e -doclet.Help_enum_line_3=\u679a\u4e3e\u63cf\u8ff0 -doclet.Help_annotation_type_line_1=\u6bcf\u4e2a\u6ce8\u91ca\u7c7b\u578b\u90fd\u6709\u5404\u81ea\u7684\u9875\u9762\uff0c\u5176\u4e2d\u5305\u542b\u4ee5\u4e0b\u90e8\u5206\uff1a -doclet.Help_annotation_type_line_2=\u6ce8\u91ca\u7c7b\u578b\u58f0\u660e -doclet.Help_annotation_type_line_3=\u6ce8\u91ca\u7c7b\u578b\u63cf\u8ff0 -doclet.The=The -doclet.Style_line_1=Javadoc \u6837\u5f0f\u8868 -doclet.Style_line_2=\u5728\u6b64\u5904\u5b9a\u4e49\u989c\u8272\u3001\u5b57\u4f53\u548c\u5176\u4ed6\u6837\u5f0f\u5c5e\u6027\u4ee5\u8986\u76d6\u9ed8\u8ba4\u503c -doclet.Style_line_3=\u9875\u9762\u80cc\u666f\u989c\u8272 +doclet.Frames=\u6846\u67B6 +doclet.FRAMES=FRAMES +doclet.NO_FRAMES=NO FRAMES +doclet.Package_Hierarchies=\u7A0B\u5E8F\u5305\u5206\u5C42\u7ED3\u6784: +doclet.Hierarchy_For_Package=\u7A0B\u5E8F\u5305{0}\u7684\u5206\u5C42\u7ED3\u6784 +doclet.Source_Code=\u6E90\u4EE3\u7801: +doclet.Hierarchy_For_All_Packages=\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784 +doclet.Cannot_handle_no_packages=\u65E0\u6CD5\u5904\u7406\u6CA1\u6709\u7A0B\u5E8F\u5305\u7684\u60C5\u51B5\u3002 +doclet.Frame_Alert=\u6846\u67B6\u9884\u8B66 +doclet.Overview-Member-Frame=\u6210\u5458\u6846\u67B6\u6982\u89C8 +doclet.Frame_Warning_Message=\u8BF7\u4F7F\u7528\u6846\u67B6\u529F\u80FD\u67E5\u770B\u6B64\u6587\u6863\u3002\u5982\u679C\u770B\u5230\u6B64\u6D88\u606F, \u5219\u8868\u660E\u60A8\u4F7F\u7528\u7684\u662F\u4E0D\u652F\u6301\u6846\u67B6\u7684 Web \u5BA2\u6237\u673A\u3002 +doclet.Non_Frame_Version=\u975E\u6846\u67B6\u7248\u672C\u3002 +doclet.Frame_Version=\u6846\u67B6\u7248\u672C +doclet.Link_To=\u94FE\u63A5\u5230 +doclet.Following_From_Class=\u4EE5\u4E0B\u5185\u5BB9\u662F\u4ECE\u7C7B{0}\u590D\u5236\u7684 +doclet.Following_From_Interface=\u4EE5\u4E0B\u5185\u5BB9\u662F\u4ECE\u63A5\u53E3{0}\u590D\u5236\u7684 +doclet.Description_From_Interface=\u4ECE\u63A5\u53E3{0}\u590D\u5236\u7684\u8BF4\u660E +doclet.Description_From_Class=\u4ECE\u7C7B{0}\u590D\u5236\u7684\u8BF4\u660E +doclet.Standard_doclet_invoked=\u5DF2\u8C03\u7528\u7684\u6807\u51C6 doclet... +doclet.No_Non_Deprecated_Classes_To_Document=\u627E\u4E0D\u5230\u53EF\u4EE5\u6587\u6863\u5316\u7684\u672A\u8FC7\u65F6\u7684\u7C7B\u3002 +doclet.Interfaces_Italic=\u63A5\u53E3 (\u659C\u4F53) +doclet.Enclosing_Class=\u5C01\u95ED\u7C7B: +doclet.Enclosing_Interface=\u5C01\u95ED\u63A5\u53E3: +doclet.Help_title=API \u5E2E\u52A9 +doclet.Window_Help_title=API \u5E2E\u52A9 +doclet.Help_line_1=\u6B64 API \u6587\u6863\u7684\u7EC4\u7EC7\u65B9\u5F0F +doclet.Help_line_2=\u6B64 API (\u5E94\u7528\u7A0B\u5E8F\u7F16\u7A0B\u63A5\u53E3) \u6587\u6863\u5305\u542B\u5BF9\u5E94\u4E8E\u5BFC\u822A\u680F\u4E2D\u7684\u9879\u76EE\u7684\u9875\u9762, \u5982\u4E0B\u6240\u8FF0\u3002 +doclet.Help_line_3={0} \u9875\u9762\u662F\u6B64 API \u6587\u6863\u7684\u9996\u9875, \u63D0\u4F9B\u4E86\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u4E5F\u53EF\u80FD\u5305\u542B\u8FD9\u4E9B\u7A0B\u5E8F\u5305\u7684\u603B\u4F53\u8BF4\u660E\u3002 +doclet.Help_line_4=\u6BCF\u4E2A\u7A0B\u5E8F\u5305\u90FD\u6709\u4E00\u4E2A\u9875\u9762, \u5176\u4E2D\u5305\u542B\u5B83\u7684\u7C7B\u548C\u63A5\u53E3\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u53EF\u4EE5\u5305\u542B\u56DB\u4E2A\u7C7B\u522B: +doclet.Help_line_5=\u7C7B/\u63A5\u53E3 +doclet.Help_line_6=\u6BCF\u4E2A\u7C7B, \u63A5\u53E3, \u5D4C\u5957\u7C7B\u548C\u5D4C\u5957\u63A5\u53E3\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762\u3002\u5176\u4E2D\u6BCF\u4E2A\u9875\u9762\u90FD\u7531\u4E09\u90E8\u5206 (\u7C7B/\u63A5\u53E3\u8BF4\u660E, \u6982\u8981\u8868, \u4EE5\u53CA\u8BE6\u7EC6\u7684\u6210\u5458\u8BF4\u660E) \u7EC4\u6210: +doclet.Help_line_7=\u7C7B\u7EE7\u627F\u56FE +doclet.Help_line_8=\u76F4\u63A5\u5B50\u7C7B +doclet.Help_line_9=\u6240\u6709\u5DF2\u77E5\u5B50\u63A5\u53E3 +doclet.Help_line_10=\u6240\u6709\u5DF2\u77E5\u5B9E\u73B0\u7C7B +doclet.Help_line_11=\u7C7B/\u63A5\u53E3\u58F0\u660E +doclet.Help_line_12=\u7C7B/\u63A5\u53E3\u8BF4\u660E +doclet.Help_line_13=\u6BCF\u4E2A\u6982\u8981\u6761\u76EE\u90FD\u5305\u542B\u8BE5\u9879\u76EE\u7684\u8BE6\u7EC6\u8BF4\u660E\u7684\u7B2C\u4E00\u53E5\u3002\u6982\u8981\u6761\u76EE\u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217, \u800C\u8BE6\u7EC6\u8BF4\u660E\u5219\u6309\u5176\u5728\u6E90\u4EE3\u7801\u4E2D\u51FA\u73B0\u7684\u987A\u5E8F\u6392\u5217\u3002\u8FD9\u6837\u4FDD\u6301\u4E86\u7A0B\u5E8F\u5458\u6240\u5EFA\u7ACB\u7684\u903B\u8F91\u5206\u7EC4\u3002 +doclet.Help_line_14=\u4F7F\u7528 +doclet.Help_line_15=\u6BCF\u4E2A\u5DF2\u6587\u6863\u5316\u7684\u7A0B\u5E8F\u5305, \u7C7B\u548C\u63A5\u53E3\u90FD\u6709\u5404\u81EA\u7684\u201C\u4F7F\u7528\u201D\u9875\u9762\u3002\u6B64\u9875\u9762\u4ECB\u7ECD\u4E86\u4F7F\u7528\u7ED9\u5B9A\u7C7B\u6216\u7A0B\u5E8F\u5305\u7684\u4EFB\u4F55\u90E8\u5206\u7684\u7A0B\u5E8F\u5305, \u7C7B, \u65B9\u6CD5, \u6784\u9020\u5668\u548C\u5B57\u6BB5\u3002\u5BF9\u4E8E\u7ED9\u5B9A\u7684\u7C7B\u6216\u63A5\u53E3 A, \u5176\u201C\u4F7F\u7528\u201D\u9875\u9762\u5305\u542B A \u7684\u5B50\u7C7B, \u58F0\u660E\u4E3A A \u7684\u5B57\u6BB5, \u8FD4\u56DE A \u7684\u65B9\u6CD5, \u4EE5\u53CA\u5E26\u6709\u7C7B\u578B\u4E3A A \u7684\u53C2\u6570\u7684\u65B9\u6CD5\u548C\u6784\u9020\u5668\u3002\u8BBF\u95EE\u6B64\u9875\u9762\u7684\u65B9\u6CD5\u662F: \u9996\u5148\u8F6C\u81F3\u7A0B\u5E8F\u5305, \u7C7B\u6216\u63A5\u53E3, \u7136\u540E\u5355\u51FB\u5BFC\u822A\u680F\u4E2D\u7684 "\u4F7F\u7528" \u94FE\u63A5\u3002 +doclet.Help_line_16=\u6811 (\u7C7B\u5206\u5C42\u7ED3\u6784) +doclet.Help_line_17_with_tree_link=\u5BF9\u4E8E\u6240\u6709\u7A0B\u5E8F\u5305, \u6709\u4E00\u4E2A {0} \u9875\u9762, \u4EE5\u53CA\u6BCF\u4E2A\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002\u6BCF\u4E2A\u5206\u5C42\u7ED3\u6784\u9875\u9762\u90FD\u5305\u542B\u7C7B\u7684\u5217\u8868\u548C\u63A5\u53E3\u7684\u5217\u8868\u3002\u4ECE <code>java.lang.Object</code> \u5F00\u59CB, \u6309\u7EE7\u627F\u7ED3\u6784\u5BF9\u7C7B\u8FDB\u884C\u6392\u5217\u3002\u63A5\u53E3\u4E0D\u4ECE <code>java.lang.Object</code> \u7EE7\u627F\u3002 +doclet.Help_line_18=\u67E5\u770B\u201C\u6982\u89C8\u201D\u9875\u9762\u65F6, \u5355\u51FB "\u6811" \u5C06\u663E\u793A\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002 +doclet.Help_line_19=\u67E5\u770B\u7279\u5B9A\u7A0B\u5E8F\u5305, \u7C7B\u6216\u63A5\u53E3\u9875\u9762\u65F6, \u5355\u51FB "\u6811" \u5C06\u4EC5\u663E\u793A\u8BE5\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002 +doclet.Help_line_20_with_deprecated_api_link={0} \u9875\u9762\u5217\u51FA\u4E86\u6240\u6709\u5DF2\u8FC7\u65F6\u7684 API\u3002\u4E00\u822C\u7531\u4E8E\u8FDB\u884C\u4E86\u6539\u8FDB\u5E76\u4E14\u901A\u5E38\u63D0\u4F9B\u4E86\u66FF\u4EE3\u7684 API, \u6240\u4EE5\u5EFA\u8BAE\u4E0D\u8981\u4F7F\u7528\u5DF2\u8FC7\u65F6\u7684 API\u3002\u5728\u5C06\u6765\u7684\u5B9E\u73B0\u8FC7\u7A0B\u4E2D, \u53EF\u80FD\u4F1A\u5220\u9664\u5DF2\u8FC7\u65F6\u7684 API\u3002 +doclet.Help_line_21=\u7D22\u5F15 +doclet.Help_line_22={0} \u5305\u542B\u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217\u7684\u6240\u6709\u7C7B, \u63A5\u53E3, \u6784\u9020\u5668, \u65B9\u6CD5\u548C\u5B57\u6BB5\u7684\u5217\u8868\u3002 +doclet.Help_line_23=\u4E0A\u4E00\u4E2A/\u4E0B\u4E00\u4E2A +doclet.Help_line_24=\u8FD9\u4E9B\u94FE\u63A5\u4F7F\u60A8\u53EF\u4EE5\u8F6C\u81F3\u4E0B\u4E00\u4E2A\u6216\u4E0A\u4E00\u4E2A\u7C7B, \u63A5\u53E3, \u7A0B\u5E8F\u5305\u6216\u76F8\u5173\u9875\u9762\u3002 +doclet.Help_line_25=\u6846\u67B6/\u65E0\u6846\u67B6 +doclet.Help_line_26=\u8FD9\u4E9B\u94FE\u63A5\u7528\u4E8E\u663E\u793A\u548C\u9690\u85CF HTML \u6846\u67B6\u3002\u6240\u6709\u9875\u9762\u5747\u5177\u6709\u6709\u6846\u67B6\u548C\u65E0\u6846\u67B6\u4E24\u79CD\u663E\u793A\u65B9\u5F0F\u3002 +doclet.Help_line_27=\u6BCF\u4E2A\u53EF\u5E8F\u5217\u5316\u6216\u53EF\u5916\u90E8\u5316\u7684\u7C7B\u90FD\u6709\u5176\u5E8F\u5217\u5316\u5B57\u6BB5\u548C\u65B9\u6CD5\u7684\u8BF4\u660E\u3002\u6B64\u4FE1\u606F\u5BF9\u91CD\u65B0\u5B9E\u73B0\u8005\u6709\u7528, \u800C\u5BF9\u4F7F\u7528 API \u7684\u5F00\u53D1\u8005\u5219\u6CA1\u6709\u4EC0\u4E48\u7528\u5904\u3002\u5C3D\u7BA1\u5BFC\u822A\u680F\u4E2D\u6CA1\u6709\u94FE\u63A5, \u4F46\u60A8\u53EF\u4EE5\u901A\u8FC7\u4E0B\u5217\u65B9\u5F0F\u83B7\u53D6\u6B64\u4FE1\u606F: \u8F6C\u81F3\u4EFB\u4F55\u5E8F\u5217\u5316\u7C7B, \u7136\u540E\u5355\u51FB\u7C7B\u8BF4\u660E\u7684 "\u53E6\u8BF7\u53C2\u9605" \u90E8\u5206\u4E2D\u7684 "\u5E8F\u5217\u5316\u8868\u683C"\u3002 +doclet.Help_line_28=<a href="constant-values.html">\u5E38\u91CF\u5B57\u6BB5\u503C</a>\u9875\u9762\u5217\u51FA\u4E86\u9759\u6001\u6700\u7EC8\u5B57\u6BB5\u53CA\u5176\u503C\u3002 +doclet.Help_line_29=\u6B64\u5E2E\u52A9\u6587\u4EF6\u9002\u7528\u4E8E\u4F7F\u7528\u6807\u51C6 doclet \u751F\u6210\u7684 API \u6587\u6863\u3002 +doclet.Help_enum_line_1=\u6BCF\u4E2A\u679A\u4E3E\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206: +doclet.Help_enum_line_2=\u679A\u4E3E\u58F0\u660E +doclet.Help_enum_line_3=\u679A\u4E3E\u8BF4\u660E +doclet.Help_annotation_type_line_1=\u6BCF\u4E2A\u6CE8\u91CA\u7C7B\u578B\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206: +doclet.Help_annotation_type_line_2=\u6CE8\u91CA\u7C7B\u578B\u58F0\u660E +doclet.Help_annotation_type_line_3=\u6CE8\u91CA\u7C7B\u578B\u8BF4\u660E +doclet.The=\u8BE5 +doclet.Style_line_1=Javadoc \u6837\u5F0F\u8868 +doclet.Style_line_2=\u5728\u6B64\u5904\u5B9A\u4E49\u989C\u8272, \u5B57\u4F53\u548C\u5176\u4ED6\u6837\u5F0F\u5C5E\u6027\u4EE5\u8986\u76D6\u9ED8\u8BA4\u503C +doclet.Style_line_3=\u9875\u9762\u80CC\u666F\u989C\u8272 doclet.Style_Headings=\u6807\u9898 -doclet.Style_line_4=\u8868\u683c\u989c\u8272 -doclet.Style_line_5=\u6df1\u7d2b\u8272 -doclet.Style_line_6=\u6de1\u7d2b\u8272 -doclet.Style_line_7=\u767d\u8272 -doclet.Style_line_8=\u5de6\u4fa7\u7684\u6846\u67b6\u5217\u8868\u4e2d\u4f7f\u7528\u7684\u5b57\u4f53 -doclet.Style_line_9=\u6846\u67b6\u4e2d\u5c0f\u53f7 sans-serif \u5b57\u4f53\u7684\u793a\u4f8b -doclet.Style_line_10=\u5bfc\u822a\u680f\u5b57\u4f53\u548c\u989c\u8272 -doclet.Style_line_11=\u6df1\u84dd\u8272 -doclet.Style_line_12=\u8868\u683c\u6807\u9898\u6837\u5f0f -doclet.ClassUse_Packages.that.use.0=\u4f7f\u7528 {0} \u7684\u8f6f\u4ef6\u5305 -doclet.ClassUse_Uses.of.0.in.1={1} \u4e2d {0} \u7684\u4f7f\u7528 -doclet.ClassUse_Classes.in.0.used.by.1={1} \u4f7f\u7528\u7684 {0} \u4e2d\u7684\u7c7b -doclet.ClassUse_PackageAnnotation=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684\u8f6f\u4ef6\u5305 -doclet.ClassUse_Annotation=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u7c7b -doclet.ClassUse_TypeParameter=\u7c7b\u578b\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u7c7b -doclet.ClassUse_MethodTypeParameter=\u7c7b\u578b\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5 -doclet.ClassUse_FieldTypeParameter=\u7c7b\u578b\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u5b57\u6bb5 -doclet.ClassUse_FieldAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u5b57\u6bb5 -doclet.ClassUse_MethodAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5 -doclet.ClassUse_MethodParameterAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5\u53c2\u6570 -doclet.ClassUse_MethodReturnTypeParameter=\u8fd4\u56de\u53d8\u91cf\u7c7b\u578b\u4e3a {0} \u7684\u7c7b\u578b\u7684 {1} \u4e2d\u7684\u65b9\u6cd5 -doclet.ClassUse_Subclass={1} \u4e2d {0} \u7684\u5b50\u7c7b -doclet.ClassUse_Subinterface={1} \u4e2d {0} \u7684\u5b50\u63a5\u53e3 -doclet.ClassUse_ImplementingClass=\u5b9e\u73b0 {0} \u7684 {1} \u4e2d\u7684\u7c7b -doclet.ClassUse_Field=\u58f0\u660e\u4e3a {0} \u7684 {1} \u4e2d\u7684\u5b57\u6bb5 -doclet.ClassUse_MethodReturn=\u8fd4\u56de {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5 -doclet.ClassUse_MethodArgs=\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5 -doclet.ClassUse_MethodArgsTypeParameters=\u7c7b\u578b\u53d8\u91cf\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5\u53c2\u6570 -doclet.ClassUse_MethodThrows=\u629b\u51fa {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5 -doclet.ClassUse_ConstructorAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5 -doclet.ClassUse_ConstructorParameterAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5\u53c2\u6570 -doclet.ClassUse_ConstructorArgs=\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5 -doclet.ClassUse_ConstructorArgsTypeParameters=\u7c7b\u578b\u53d8\u91cf\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5\u53c2\u6570 -doclet.ClassUse_ConstructorThrows=\u629b\u51fa {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5 -doclet.ClassUse_No.usage.of.0=\u6ca1\u6709 {0} \u7684\u7528\u6cd5 -doclet.Window_ClassUse_Header={0} {1} \u7684\u4f7f\u7528 -doclet.ClassUse_Title={0} {1}<br>\u7684\u4f7f\u7528 -doclet.navClassUse=\u4f7f\u7528 -doclet.link_option_twice=\u5916\u90e8 URL \u94fe\u63a5\u9009\u9879\uff08link \u6216 linkoffline\uff09\u4f7f\u7528\u4e86\u4e24\u6b21\u3002 -doclet.Error_in_packagelist=\u4f7f\u7528 -group \u9009\u9879\u65f6\u51fa\u9519\uff1a {0} {1} -doclet.Groupname_already_used=\u5728 -group \u9009\u9879\u4e2d\uff0cgroupname \u5df2\u4f7f\u7528\uff1a {0} -doclet.Same_package_name_used=\u8f6f\u4ef6\u5305\u540d\u79f0\u5f62\u5f0f\u4f7f\u7528\u4e86\u4e24\u6b21\uff1a {0} -doclet.Serialization.Excluded_Class=\u975e\u77ac\u6001\u5b57\u6bb5 {1} \u4f7f\u7528\u4e86\u6392\u9664\u7684\u7c7b {0}\u3002 -doclet.Serialization.Nonexcluded_Class=\u975e\u77ac\u6001\u5b57\u6bb5 {1} \u4f7f\u7528\u4e86\u9690\u85cf\u7684\u3001\u672a\u5305\u542b\u7684\u7c7b {0}\u3002 -doclet.usage=\u901a\u8fc7\u6807\u51c6 doclet \u63d0\u4f9b:\n-d <directory> \u8f93\u51fa\u6587\u4ef6\u7684\u76ee\u6807\u76ee\u5f55\n-use \u521b\u5efa\u7c7b\u548c\u5305\u7528\u6cd5\u9875\u9762\n-version \u5305\u542b @version \u6bb5\n-author \u5305\u542b @author \u6bb5\n-docfilessubdirs \u9012\u5f52\u590d\u5236\u6587\u6863\u6587\u4ef6\u5b50\u76ee\u5f55\n-splitindex \u5c06\u7d22\u5f15\u5206\u4e3a\u6bcf\u4e2a\u5b57\u6bcd\u5bf9\u5e94\u4e00\u4e2a\u6587\u4ef6\n-windowtitle <text> \u6587\u6863\u7684\u6d4f\u89c8\u5668\u7a97\u53e3\u6807\u9898\n-doctitle <html-code> \u5305\u542b\u6982\u8ff0\u9875\u9762\u7684\u6807\u9898\n-header <html-code> \u5305\u542b\u6bcf\u4e2a\u9875\u9762\u7684\u9875\u7709\u6587\u672c\n-footer <html-code> \u5305\u542b\u6bcf\u4e2a\u9875\u9762\u7684\u9875\u811a\u6587\u672c\n-top <html-code> \u5305\u542b\u6bcf\u4e2a\u9875\u9762\u7684\u9876\u90e8\u6587\u672c\n-bottom <html-code> \u5305\u542b\u6bcf\u4e2a\u9875\u9762\u7684\u5e95\u90e8\u6587\u672c\n-link <url> \u521b\u5efa\u6307\u5411\u4f4d\u4e8e <url> \u7684 javadoc \u8f93\u51fa\u7684\u94fe\u63a5\n-linkoffline <url> <url2> \u5229\u7528\u4f4d\u4e8e <url2> \u7684\u5305\u5217\u8868\u94fe\u63a5\u81f3\u4f4d\u4e8e <url> \u7684\u6587\u6863\n-excludedocfilessubdir <name1>:..\u6392\u9664\u5177\u6709\u7ed9\u5b9a\u540d\u79f0\u7684\u6240\u6709\u6587\u6863\u6587\u4ef6\u5b50\u76ee\u5f55\u3002\n-group <name> <p1>:<p2>..\u5728\u6982\u8ff0\u9875\u9762\u4e2d\uff0c\u5c06\u6307\u5b9a\u7684\u5305\u5206\u7ec4\n-nocomment \u4e0d\u751f\u6210\u63cf\u8ff0\u548c\u6807\u8bb0\uff0c\u53ea\u751f\u6210\u58f0\u660e\u3002\n-nodeprecated \u4e0d\u5305\u542b @deprecated \u4fe1\u606f\n-noqualifier <name1>:<name2>:...\u8f93\u51fa\u4e2d\u4e0d\u5305\u62ec\u6307\u5b9a\u9650\u5b9a\u7b26\u7684\u5217\u8868\u3002\n-nosince \u4e0d\u5305\u542b @since \u4fe1\u606f\n-notimestamp \u4e0d\u5305\u542b\u9690\u85cf\u65f6\u95f4\u6233\n-nodeprecatedlist \u4e0d\u751f\u6210\u5df2\u8fc7\u65f6\u7684\u5217\u8868\n-notree \u4e0d\u751f\u6210\u7c7b\u5206\u5c42\u7ed3\u6784\n-noindex \u4e0d\u751f\u6210\u7d22\u5f15\n-nohelp \u4e0d\u751f\u6210\u5e2e\u52a9\u94fe\u63a5\n-nonavbar \u4e0d\u751f\u6210\u5bfc\u822a\u680f\n-serialwarn \u751f\u6210\u6709\u5173 @serial \u6807\u8bb0\u7684\u8b66\u544a\n-tag <name>:<locations>:<header> \u6307\u5b9a\u5355\u4e2a\u53c2\u6570\u81ea\u5b9a\u4e49\u6807\u8bb0\n-taglet \u8981\u6ce8\u518c\u7684 Taglet \u7684\u5168\u9650\u5b9a\u540d\u79f0\n-tagletpath Taglet \u7684\u8def\u5f84\n-charset <charset> \u7528\u4e8e\u8de8\u5e73\u53f0\u67e5\u770b\u751f\u6210\u7684\u6587\u6863\u7684\u5b57\u7b26\u96c6\u3002\n-helpfile <\u6587\u4ef6> \u5305\u542b\u5e2e\u52a9\u94fe\u63a5\u6240\u94fe\u63a5\u5230\u7684\u6587\u4ef6\n-linksource \u4ee5 HTML \u683c\u5f0f\u751f\u6210\u6e90\u6587\u4ef6\n-sourcetab <tab length> \u6307\u5b9a\u6e90\u4e2d\u6bcf\u4e2a\u5236\u8868\u7b26\u5360\u636e\u7684\u7a7a\u683c\u6570\n-keywords \u4f7f\u5305\u3001\u7c7b\u548c\u6210\u5458\u4fe1\u606f\u9644\u5e26 HTML \u5143\u6807\u8bb0\n-stylesheetfile <\u8def\u5f84> \u7528\u4e8e\u66f4\u6539\u751f\u6210\u6587\u6863\u7684\u6837\u5f0f\u7684\u6587\u4ef6\n-docencoding <\u540d\u79f0> \u8f93\u51fa\u7f16\u7801\u540d\u79f0 +doclet.Style_line_4=\u8868\u683C\u989C\u8272 +doclet.Style_line_5=\u6DF1\u7D2B\u8272 +doclet.Style_line_6=\u6DE1\u7D2B\u8272 +doclet.Style_line_7=\u767D\u8272 +doclet.Style_line_8=\u5DE6\u4FA7\u7684\u6846\u67B6\u5217\u8868\u4E2D\u4F7F\u7528\u7684\u5B57\u4F53 +doclet.Style_line_9=\u6846\u67B6\u4E2D\u5C0F\u53F7 sans-serif \u5B57\u4F53\u7684\u793A\u4F8B +doclet.Style_line_10=\u5BFC\u822A\u680F\u5B57\u4F53\u548C\u989C\u8272 +doclet.Style_line_11=\u6DF1\u84DD\u8272 +doclet.Style_line_12=\u8868\u6807\u9898\u6837\u5F0F +doclet.ClassUse_Packages.that.use.0=\u4F7F\u7528{0}\u7684\u7A0B\u5E8F\u5305 +doclet.ClassUse_Uses.of.0.in.1={1}\u4E2D{0}\u7684\u4F7F\u7528 +doclet.ClassUse_Classes.in.0.used.by.1={1}\u4F7F\u7528\u7684{0}\u4E2D\u7684\u7C7B +doclet.ClassUse_PackageAnnotation=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684\u7A0B\u5E8F\u5305 +doclet.ClassUse_Annotation=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u7C7B +doclet.ClassUse_TypeParameter=\u7C7B\u578B\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u7C7B +doclet.ClassUse_MethodTypeParameter=\u7C7B\u578B\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5 +doclet.ClassUse_FieldTypeParameter=\u7C7B\u578B\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u5B57\u6BB5 +doclet.ClassUse_FieldAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u5B57\u6BB5 +doclet.ClassUse_MethodAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5 +doclet.ClassUse_MethodParameterAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5\u53C2\u6570 +doclet.ClassUse_MethodReturnTypeParameter=\u8FD4\u56DE\u53D8\u91CF\u7C7B\u578B\u4E3A{0}\u7684\u7C7B\u578B\u7684{1}\u4E2D\u7684\u65B9\u6CD5 +doclet.ClassUse_Subclass={1}\u4E2D{0}\u7684\u5B50\u7C7B +doclet.ClassUse_Subinterface={1}\u4E2D{0}\u7684\u5B50\u63A5\u53E3 +doclet.ClassUse_ImplementingClass=\u5B9E\u73B0{0}\u7684{1}\u4E2D\u7684\u7C7B +doclet.ClassUse_Field=\u58F0\u660E\u4E3A{0}\u7684{1}\u4E2D\u7684\u5B57\u6BB5 +doclet.ClassUse_MethodReturn=\u8FD4\u56DE{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5 +doclet.ClassUse_MethodArgs=\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5 +doclet.ClassUse_MethodArgsTypeParameters=\u7C7B\u578B\u53D8\u91CF\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5\u53C2\u6570 +doclet.ClassUse_MethodThrows=\u629B\u51FA{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5 +doclet.ClassUse_ConstructorAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668 +doclet.ClassUse_ConstructorParameterAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668\u53C2\u6570 +doclet.ClassUse_ConstructorArgs=\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668 +doclet.ClassUse_ConstructorArgsTypeParameters=\u7C7B\u578B\u53D8\u91CF\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668\u53C2\u6570 +doclet.ClassUse_ConstructorThrows=\u629B\u51FA{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668 +doclet.ClassUse_No.usage.of.0=\u6CA1\u6709{0}\u7684\u7528\u6CD5 +doclet.Window_ClassUse_Header={0} {1}\u7684\u4F7F\u7528 +doclet.ClassUse_Title={0} {1}<br>\u7684\u4F7F\u7528 +doclet.navClassUse=\u4F7F\u7528 +doclet.link_option_twice=\u5916\u90E8 URL \u94FE\u63A5\u9009\u9879 (link \u6216 linkoffline) \u4F7F\u7528\u4E86\u4E24\u6B21\u3002 +doclet.Error_in_packagelist=\u4F7F\u7528 -group \u9009\u9879\u65F6\u51FA\u9519: {0} {1} +doclet.Groupname_already_used=\u5728 -group \u9009\u9879\u4E2D, groupname \u5DF2\u4F7F\u7528: {0} +doclet.Same_package_name_used=\u7A0B\u5E8F\u5305\u540D\u79F0\u5F62\u5F0F\u4F7F\u7528\u4E86\u4E24\u6B21: {0} +doclet.Serialization.Excluded_Class=\u975E\u77AC\u6001\u5B57\u6BB5{1}\u4F7F\u7528\u4E86\u6392\u9664\u7684\u7C7B{0}\u3002 +doclet.Serialization.Nonexcluded_Class=\u975E\u77AC\u6001\u5B57\u6BB5{1}\u4F7F\u7528\u4E86\u9690\u85CF\u7684, \u672A\u5305\u542B\u7684\u7C7B{0}\u3002 +doclet.usage=\u901A\u8FC7\u6807\u51C6 doclet \u63D0\u4F9B:\n-d <directory> \u8F93\u51FA\u6587\u4EF6\u7684\u76EE\u6807\u76EE\u5F55\n-use \u521B\u5EFA\u7C7B\u548C\u7A0B\u5E8F\u5305\u7528\u6CD5\u9875\u9762\n-version \u5305\u542B @version \u6BB5\n-author \u5305\u542B @author \u6BB5\n-docfilessubdirs \u9012\u5F52\u590D\u5236\u6587\u6863\u6587\u4EF6\u5B50\u76EE\u5F55\n-splitindex \u5C06\u7D22\u5F15\u5206\u4E3A\u6BCF\u4E2A\u5B57\u6BCD\u5BF9\u5E94\u4E00\u4E2A\u6587\u4EF6\n-windowtitle <text> \u6587\u6863\u7684\u6D4F\u89C8\u5668\u7A97\u53E3\u6807\u9898\n-doctitle <html-code> \u5305\u542B\u6982\u89C8\u9875\u9762\u7684\u6807\u9898\n-header <html-code> \u5305\u542B\u6BCF\u4E2A\u9875\u9762\u7684\u9875\u7709\u6587\u672C\n-footer <html-code> \u5305\u542B\u6BCF\u4E2A\u9875\u9762\u7684\u9875\u811A\u6587\u672C\n-top <html-code> \u5305\u542B\u6BCF\u4E2A\u9875\u9762\u7684\u9876\u90E8\u6587\u672C\n-bottom <html-code> \u5305\u542B\u6BCF\u4E2A\u9875\u9762\u7684\u5E95\u90E8\u6587\u672C\n-link <url> \u521B\u5EFA\u6307\u5411\u4F4D\u4E8E <url> \u7684 javadoc \u8F93\u51FA\u7684\u94FE\u63A5\n-linkoffline <url> <url2> \u5229\u7528\u4F4D\u4E8E <url2> \u7684\u7A0B\u5E8F\u5305\u5217\u8868\u94FE\u63A5\u81F3\u4F4D\u4E8E <url> \u7684\u6587\u6863\n-excludedocfilessubdir <name1>:..\u6392\u9664\u5177\u6709\u7ED9\u5B9A\u540D\u79F0\u7684\u6240\u6709\u6587\u6863\u6587\u4EF6\u5B50\u76EE\u5F55\u3002\n-group <name> <p1>:<p2>..\u5728\u6982\u89C8\u9875\u9762\u4E2D, \u5C06\u6307\u5B9A\u7684\u7A0B\u5E8F\u5305\u5206\u7EC4\n-nocomment \u4E0D\u751F\u6210\u8BF4\u660E\u548C\u6807\u8BB0, \u53EA\u751F\u6210\u58F0\u660E\u3002\n-nodeprecated \u4E0D\u5305\u542B @deprecated \u4FE1\u606F\n-noqualifier <name1>:<name2>:...\u8F93\u51FA\u4E2D\u4E0D\u5305\u62EC\u6307\u5B9A\u9650\u5B9A\u7B26\u7684\u5217\u8868\u3002\n-nosince \u4E0D\u5305\u542B @since \u4FE1\u606F\n-notimestamp \u4E0D\u5305\u542B\u9690\u85CF\u65F6\u95F4\u6233\n-nodeprecatedlist \u4E0D\u751F\u6210\u5DF2\u8FC7\u65F6\u7684\u5217\u8868\n-notree \u4E0D\u751F\u6210\u7C7B\u5206\u5C42\u7ED3\u6784\n-noindex \u4E0D\u751F\u6210\u7D22\u5F15\n-nohelp \u4E0D\u751F\u6210\u5E2E\u52A9\u94FE\u63A5\n-nonavbar \u4E0D\u751F\u6210\u5BFC\u822A\u680F\n-serialwarn \u751F\u6210\u6709\u5173 @serial \u6807\u8BB0\u7684\u8B66\u544A\n-tag <name>:<locations>:<header> \u6307\u5B9A\u5355\u4E2A\u53C2\u6570\u5B9A\u5236\u6807\u8BB0\n-taglet \u8981\u6CE8\u518C\u7684 Taglet \u7684\u5168\u9650\u5B9A\u540D\u79F0\n-tagletpath Taglet \u7684\u8DEF\u5F84\n-charset <charset> \u7528\u4E8E\u8DE8\u5E73\u53F0\u67E5\u770B\u751F\u6210\u7684\u6587\u6863\u7684\u5B57\u7B26\u96C6\u3002\n-helpfile <file> \u5305\u542B\u5E2E\u52A9\u94FE\u63A5\u6240\u94FE\u63A5\u5230\u7684\u6587\u4EF6\n-linksource \u4EE5 HTML \u683C\u5F0F\u751F\u6210\u6E90\u6587\u4EF6\n-sourcetab <tab length> \u6307\u5B9A\u6E90\u4E2D\u6BCF\u4E2A\u5236\u8868\u7B26\u5360\u636E\u7684\u7A7A\u683C\u6570\n-keywords \u4F7F\u7A0B\u5E8F\u5305, \u7C7B\u548C\u6210\u5458\u4FE1\u606F\u9644\u5E26 HTML \u5143\u6807\u8BB0\n-stylesheetfile <path> \u7528\u4E8E\u66F4\u6539\u751F\u6210\u6587\u6863\u7684\u6837\u5F0F\u7684\u6587\u4EF6\n-docencoding <name> \u8F93\u51FA\u7F16\u7801\u540D\u79F0
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java Sat Apr 09 00:45:10 2011 +0100 @@ -99,8 +99,24 @@ * @param contentBuilder content to test for newline character at the end * @return true if the content ends with newline. */ - public boolean endsWithNewLine(StringBuilder contentBuilder) { - return ((contentBuilder.length() == 0) || - (contentBuilder.toString().endsWith(DocletConstants.NL))); + protected boolean endsWithNewLine(StringBuilder contentBuilder) { + int contentLength = contentBuilder.length(); + if (contentLength == 0) { + return true; + } + int nlLength = DocletConstants.NL.length(); + if (contentLength < nlLength) { + return false; + } + int contentIndex = contentLength - 1; + int nlIndex = nlLength - 1; + while (nlIndex >= 0) { + if (contentBuilder.charAt(contentIndex) != DocletConstants.NL.charAt(nlIndex)) { + return false; + } + contentIndex--; + nlIndex--; + } + return true; } }
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,163 +1,163 @@ -doclet.Generating_0={0} \u306e\u751f\u6210 -doclet.Toolkit_Usage_Violation=\u30c9\u30c3\u30af\u30ec\u30c3\u30c8\u30c4\u30fc\u30eb\u30ad\u30c3\u30c8\u306f {0} \u306b\u3088\u3063\u3066\u306e\u307f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 -doclet.MissingSerialTag=\u30af\u30e9\u30b9 {0} \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u76f4\u5217\u5316\u53ef\u80fd\u30d5\u30a3\u30fc\u30eb\u30c9 {1} \u306e\u305f\u3081\u306e @serial \u30bf\u30b0\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -doclet.MissingSerialDataTag=\u30af\u30e9\u30b9 {0} \u306e\u30e1\u30bd\u30c3\u30c9 {1} \u306b @serialData \u30bf\u30b0\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -doclet.Serializable_no_customization=readObject \u307e\u305f\u306f writeObject \u30e1\u30bd\u30c3\u30c9\u304c\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -doclet.Serialized_Form=\u76f4\u5217\u5316\u3055\u308c\u305f\u5f62\u5f0f -doclet.Serialized_Form_methods=\u76f4\u5217\u5316\u30e1\u30bd\u30c3\u30c9 -doclet.Serialized_Form_fields=\u76f4\u5217\u5316\u3055\u308c\u305f\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.Serialized_Form_class=\u76f4\u5217\u5316\u306e\u6982\u8981 +doclet.Generating_0={0}\u306E\u751F\u6210\u4E2D... +doclet.Toolkit_Usage_Violation=\u30C9\u30C3\u30AF\u30EC\u30C3\u30C8\u30FB\u30C4\u30FC\u30EB\u30FB\u30AD\u30C3\u30C8\u306F{0}\u306B\u3088\u3063\u3066\u306E\u307F\u4F7F\u7528\u3055\u308C\u307E\u3059 +doclet.MissingSerialTag=\u30AF\u30E9\u30B9{0}\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u76F4\u5217\u5316\u53EF\u80FD\u30D5\u30A3\u30FC\u30EB\u30C9{1}\u306E\u305F\u3081\u306E@serial\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +doclet.MissingSerialDataTag=\u30AF\u30E9\u30B9{0}\u306E\u30E1\u30BD\u30C3\u30C9{1}\u306B@serialData\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +doclet.Serializable_no_customization=readObject\u307E\u305F\u306FwriteObject\u30E1\u30BD\u30C3\u30C9\u304C\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +doclet.Serialized_Form=\u76F4\u5217\u5316\u3055\u308C\u305F\u5F62\u5F0F +doclet.Serialized_Form_methods=\u76F4\u5217\u5316\u30E1\u30BD\u30C3\u30C9 +doclet.Serialized_Form_fields=\u76F4\u5217\u5316\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.Serialized_Form_class=\u76F4\u5217\u5316\u306E\u6982\u8981 doclet.Class_0_implements_serializable=Class {0} implements Serializable doclet.Class_0_extends_implements_serializable=Class {0} extends {1} implements Serializable -doclet.Option_conflict=\u30aa\u30d7\u30b7\u30e7\u30f3 {0} \u304c {1} \u3068\u77db\u76fe\u3057\u307e\u3059 -doclet.Option_reuse=\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u518d\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0} -doclet.exception_encountered= {0} \u3092\u691c\u51fa \n\t\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210\u4e2d: {1} -doclet.perform_copy_exception_encountered= \u30b3\u30d4\u30fc\u5b9f\u884c\u4e2d\u306b {0} \u3092 \n\u691c\u51fa\u3057\u307e\u3057\u305f\u3002 -doclet.File_not_found=\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: {0} -doclet.Copy_Overwrite_warning=\u30d5\u30a1\u30a4\u30eb {0} \u306f\u540c\u3058\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b\u306e\u3067 {1} \u306b\u30b3\u30d4\u30fc\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f... -doclet.Copying_File_0_To_Dir_1=\u30d5\u30a1\u30a4\u30eb {0} \u3092\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {1} \u306b\u30b3\u30d4\u30fc\u4e2d... -doclet.Copying_File_0_To_File_1=\u30d5\u30a1\u30a4\u30eb {0} \u3092\u30d5\u30a1\u30a4\u30eb {1} \u306b\u30b3\u30d4\u30fc\u4e2d... -doclet.No_Public_Classes_To_Document=\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3059\u308b public \u307e\u305f\u306f protected \u30af\u30e9\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -doclet.Unable_to_create_directory_0=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002 -doclet.destination_directory_not_found_0=\u8ee2\u9001\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -doclet.destination_directory_not_directory_0=\u8ee2\u9001\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -doclet.destination_directory_not_writable_0=\u8ee2\u9001\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u306f\u66f8\u304d\u8fbc\u307f\u53ef\u80fd\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -doclet.Error_creating_tmp_file=\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u4f7f\u7528\u3057\u3066\u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -doclet.Encoding_not_supported=\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0 {0} \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -doclet.Building_Tree=\u5168\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u30af\u30e9\u30b9\u306e\u968e\u5c64\u30c4\u30ea\u30fc\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059... -doclet.Building_Index=\u5168\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059... -doclet.Building_Index_For_All_Classes=\u5168\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059... -doclet.sourcetab_warning=-sourcetab \u306e\u5f15\u6570\u306f 0 \u3088\u308a\u5927\u304d\u3044\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -doclet.Packages=\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.Other_Packages=\u305d\u306e\u4ed6\u306e\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.Notice_taglet_registered=\u767b\u9332\u3055\u308c\u305f\u30bf\u30b0\u30ec\u30c3\u30c8 {0} ... -doclet.Notice_taglet_unseen=\u6ce8: \u975e\u8868\u793a\u306e\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0: {0} -doclet.Notice_taglet_overriden=\u6ce8: \u6a19\u6e96\u30bf\u30b0\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0: {0} -doclet.Notice_taglet_conflict_warn=\u6ce8: \u6a19\u6e96\u30bf\u30b0\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u53ef\u80fd\u6027\u306e\u3042\u308b\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0: {0}\u3002\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3092\u907f\u3051\u308b\u305f\u3081\u306b\u3001\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0\u540d\u306e\u4e2d\u306b\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u30d4\u30ea\u30aa\u30c9 (.) \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -doclet.Error_taglet_not_registered=\u30a8\u30e9\u30fc - \u30bf\u30b0\u30ec\u30c3\u30c8 {1} \u3092\u767b\u9332\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u3001\u4f8b\u5916 {0} \u304c\u30b9\u30ed\u30fc\u3055\u308c\u307e\u3057\u305f... -doclet.Error_invalid_custom_tag_argument=\u30a8\u30e9\u30fc - {0} \u306f -tag \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u5bfe\u3057\u3066\u7121\u52b9\u306a\u5f15\u6570\u3067\u3059... -doclet.Author=\u4f5c\u6210\u8005: -doclet.Default=\u30c7\u30d5\u30a9\u30eb\u30c8: -doclet.Parameters=\u30d1\u30e9\u30e1\u30fc\u30bf: -doclet.TypeParameters=\u578b\u30d1\u30e9\u30e1\u30fc\u30bf: -doclet.Parameters_warn=@param argument "{0}" \u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u540d\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -doclet.Parameters_dup_warn=\u30d1\u30e9\u30e1\u30fc\u30bf "{0}" \u304c 2 \u56de\u4ee5\u4e0a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -doclet.Type_Parameters_warn=@param argument "{0}" \u306f\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u540d\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -doclet.Type_Parameters_dup_warn=\u578b\u30d1\u30e9\u30e1\u30fc\u30bf "{0}" \u304c 2 \u56de\u4ee5\u4e0a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -doclet.Returns=\u623b\u308a\u5024: -doclet.Return_tag_on_void_method=\u623b\u308a\u5024\u306e\u578b\u304c void \u306e\u30e1\u30bd\u30c3\u30c9\u3067\u306f @return \u30bf\u30b0\u3092\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002 -doclet.See_Also=\u95a2\u9023\u9805\u76ee: -doclet.See=\u53c2\u7167\u5148: -doclet.SerialData=\u30b7\u30ea\u30a2\u30eb\u30c7\u30fc\u30bf: -doclet.Since=\u5c0e\u5165\u3055\u308c\u305f\u30d0\u30fc\u30b8\u30e7\u30f3: -doclet.Throws=\u4f8b\u5916: -doclet.Version=\u30d0\u30fc\u30b8\u30e7\u30f3: -doclet.Factory=\u30d5\u30a1\u30af\u30c8\u30ea: -doclet.UnknownTag={0} \u306f\u672a\u77e5\u306e\u30bf\u30b0\u3067\u3059\u3002 -doclet.UnknownTagLowercase={0} \u306f\u672a\u77e5\u306e\u30bf\u30b0\u3067\u3059\u3002\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u306e\u533a\u5225\u3092\u9664\u3044\u3066\u306f\u65e2\u77e5\u306e\u30bf\u30b0\u3068\u540c\u3058\u3067\u3059\u3002 -doclet.noInheritedDoc=@inheritDoc \u304c\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001{0} \u306f\u3069\u306e\u30e1\u30bd\u30c3\u30c9\u3082\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u307e\u305f\u306f\u5b9f\u88c5\u3057\u3066\u3044\u307e\u305b\u3093\u3002 -doclet.malformed_html_link_tag=<a> \u30bf\u30b0\u306e\u5f62\u5f0f\u304c\u4e0d\u6b63:\n"{0}" -doclet.tag_misuse={0} \u30bf\u30b0\u306f {1} \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5185\u3067\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u4f7f\u7528\u3067\u304d\u308b\u306e\u306f\u6b21\u306e\u7a2e\u985e\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5185\u3060\u3051\u3067\u3059: {2}\u3002 -doclet.Package_Summary=\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6982\u8981 -doclet.Interface_Summary=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u6982\u8981 -doclet.Annotation_Types_Summary=\u6ce8\u91c8\u578b\u306e\u6982\u8981 -doclet.Enum_Summary=\u5217\u6319\u578b\u306e\u6982\u8981 -doclet.Exception_Summary=\u4f8b\u5916\u306e\u6982\u8981 -doclet.Error_Summary=\u30a8\u30e9\u30fc\u306e\u6982\u8981 -doclet.Class_Summary=\u30af\u30e9\u30b9\u306e\u6982\u8981 -doclet.Nested_Class_Summary=\u5165\u308c\u5b50\u306e\u30af\u30e9\u30b9\u306e\u6982\u8981 -doclet.Annotation_Type_Optional_Member_Summary=\u4efb\u610f\u8981\u7d20\u306e\u6982\u8981 -doclet.Annotation_Type_Required_Member_Summary=\u5fc5\u9808\u8981\u7d20\u306e\u6982\u8981 -doclet.Field_Summary=\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u6982\u8981 -doclet.Enum_Constant_Summary=\u5217\u6319\u578b\u5b9a\u6570\u306e\u6982\u8981 -doclet.Constructor_Summary=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u6982\u8981 -doclet.Method_Summary=\u30e1\u30bd\u30c3\u30c9\u306e\u6982\u8981 -doclet.Factory_Method_Summary=static \u30d5\u30a1\u30af\u30c8\u30ea\u30e1\u30bd\u30c3\u30c9\u306e\u6982\u8981 -doclet.Interfaces=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.Enums=\u5217\u6319\u578b -doclet.AnnotationTypes=\u6ce8\u91c8\u578b -doclet.Exceptions=\u4f8b\u5916 -doclet.Errors=\u30a8\u30e9\u30fc -doclet.Classes=\u30af\u30e9\u30b9 -doclet.Packages=\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.packages=\u30d1\u30c3\u30b1\u30fc\u30b8 -doclet.All_Classes=\u3059\u3079\u3066\u306e\u30af\u30e9\u30b9 -doclet.All_Superinterfaces=\u3059\u3079\u3066\u306e\u30b9\u30fc\u30d1\u30fc\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9: -doclet.All_Implemented_Interfaces=\u3059\u3079\u3066\u306e\u5b9f\u88c5\u3055\u308c\u305f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9: -doclet.All_classes_and_interfaces=\u3059\u3079\u3066\u306e\u30af\u30e9\u30b9\u304a\u3088\u3073\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 (\u975e static \u306e\u5165\u308c\u5b50\u306b\u306a\u3063\u305f\u578b\u3092\u9664\u304f) -doclet.Package_class_and_interface_descriptions=\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u8aac\u660e -doclet.Members=\u30e1\u30f3\u30d0 -doclet.Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.Class=\u30af\u30e9\u30b9 -doclet.AnnotationType=\u6ce8\u91c8\u578b -doclet.annotationtype=\u6ce8\u91c8\u578b -doclet.annotationtypes=\u6ce8\u91c8\u578b -doclet.Enum=\u5217\u6319\u578b +doclet.Option_conflict=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u304C{1}\u3068\u77DB\u76FE\u3057\u307E\u3059 +doclet.Option_reuse=\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u518D\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0} +doclet.exception_encountered= {0}\u3092\u691C\u51FA\n\t\u30D5\u30A1\u30A4\u30EB\u306E\u4F5C\u6210\u4E2D: {1} +doclet.perform_copy_exception_encountered= \u30B3\u30D4\u30FC\u5B9F\u884C\u4E2D\u306B{0}\u3092\n\u691C\u51FA\u3057\u307E\u3057\u305F\u3002 +doclet.File_not_found=\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0} +doclet.Copy_Overwrite_warning=\u30D5\u30A1\u30A4\u30EB{0}\u306F\u540C\u3058\u540D\u524D\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308B\u306E\u3067{1}\u306B\u30B3\u30D4\u30FC\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F... +doclet.Copying_File_0_To_Dir_1=\u30D5\u30A1\u30A4\u30EB{0}\u3092\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{1}\u306B\u30B3\u30D4\u30FC\u4E2D... +doclet.Copying_File_0_To_File_1=\u30D5\u30A1\u30A4\u30EB{0}\u3092\u30D5\u30A1\u30A4\u30EB{1}\u306B\u30B3\u30D4\u30FC\u4E2D... +doclet.No_Public_Classes_To_Document=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3059\u308Bpublic\u307E\u305F\u306Fprotected\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +doclet.Unable_to_create_directory_0=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093 +doclet.destination_directory_not_found_0=\u8EE2\u9001\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 +doclet.destination_directory_not_directory_0=\u8EE2\u9001\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +doclet.destination_directory_not_writable_0=\u8EE2\u9001\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u306F\u66F8\u8FBC\u307F\u53EF\u80FD\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +doclet.Error_creating_tmp_file=\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u4F7F\u7528\u3057\u3066\u4E00\u6642\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +doclet.Encoding_not_supported=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +doclet.Building_Tree=\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u3068\u30AF\u30E9\u30B9\u306E\u968E\u5C64\u30C4\u30EA\u30FC\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059... +doclet.Building_Index=\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u3068\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059... +doclet.Building_Index_For_All_Classes=\u5168\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059... +doclet.sourcetab_warning=-sourcetab\u306E\u5F15\u6570\u306F0\u3088\u308A\u5927\u304D\u3044\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +doclet.Packages=\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.Other_Packages=\u305D\u306E\u4ED6\u306E\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.Notice_taglet_registered=\u767B\u9332\u3055\u308C\u305F\u30BF\u30B0\u30EC\u30C3\u30C8{0} ... +doclet.Notice_taglet_unseen=\u6CE8\u610F: \u975E\u8868\u793A\u306E\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0: {0} +doclet.Notice_taglet_overriden=\u6CE8\u610F: \u6A19\u6E96\u30BF\u30B0\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0: {0} +doclet.Notice_taglet_conflict_warn=\u6CE8\u610F: \u6A19\u6E96\u30BF\u30B0\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\u53EF\u80FD\u6027\u306E\u3042\u308B\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0: {0}\u3002\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0\u540D\u306E\u4E2D\u306B\u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u30D4\u30EA\u30AA\u30C9(.)\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +doclet.Error_taglet_not_registered=\u30A8\u30E9\u30FC - \u30BF\u30B0\u30EC\u30C3\u30C8{1}\u3092\u767B\u9332\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u3001\u4F8B\u5916{0}\u304C\u30B9\u30ED\u30FC\u3055\u308C\u307E\u3057\u305F... +doclet.Error_invalid_custom_tag_argument=\u30A8\u30E9\u30FC - {0}\u306F-tag\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5BFE\u3057\u3066\u7121\u52B9\u306A\u5F15\u6570\u3067\u3059... +doclet.Author=\u4F5C\u6210\u8005: +doclet.Default=\u30C7\u30D5\u30A9\u30EB\u30C8: +doclet.Parameters=\u30D1\u30E9\u30E1\u30FC\u30BF: +doclet.TypeParameters=\u578B\u30D1\u30E9\u30E1\u30FC\u30BF: +doclet.Parameters_warn=@param argument "{0}"\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +doclet.Parameters_dup_warn=\u30D1\u30E9\u30E1\u30FC\u30BF"{0}"\u304C2\u56DE\u4EE5\u4E0A\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +doclet.Type_Parameters_warn=@param argument "{0}"\u306F\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +doclet.Type_Parameters_dup_warn=\u578B\u30D1\u30E9\u30E1\u30FC\u30BF"{0}"\u304C2\u56DE\u4EE5\u4E0A\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +doclet.Returns=\u623B\u308A\u5024: +doclet.Return_tag_on_void_method=\u623B\u308A\u5024\u306E\u578B\u304Cvoid\u306E\u30E1\u30BD\u30C3\u30C9\u3067\u306F@return\u30BF\u30B0\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +doclet.See_Also=\u95A2\u9023\u9805\u76EE: +doclet.See=\u53C2\u7167\u5148: +doclet.SerialData=\u30B7\u30EA\u30A2\u30EB\u30FB\u30C7\u30FC\u30BF: +doclet.Since=\u5C0E\u5165\u3055\u308C\u305F\u30D0\u30FC\u30B8\u30E7\u30F3: +doclet.Throws=\u4F8B\u5916: +doclet.Version=\u30D0\u30FC\u30B8\u30E7\u30F3: +doclet.Factory=\u30D5\u30A1\u30AF\u30C8\u30EA: +doclet.UnknownTag={0}\u306F\u4E0D\u660E\u306A\u30BF\u30B0\u3067\u3059\u3002 +doclet.UnknownTagLowercase={0}\u306F\u4E0D\u660E\u306A\u30BF\u30B0\u3067\u3059\u3002\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57\u306E\u533A\u5225\u3092\u9664\u3044\u3066\u306F\u65E2\u77E5\u306E\u30BF\u30B0\u3068\u540C\u3058\u3067\u3059\u3002 +doclet.noInheritedDoc=@inheritDoc\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u3001{0}\u306F\u3069\u306E\u30E1\u30BD\u30C3\u30C9\u3082\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u307E\u305F\u306F\u5B9F\u88C5\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +doclet.malformed_html_link_tag=<a> \u30BF\u30B0\u306E\u5F62\u5F0F\u304C\u4E0D\u6B63:\n"{0}" +doclet.tag_misuse={0}\u30BF\u30B0\u306F{1}\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u4F7F\u7528\u3067\u304D\u308B\u306E\u306F\u6B21\u306E\u30BF\u30A4\u30D7\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u306E\u307F\u3067\u3059: {2}\u3002 +doclet.Package_Summary=\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981 +doclet.Interface_Summary=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u6982\u8981 +doclet.Annotation_Types_Summary=\u6CE8\u91C8\u578B\u306E\u6982\u8981 +doclet.Enum_Summary=\u5217\u6319\u578B\u306E\u6982\u8981 +doclet.Exception_Summary=\u4F8B\u5916\u306E\u6982\u8981 +doclet.Error_Summary=\u30A8\u30E9\u30FC\u306E\u6982\u8981 +doclet.Class_Summary=\u30AF\u30E9\u30B9\u306E\u6982\u8981 +doclet.Nested_Class_Summary=\u5165\u308C\u5B50\u306E\u30AF\u30E9\u30B9\u306E\u6982\u8981 +doclet.Annotation_Type_Optional_Member_Summary=\u4EFB\u610F\u8981\u7D20\u306E\u6982\u8981 +doclet.Annotation_Type_Required_Member_Summary=\u5FC5\u9808\u8981\u7D20\u306E\u6982\u8981 +doclet.Field_Summary=\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u6982\u8981 +doclet.Enum_Constant_Summary=\u5217\u6319\u578B\u5B9A\u6570\u306E\u6982\u8981 +doclet.Constructor_Summary=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u6982\u8981 +doclet.Method_Summary=\u30E1\u30BD\u30C3\u30C9\u306E\u6982\u8981 +doclet.Factory_Method_Summary=static\u30D5\u30A1\u30AF\u30C8\u30EA\u30FB\u30E1\u30BD\u30C3\u30C9\u306E\u6982\u8981 +doclet.Interfaces=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.Enums=\u5217\u6319\u578B +doclet.AnnotationTypes=\u6CE8\u91C8\u578B +doclet.Exceptions=\u4F8B\u5916 +doclet.Errors=\u30A8\u30E9\u30FC +doclet.Classes=\u30AF\u30E9\u30B9 +doclet.Packages=\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.packages=\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.All_Classes=\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9 +doclet.All_Superinterfaces=\u3059\u3079\u3066\u306E\u30B9\u30FC\u30D1\u30FC\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9: +doclet.All_Implemented_Interfaces=\u3059\u3079\u3066\u306E\u5B9F\u88C5\u3055\u308C\u305F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9: +doclet.All_classes_and_interfaces=\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9(\u975Estatic\u306E\u5165\u308C\u5B50\u306B\u306A\u3063\u305F\u578B\u3092\u9664\u304F) +doclet.Package_class_and_interface_descriptions=\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E +doclet.Members=\u30E1\u30F3\u30D0\u30FC +doclet.Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.Class=\u30AF\u30E9\u30B9 +doclet.AnnotationType=\u6CE8\u91C8\u578B +doclet.annotationtype=\u6CE8\u91C8\u578B +doclet.annotationtypes=\u6CE8\u91C8\u578B +doclet.Enum=\u5217\u6319\u578B doclet.enum=\u5217\u6319 -doclet.enums=\u5217\u6319\u578b -doclet.interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.interfaces=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.class=\u30af\u30e9\u30b9 -doclet.classes=\u30af\u30e9\u30b9 -doclet.Error=\u30a8\u30e9\u30fc -doclet.error=\u30a8\u30e9\u30fc -doclet.errors=\u30a8\u30e9\u30fc -doclet.Exception=\u4f8b\u5916 -doclet.exception=\u4f8b\u5916 -doclet.exceptions=\u4f8b\u5916 -doclet.extended_by=\u4e0a\u4f4d\u3092\u62e1\u5f35 +doclet.enums=\u5217\u6319 +doclet.interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.interfaces=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.class=\u30AF\u30E9\u30B9 +doclet.classes=\u30AF\u30E9\u30B9 +doclet.Error=\u30A8\u30E9\u30FC +doclet.error=\u30A8\u30E9\u30FC +doclet.errors=\u30A8\u30E9\u30FC +doclet.Exception=\u4F8B\u5916 +doclet.exception=\u4F8B\u5916 +doclet.exceptions=\u4F8B\u5916 +doclet.extended_by=\u4E0A\u4F4D\u3092\u62E1\u5F35 doclet.extends=extends doclet.Package_private=(package private) -doclet.implements=implementsdoclet.Same_package_name_used=\u30d1\u30c3\u30b1\u30fc\u30b8\u540d\u5f62\u5f0f\u304c 2 \u56de\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0} -doclet.Nested_Classes_Interfaces_Inherited_From_Class=\u30af\u30e9\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u5165\u308c\u5b50\u306e\u30af\u30e9\u30b9/\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.Nested_Classes_Interface_Inherited_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u5165\u308c\u5b50\u306e\u30af\u30e9\u30b9/\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.Methods_Inherited_From_Class=\u30af\u30e9\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u30e1\u30bd\u30c3\u30c9 -doclet.Methods_Inherited_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u30e1\u30bd\u30c3\u30c9 -doclet.Fields_Inherited_From_Class=\u30af\u30e9\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.Fields_Inherited_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.Serializable=\u76f4\u5217\u5316\u53ef\u80fd -doclet.Externalizable=\u5916\u90e8\u5316\u53ef\u80fd -doclet.Annotation_Type_Member_Detail=\u8981\u7d20\u306e\u8a73\u7d30 -doclet.Enum_Constant_Detail=\u5217\u6319\u578b\u5b9a\u6570\u306e\u8a73\u7d30 -doclet.Constants_Summary=\u5b9a\u6570\u30d5\u30a3\u30fc\u30eb\u30c9\u5024 -doclet.Field_Detail=\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u8a73\u7d30 -doclet.Method_Detail=\u30e1\u30bd\u30c3\u30c9\u306e\u8a73\u7d30 -doclet.Constructor_Detail=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u8a73\u7d30 -doclet.Deprecated=\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -doclet.Deprecated_class=\u3053\u306e\u30af\u30e9\u30b9\u306f\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -doclet.Groupname_already_used=-group \u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3001\u30b0\u30eb\u30fc\u30d7\u540d\u304c\u65e2\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0} -doclet.value_tag_invalid_reference={0} (@value \u30bf\u30b0\u306b\u3088\u308a\u53c2\u7167\u3055\u308c\u3066\u3044\u308b) \u306f\u672a\u77e5\u306e\u53c2\u7167\u3067\u3059\u3002 -doclet.value_tag_invalid_constant=@value \u30bf\u30b0 ({0} \u3092\u53c2\u7167\u3057\u3066\u3044\u308b) \u306f\u5b9a\u6570\u5185\u3067\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 -doclet.dest_dir_create=\u5b9b\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4f5c\u6210\u4e2d: "{0}" -doclet.in={1} \u306e {0} -doclet.Use_Table_Summary=\u8868\u3001\u4e00\u89a7 {0}\u3001\u8aac\u660e\u3092\u4f7f\u7528 -doclet.Constants_Table_Summary={0} \u8868\u3001\u5b9a\u6570\u30d5\u30a3\u30fc\u30eb\u30c9\u4e00\u89a7\u3001\u5024 -doclet.Member_Table_Summary={0} \u8868\u3001\u4e00\u89a7 {1}\u3001\u8aac\u660e -doclet.fields=\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.constructors=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -doclet.methods=\u30e1\u30bd\u30c3\u30c9 -doclet.annotation_type_optional_members=\u4efb\u610f\u8981\u7d20 -doclet.annotation_type_required_members=\u5fc5\u9808\u8981\u7d20 -doclet.enum_constants=\u5217\u6319\u578b\u5b9a\u6570 -doclet.nested_classes=\u5165\u308c\u5b50\u306e\u30af\u30e9\u30b9 -doclet.subclasses=\u30b5\u30d6\u30af\u30e9\u30b9 -doclet.subinterfaces=\u30b5\u30d6\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -doclet.Modifier=\u4fee\u98fe\u5b50 -doclet.Type=\u30bf\u30a4\u30d7 -doclet.Field=\u30d5\u30a3\u30fc\u30eb\u30c9 -doclet.Constructor=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -doclet.Method=\u30e1\u30bd\u30c3\u30c9 -doclet.Annotation_Type_Optional_Member=\u4efb\u610f\u8981\u7d20 -doclet.Annotation_Type_Required_Member=\u5fc5\u9808\u8981\u7d20 -doclet.Annotation_Type_Member=\u6ce8\u91c8\u578b\u8981\u7d20 -doclet.Enum_Constant=\u5217\u6319\u578b\u5b9a\u6570 -doclet.Class=\u30af\u30e9\u30b9 -doclet.Description=\u8aac\u660e -doclet.ConstantField=\u5b9a\u6570\u30d5\u30a3\u30fc\u30eb\u30c9 +doclet.implements=implementsdoclet.Same_package_name_used=\u30D1\u30C3\u30B1\u30FC\u30B8\u540D\u5F62\u5F0F\u304C2\u56DE\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0} +doclet.Nested_Classes_Interfaces_Inherited_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u5165\u308C\u5B50\u306E\u30AF\u30E9\u30B9/\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.Nested_Classes_Interface_Inherited_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u5165\u308C\u5B50\u306E\u30AF\u30E9\u30B9/\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.Methods_Inherited_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9 +doclet.Methods_Inherited_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9 +doclet.Fields_Inherited_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.Fields_Inherited_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.Serializable=\u76F4\u5217\u5316\u53EF\u80FD +doclet.Externalizable=\u5916\u90E8\u5316\u53EF\u80FD +doclet.Annotation_Type_Member_Detail=\u8981\u7D20\u306E\u8A73\u7D30 +doclet.Enum_Constant_Detail=\u5217\u6319\u578B\u5B9A\u6570\u306E\u8A73\u7D30 +doclet.Constants_Summary=\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9\u5024 +doclet.Field_Detail=\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u8A73\u7D30 +doclet.Method_Detail=\u30E1\u30BD\u30C3\u30C9\u306E\u8A73\u7D30 +doclet.Constructor_Detail=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u8A73\u7D30 +doclet.Deprecated=\u63A8\u5968\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +doclet.Deprecated_class=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u63A8\u5968\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +doclet.Groupname_already_used=-group\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u304A\u3044\u3066\u3001\u3059\u3067\u306B\u30B0\u30EB\u30FC\u30D7\u540D\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0} +doclet.value_tag_invalid_reference={0}(@value\u30BF\u30B0\u306B\u3088\u308A\u53C2\u7167\u3055\u308C\u3066\u3044\u308B)\u306F\u4E0D\u660E\u306A\u53C2\u7167\u3067\u3059\u3002 +doclet.value_tag_invalid_constant=@value\u30BF\u30B0({0}\u3092\u53C2\u7167\u3057\u3066\u3044\u308B)\u306F\u5B9A\u6570\u5185\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002 +doclet.dest_dir_create=\u5B9B\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u4F5C\u6210\u4E2D: "{0}" +doclet.in={1}\u306E{0} +doclet.Use_Table_Summary=\u8868\u3001{0}\u306E\u30EA\u30B9\u30C8\u304A\u3088\u3073\u8AAC\u660E\u306E\u4F7F\u7528 +doclet.Constants_Table_Summary={0}\u8868\u3001\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30EA\u30B9\u30C8\u304A\u3088\u3073\u5024 +doclet.Member_Table_Summary={0}\u8868\u3001{1}\u306E\u30EA\u30B9\u30C8\u304A\u3088\u3073\u8AAC\u660E +doclet.fields=\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.constructors=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +doclet.methods=\u30E1\u30BD\u30C3\u30C9 +doclet.annotation_type_optional_members=\u4EFB\u610F\u8981\u7D20 +doclet.annotation_type_required_members=\u5FC5\u9808\u8981\u7D20 +doclet.enum_constants=\u5217\u6319\u578B\u5B9A\u6570 +doclet.nested_classes=\u5165\u308C\u5B50\u306E\u30AF\u30E9\u30B9 +doclet.subclasses=\u30B5\u30D6\u30AF\u30E9\u30B9 +doclet.subinterfaces=\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +doclet.Modifier=\u4FEE\u98FE\u5B50 +doclet.Type=\u30BF\u30A4\u30D7 +doclet.Field=\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.Constructor=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +doclet.Method=\u30E1\u30BD\u30C3\u30C9 +doclet.Annotation_Type_Optional_Member=\u4EFB\u610F\u8981\u7D20 +doclet.Annotation_Type_Required_Member=\u5FC5\u9808\u8981\u7D20 +doclet.Annotation_Type_Member=\u6CE8\u91C8\u578B\u8981\u7D20 +doclet.Enum_Constant=\u5217\u6319\u578B\u5B9A\u6570 +doclet.Class=\u30AF\u30E9\u30B9 +doclet.Description=\u8AAC\u660E +doclet.ConstantField=\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9 doclet.Value=\u5024 -doclet.0_and_1={0} \u304a\u3088\u3073 {1} +doclet.0_and_1={0}\u3068{1} #Documentation for Enums -doclet.enum_values_doc=\n\u3053\u306e\u5217\u6319\u578b\u306e\u5b9a\u6570\u3092\u542b\u3080\u914d\u5217\u3092\u5ba3\u8a00\u3055\u308c\u3066\u3044\u308b\u9806\u5e8f\u3067\u8fd4\u3057\u307e\u3059\u3002\n\u3053\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u6b21\u306e\u3088\u3046\u306b\u3057\u3066\u5b9a\u6570\u3092\u53cd\u5fa9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059:\n<pre>\nfor ({0} c : {0}.values())\n System.out.println(c);\n</pre>\n@return \u3053\u306e\u5217\u6319\u578b\u306e\u5b9a\u6570\u3092\u5ba3\u8a00\u3055\u308c\u3066\u3044\u308b\u9806\u5e8f\u3067\u542b\u3080\u914d\u5217 +doclet.enum_values_doc=\n\u3053\u306E\u5217\u6319\u578B\u306E\u5B9A\u6570\u3092\u542B\u3080\u914D\u5217\u3092\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u9806\u5E8F\u3067\u8FD4\u3057\u307E\u3059\u3002\n\u3053\u306E\u30E1\u30BD\u30C3\u30C9\u306F\u6B21\u306E\u3088\u3046\u306B\u3057\u3066\u5B9A\u6570\u3092\u53CD\u5FA9\u3059\u308B\u305F\u3081\u306B\n\u4F7F\u7528\u3067\u304D\u307E\u3059:\n<pre>\nfor({0} c: {0}.values())\n System.out.println(c);\n</pre>\n@return\u3053\u306E\u5217\u6319\u578B\u306E\u5B9A\u6570\u3092\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u9806\u5E8F\u3067\n\u542B\u3080\u914D\u5217 -doclet.enum_valueof_doc=\n\u6307\u5b9a\u3057\u305f\u540d\u524d\u3092\u6301\u3064\u3053\u306e\u578b\u306e\u5217\u6319\u578b\u5b9a\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002\n\u6587\u5b57\u5217\u306f\u3001\u3053\u306e\u578b\u306e\u5217\u6319\u578b\u5b9a\u6570\u3092\u5ba3\u8a00\u3059\u308b\u306e\u306b\u4f7f\u7528\u3057\u305f\u8b58\u5225\u5b50\u3068\u53b3\u5bc6\u306b\n\u4e00\u81f4\u3057\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059 (\u4f59\u5206\u306a\u7a7a\u767d\u6587\u5b57\u3092\u542b\u3081\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093)\u3002\n\n@param name \u8fd4\u3055\u308c\u308b\u5217\u6319\u578b\u5b9a\u6570\u306e\u540d\u524d\n@return \u6307\u5b9a\u3055\u308c\u305f\u540d\u524d\u3092\u6301\u3064\u5217\u6319\u578b\u5b9a\u6570\n@throws IllegalArgumentException \u6307\u5b9a\u3055\u308c\u305f\u540d\u524d\u3092\u6301\u3064\u5b9a\u6570\u3092\n\u3053\u306e\u5217\u6319\u578b\u304c\u6301\u3063\u3066\u3044\u306a\u3044\u5834\u5408\n@throws NullPointerException \u5f15\u6570\u304c null \u306e\u5834\u5408 +doclet.enum_valueof_doc=\n\u6307\u5B9A\u3057\u305F\u540D\u524D\u3092\u6301\u3064\u3053\u306E\u578B\u306E\u5217\u6319\u578B\u5B9A\u6570\u3092\u8FD4\u3057\u307E\u3059\u3002\n\u6587\u5B57\u5217\u306F\u3001\u3053\u306E\u578B\u306E\u5217\u6319\u578B\u5B9A\u6570\u3092\u5BA3\u8A00\u3059\u308B\u306E\u306B\u4F7F\u7528\u3057\u305F\u8B58\u5225\u5B50\u3068\u53B3\u5BC6\u306B\n\u4E00\u81F4\u3057\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n(\u4F59\u5206\u306A\u7A7A\u767D\u6587\u5B57\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002)\n\n@param name\u8FD4\u3055\u308C\u308B\u5217\u6319\u578B\u5B9A\u6570\u306E\u540D\u524D\n@return\u6307\u5B9A\u3055\u308C\u305F\u540D\u524D\u3092\u6301\u3064\u5217\u6319\u578B\u5B9A\u6570\n@throws IllegalArgumentException\u6307\u5B9A\u3055\u308C\u305F\u540D\u524D\u3092\u6301\u3064\u5B9A\u6570\u3092\n\u3053\u306E\u5217\u6319\u578B\u304C\u6301\u3063\u3066\u3044\u306A\u3044\u5834\u5408\n@throws NullPointerException\u5F15\u6570\u304Cnull\u306E\u5834\u5408
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,163 +1,163 @@ -doclet.Generating_0=\u6b63\u5728\u751f\u6210 {0}... -doclet.Toolkit_Usage_Violation=\u53ea\u6709 {0} \u53ef\u4ee5\u4f7f\u7528 Doclet \u5de5\u5177\u7bb1 -doclet.MissingSerialTag=\u5728\u7c7b {0} \u4e2d\uff0c\u9ed8\u8ba4\u7684\u53ef\u5e8f\u5217\u5316\u5b57\u6bb5 {1} \u7f3a\u5c11 @serial \u6807\u8bb0\u3002 -doclet.MissingSerialDataTag=\u5728\u7c7b {0} \u4e2d\uff0c\u65b9\u6cd5 {1} \u4e2d\u7f3a\u5c11 @serialData \u6807\u8bb0\u3002 -doclet.Serializable_no_customization=\u672a\u58f0\u660e readObject \u6216 writeObject \u65b9\u6cd5\u3002 -doclet.Serialized_Form=\u5e8f\u5217\u5316\u8868\u683c -doclet.Serialized_Form_methods=\u5e8f\u5217\u5316\u65b9\u6cd5 -doclet.Serialized_Form_fields=\u5e8f\u5217\u5316\u5b57\u6bb5 -doclet.Serialized_Form_class=\u5e8f\u5217\u5316\u6982\u8ff0 -doclet.Class_0_implements_serializable=\u7c7b {0} \u5b9e\u73b0 Serializable -doclet.Class_0_extends_implements_serializable=\u7c7b {0} \u7ee7\u627f {1} \u5b9e\u73b0 Serializable -doclet.Option_conflict=\u9009\u9879 {0} \u4e0e {1} \u51b2\u7a81 -doclet.Option_reuse=\u91cd\u590d\u4f7f\u7528\u7684\u9009\u9879\uff1a {0} -doclet.exception_encountered= \u5c1d\u8bd5\u521b\u5efa\u6587\u4ef6 {1} \u65f6 \n\t\u9047\u5230 {0} -doclet.perform_copy_exception_encountered= \u6267\u884c\u590d\u5236\u65f6 \n\u9047\u5230{0} \u3002 -doclet.File_not_found=\u627e\u4e0d\u5230\u6587\u4ef6\uff1a {0} -doclet.Copy_Overwrite_warning=\u672a\u5c06\u6587\u4ef6 {0} \u590d\u5236\u5230 {1}\uff0c\u56e0\u4e3a\u73b0\u6709\u6587\u4ef6\u5177\u6709\u76f8\u540c\u540d\u79f0... -doclet.Copying_File_0_To_Dir_1=\u6b63\u5728\u5c06\u6587\u4ef6 {0} \u590d\u5236\u5230\u76ee\u5f55 {1}... -doclet.Copying_File_0_To_File_1=\u6b63\u5728\u5c06\u6587\u4ef6 {0} \u590d\u5236\u5230\u6587\u4ef6 {1}... -doclet.No_Public_Classes_To_Document=\u627e\u4e0d\u5230\u53ef\u4ee5\u6587\u6863\u5316\u7684\u516c\u5171\u6216\u53d7\u4fdd\u62a4\u7684\u7c7b\u3002 -doclet.Unable_to_create_directory_0=\u65e0\u6cd5\u521b\u5efa\u76ee\u5f55 {0} -doclet.destination_directory_not_found_0=\u627e\u4e0d\u5230\u76ee\u6807\u76ee\u5f55 {0} -doclet.destination_directory_not_directory_0=\u76ee\u6807\u76ee\u5f55\u4e0d\u662f\u76ee\u5f55 {0} -doclet.destination_directory_not_writable_0=\u76ee\u6807\u76ee\u5f55\u4e0d\u53ef\u5199\u5165 {0} -doclet.Error_creating_tmp_file=\u4f7f\u7528\u9ed8\u8ba4\u5e73\u53f0\u7f16\u7801\u521b\u5efa\u4e34\u65f6\u6587\u4ef6\u65f6\u51fa\u9519\u3002 -doclet.Encoding_not_supported=\u4e0d\u652f\u6301\u7f16\u7801\uff1a {0} -doclet.Building_Tree=\u6b63\u5728\u6784\u5efa\u6240\u6709\u8f6f\u4ef6\u5305\u548c\u7c7b\u7684\u6811... -doclet.Building_Index=\u6b63\u5728\u6784\u5efa\u6240\u6709\u8f6f\u4ef6\u5305\u548c\u7c7b\u7684\u7d22\u5f15... -doclet.Building_Index_For_All_Classes=\u6b63\u5728\u6784\u5efa\u6240\u6709\u7c7b\u7684\u7d22\u5f15... -doclet.sourcetab_warning=-sourcetab \u7684\u53c2\u6570\u5fc5\u987b\u662f\u5927\u4e8e 0 \u7684\u6574\u6570\u3002 -doclet.Packages=\u8f6f\u4ef6\u5305 -doclet.Other_Packages=\u5176\u4ed6\u8f6f\u4ef6\u5305 -doclet.Notice_taglet_registered=\u6ce8\u518c\u7684 Taglet {0}... -doclet.Notice_taglet_unseen=\u6ce8\u610f\uff1a\u672a\u627e\u5230\u7684\u81ea\u5b9a\u4e49\u6807\u8bb0\uff1a {0} -doclet.Notice_taglet_overriden=\u6ce8\u610f\uff1a\u8986\u76d6\u6807\u51c6\u6807\u8bb0\u7684\u81ea\u5b9a\u4e49\u6807\u8bb0\uff1a {0} -doclet.Notice_taglet_conflict_warn=\u6ce8\u610f\uff1a\u53ef\u80fd\u8986\u76d6\u5c06\u6765\u7684\u6807\u51c6\u6807\u8bb0\u7684\u81ea\u5b9a\u4e49\u6807\u8bb0\uff1a{0}\u3002\u4e3a\u4e86\u907f\u514d\u51fa\u73b0\u53ef\u80fd\u7684\u8986\u76d6\uff0c\u8bf7\u5728\u81ea\u5b9a\u4e49\u6807\u8bb0\u540d\u79f0\u4e2d\u81f3\u5c11\u4f7f\u7528\u4e00\u4e2a\u53e5\u70b9\u5b57\u7b26 (.)\u3002 -doclet.Error_taglet_not_registered=\u9519\u8bef - \u5c1d\u8bd5\u6ce8\u518c Taglet {1} \u65f6\u629b\u51fa\u5f02\u5e38 {0}... -doclet.Error_invalid_custom_tag_argument=\u9519\u8bef - \u5bf9\u4e8e -tag \u9009\u9879\uff0c{0} \u662f\u65e0\u6548\u53c2\u6570... -doclet.Author=\u4f5c\u8005\uff1a -doclet.Default=\u9ed8\u8ba4\u503c\uff1a -doclet.Parameters=\u53c2\u6570\uff1a -doclet.TypeParameters=\u7c7b\u578b\u53c2\u6570\uff1a -doclet.Parameters_warn=@param argument "{0}" \u4e0d\u662f\u53c2\u6570\u540d\u79f0\u3002 -doclet.Parameters_dup_warn=\u591a\u6b21\u5bf9\u53c2\u6570 "{0}" \u8fdb\u884c\u6587\u6863\u5316\u3002 -doclet.Type_Parameters_warn=@param argument "{0}" \u4e0d\u662f\u7c7b\u578b\u53c2\u6570\u540d\u79f0\u3002 -doclet.Type_Parameters_dup_warn=\u591a\u6b21\u5bf9\u7c7b\u578b\u53c2\u6570 "{0}" \u8fdb\u884c\u6587\u6863\u5316\u3002 -doclet.Returns=\u8fd4\u56de\uff1a -doclet.Return_tag_on_void_method=\u4e0d\u80fd\u5728\u8fd4\u56de\u7c7b\u578b\u4e3a void \u7684\u65b9\u6cd5\u4e2d\u4f7f\u7528 @return \u6807\u8bb0\u3002 -doclet.See_Also=\u53e6\u8bf7\u53c2\u89c1\uff1a -doclet.See=\u8bf7\u53c2\u89c1\uff1a -doclet.SerialData=\u5e8f\u5217\u6570\u636e\uff1a -doclet.Since=\u4ece\u4ee5\u4e0b\u7248\u672c\u5f00\u59cb\uff1a -doclet.Throws=\u629b\u51fa\uff1a -doclet.Version=\u7248\u672c\uff1a -doclet.Factory=\u5de5\u5382\uff1a -doclet.UnknownTag={0} \u662f\u672a\u77e5\u6807\u8bb0\u3002 -doclet.UnknownTagLowercase={0} \u662f\u672a\u77e5\u6807\u8bb0 - \u9664\u4e86\u5927\u5c0f\u5199\u4e4b\u5916\u5176\u4ed6\u65b9\u9762\u4e0e\u5df2\u77e5\u6807\u8bb0\u76f8\u540c\u3002 -doclet.noInheritedDoc=\u4f7f\u7528\u4e86 @inheritDoc\uff0c\u4f46 {0} \u672a\u8986\u76d6\u6216\u5b9e\u73b0\u4efb\u4f55\u65b9\u6cd5\u3002 -doclet.malformed_html_link_tag=<a> \u6807\u8bb0\u4e0d\u89c4\u5219\uff1a\n"{0}" -doclet.tag_misuse=\u4e0d\u80fd\u5728 {1} \u6587\u6863\u4e2d\u4f7f\u7528\u6807\u8bb0 {0}\u3002\u53ea\u80fd\u5728\u4ee5\u4e0b\u7c7b\u578b\u7684\u6587\u6863\u4e2d\u4f7f\u7528\u8be5\u6807\u8bb0\uff1a{2}\u3002 -doclet.Package_Summary=\u8f6f\u4ef6\u5305\u6458\u8981 -doclet.Interface_Summary=\u63a5\u53e3\u6458\u8981 -doclet.Annotation_Types_Summary=\u6ce8\u91ca\u7c7b\u578b\u6458\u8981 -doclet.Enum_Summary=\u679a\u4e3e\u6458\u8981 -doclet.Exception_Summary=\u5f02\u5e38\u6458\u8981 -doclet.Error_Summary=\u9519\u8bef\u6458\u8981 -doclet.Class_Summary=\u7c7b\u6458\u8981 -doclet.Nested_Class_Summary=\u5d4c\u5957\u7c7b\u6458\u8981 -doclet.Annotation_Type_Optional_Member_Summary=\u53ef\u9009\u5143\u7d20\u6458\u8981 -doclet.Annotation_Type_Required_Member_Summary=\u5fc5\u9700\u5143\u7d20\u6458\u8981 -doclet.Field_Summary=\u5b57\u6bb5\u6458\u8981 -doclet.Enum_Constant_Summary=\u679a\u4e3e\u5e38\u91cf\u6458\u8981 -doclet.Constructor_Summary=\u6784\u9020\u65b9\u6cd5\u6458\u8981 -doclet.Method_Summary=\u65b9\u6cd5\u6458\u8981 -doclet.Factory_Method_Summary=\u9759\u6001\u5de5\u5382\u65b9\u6cd5\u6458\u8981 -doclet.Interfaces=\u63a5\u53e3 -doclet.Enums=\u679a\u4e3e -doclet.AnnotationTypes=\u6ce8\u91ca\u7c7b\u578b -doclet.Exceptions=\u5f02\u5e38 -doclet.Errors=\u9519\u8bef -doclet.Classes=\u7c7b -doclet.Packages=\u8f6f\u4ef6\u5305 -doclet.packages=\u8f6f\u4ef6\u5305 -doclet.All_Classes=\u6240\u6709\u7c7b -doclet.All_Superinterfaces=\u6240\u6709\u8d85\u7ea7\u63a5\u53e3\uff1a -doclet.All_Implemented_Interfaces=\u6240\u6709\u5df2\u5b9e\u73b0\u7684\u63a5\u53e3\uff1a -doclet.All_classes_and_interfaces=\u6240\u6709\u7c7b\u548c\u63a5\u53e3\uff08\u9664\u4e86\u975e\u9759\u6001\u5d4c\u5957\u7c7b\u578b\uff09 -doclet.Package_class_and_interface_descriptions=\u8f6f\u4ef6\u5305\u3001\u7c7b\u548c\u63a5\u53e3\u63cf\u8ff0 +doclet.Generating_0=\u6B63\u5728\u751F\u6210{0}... +doclet.Toolkit_Usage_Violation=\u53EA\u6709{0}\u53EF\u4EE5\u4F7F\u7528 Doclet \u5DE5\u5177\u7BB1 +doclet.MissingSerialTag=\u5728\u7C7B{0}\u4E2D, \u9ED8\u8BA4\u7684\u53EF\u5E8F\u5217\u5316\u5B57\u6BB5{1}\u7F3A\u5C11 @serial \u6807\u8BB0\u3002 +doclet.MissingSerialDataTag=\u5728\u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u4E2D\u7F3A\u5C11 @serialData \u6807\u8BB0\u3002 +doclet.Serializable_no_customization=\u672A\u58F0\u660E readObject \u6216 writeObject \u65B9\u6CD5\u3002 +doclet.Serialized_Form=\u5E8F\u5217\u5316\u8868\u683C +doclet.Serialized_Form_methods=\u5E8F\u5217\u5316\u65B9\u6CD5 +doclet.Serialized_Form_fields=\u5E8F\u5217\u5316\u5B57\u6BB5 +doclet.Serialized_Form_class=\u5E8F\u5217\u5316\u6982\u89C8 +doclet.Class_0_implements_serializable=\u7C7B{0}\u5B9E\u73B0\u53EF\u5E8F\u5217\u5316 +doclet.Class_0_extends_implements_serializable=\u7C7B{0}\u6269\u5C55{1}\u5B9E\u73B0\u53EF\u5E8F\u5217\u5316 +doclet.Option_conflict=\u9009\u9879{0}\u4E0E{1}\u51B2\u7A81 +doclet.Option_reuse=\u91CD\u590D\u4F7F\u7528\u7684\u9009\u9879: {0} +doclet.exception_encountered= \u5C1D\u8BD5\u521B\u5EFA\u6587\u4EF6{1}\u65F6 \n\t\u9047\u5230{0} +doclet.perform_copy_exception_encountered= \u6267\u884C\u590D\u5236\u65F6 \n\u9047\u5230{0}\u3002 +doclet.File_not_found=\u627E\u4E0D\u5230\u6587\u4EF6: {0} +doclet.Copy_Overwrite_warning=\u672A\u5C06\u6587\u4EF6{0}\u590D\u5236\u5230 {1}, \u56E0\u4E3A\u73B0\u6709\u6587\u4EF6\u5177\u6709\u76F8\u540C\u540D\u79F0... +doclet.Copying_File_0_To_Dir_1=\u6B63\u5728\u5C06\u6587\u4EF6{0}\u590D\u5236\u5230\u76EE\u5F55 {1}... +doclet.Copying_File_0_To_File_1=\u6B63\u5728\u5C06\u6587\u4EF6{0}\u590D\u5236\u5230\u6587\u4EF6{1}... +doclet.No_Public_Classes_To_Document=\u627E\u4E0D\u5230\u53EF\u4EE5\u6587\u6863\u5316\u7684\u516C\u5171\u6216\u53D7\u4FDD\u62A4\u7684\u7C7B\u3002 +doclet.Unable_to_create_directory_0=\u65E0\u6CD5\u521B\u5EFA\u76EE\u5F55 {0} +doclet.destination_directory_not_found_0=\u627E\u4E0D\u5230\u76EE\u6807\u76EE\u5F55 {0} +doclet.destination_directory_not_directory_0=\u76EE\u6807\u76EE\u5F55\u4E0D\u662F\u76EE\u5F55 {0} +doclet.destination_directory_not_writable_0=\u76EE\u6807\u76EE\u5F55\u4E0D\u53EF\u5199\u5165 {0} +doclet.Error_creating_tmp_file=\u4F7F\u7528\u9ED8\u8BA4\u5E73\u53F0\u7F16\u7801\u521B\u5EFA\u4E34\u65F6\u6587\u4EF6\u65F6\u51FA\u9519\u3002 +doclet.Encoding_not_supported=\u4E0D\u652F\u6301\u7F16\u7801: {0} +doclet.Building_Tree=\u6B63\u5728\u6784\u5EFA\u6240\u6709\u7A0B\u5E8F\u5305\u548C\u7C7B\u7684\u6811... +doclet.Building_Index=\u6B63\u5728\u6784\u5EFA\u6240\u6709\u7A0B\u5E8F\u5305\u548C\u7C7B\u7684\u7D22\u5F15... +doclet.Building_Index_For_All_Classes=\u6B63\u5728\u6784\u5EFA\u6240\u6709\u7C7B\u7684\u7D22\u5F15... +doclet.sourcetab_warning=-sourcetab \u7684\u53C2\u6570\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570\u3002 +doclet.Packages=\u7A0B\u5E8F\u5305 +doclet.Other_Packages=\u5176\u4ED6\u7A0B\u5E8F\u5305 +doclet.Notice_taglet_registered=\u6CE8\u518C\u7684 Taglet {0}... +doclet.Notice_taglet_unseen=\u6CE8: \u627E\u4E0D\u5230\u7684\u5B9A\u5236\u6807\u8BB0: {0} +doclet.Notice_taglet_overriden=\u6CE8: \u8986\u76D6\u6807\u51C6\u6807\u8BB0\u7684\u5B9A\u5236\u6807\u8BB0: {0} +doclet.Notice_taglet_conflict_warn=\u6CE8: \u53EF\u80FD\u8986\u76D6\u5C06\u6765\u7684\u6807\u51C6\u6807\u8BB0\u7684\u5B9A\u5236\u6807\u8BB0: {0}\u3002\u4E3A\u4E86\u907F\u514D\u51FA\u73B0\u53EF\u80FD\u7684\u8986\u76D6, \u8BF7\u5728\u5B9A\u5236\u6807\u8BB0\u540D\u79F0\u4E2D\u81F3\u5C11\u4F7F\u7528\u4E00\u4E2A\u53E5\u70B9\u5B57\u7B26 (.)\u3002 +doclet.Error_taglet_not_registered=\u9519\u8BEF - \u5C1D\u8BD5\u6CE8\u518C Taglet {1}\u65F6\u629B\u51FA\u5F02\u5E38\u9519\u8BEF{0}... +doclet.Error_invalid_custom_tag_argument=\u9519\u8BEF - \u5BF9\u4E8E -tag \u9009\u9879, {0}\u662F\u65E0\u6548\u53C2\u6570... +doclet.Author=\u4F5C\u8005: +doclet.Default=\u9ED8\u8BA4\u503C: +doclet.Parameters=\u53C2\u6570: +doclet.TypeParameters=\u7C7B\u578B\u53C2\u6570: +doclet.Parameters_warn=@param argument "{0}" \u4E0D\u662F\u53C2\u6570\u540D\u79F0\u3002 +doclet.Parameters_dup_warn=\u591A\u6B21\u5BF9\u53C2\u6570 "{0}" \u8FDB\u884C\u6587\u6863\u5316\u3002 +doclet.Type_Parameters_warn=@param argument "{0}" \u4E0D\u662F\u7C7B\u578B\u53C2\u6570\u540D\u79F0\u3002 +doclet.Type_Parameters_dup_warn=\u591A\u6B21\u5BF9\u7C7B\u578B\u53C2\u6570 "{0}" \u8FDB\u884C\u6587\u6863\u5316\u3002 +doclet.Returns=\u8FD4\u56DE: +doclet.Return_tag_on_void_method=\u4E0D\u80FD\u5728\u8FD4\u56DE\u7C7B\u578B\u4E3A\u7A7A\u7684\u65B9\u6CD5\u4E2D\u4F7F\u7528 @return \u6807\u8BB0\u3002 +doclet.See_Also=\u53E6\u8BF7\u53C2\u9605: +doclet.See=\u8BF7\u53C2\u9605: +doclet.SerialData=\u5E8F\u5217\u6570\u636E: +doclet.Since=\u4ECE\u4EE5\u4E0B\u7248\u672C\u5F00\u59CB: +doclet.Throws=\u629B\u51FA: +doclet.Version=\u7248\u672C: +doclet.Factory=\u5DE5\u5382: +doclet.UnknownTag={0}\u662F\u672A\u77E5\u6807\u8BB0\u3002 +doclet.UnknownTagLowercase={0}\u662F\u672A\u77E5\u6807\u8BB0 - \u9664\u4E86\u5927\u5C0F\u5199\u4E4B\u5916\u5176\u4ED6\u65B9\u9762\u4E0E\u5DF2\u77E5\u6807\u8BB0\u76F8\u540C\u3002 +doclet.noInheritedDoc=\u4F7F\u7528\u4E86 @inheritDoc, \u4F46{0}\u672A\u8986\u76D6\u6216\u5B9E\u73B0\u4EFB\u4F55\u65B9\u6CD5\u3002 +doclet.malformed_html_link_tag=<a> \u6807\u8BB0\u683C\u5F0F\u9519\u8BEF: \n"{0}" +doclet.tag_misuse=\u4E0D\u80FD\u5728{1}\u6587\u6863\u4E2D\u4F7F\u7528\u6807\u8BB0{0}\u3002\u53EA\u80FD\u5728\u4EE5\u4E0B\u7C7B\u578B\u7684\u6587\u6863\u4E2D\u4F7F\u7528\u8BE5\u6807\u8BB0: {2}\u3002 +doclet.Package_Summary=\u7A0B\u5E8F\u5305\u6982\u8981 +doclet.Interface_Summary=\u63A5\u53E3\u6982\u8981 +doclet.Annotation_Types_Summary=\u6CE8\u91CA\u7C7B\u578B\u6982\u8981 +doclet.Enum_Summary=\u679A\u4E3E\u6982\u8981 +doclet.Exception_Summary=\u5F02\u5E38\u9519\u8BEF\u6982\u8981 +doclet.Error_Summary=\u9519\u8BEF\u6982\u8981 +doclet.Class_Summary=\u7C7B\u6982\u8981 +doclet.Nested_Class_Summary=\u5D4C\u5957\u7C7B\u6982\u8981 +doclet.Annotation_Type_Optional_Member_Summary=\u53EF\u9009\u5143\u7D20\u6982\u8981 +doclet.Annotation_Type_Required_Member_Summary=\u5FC5\u9700\u5143\u7D20\u6982\u8981 +doclet.Field_Summary=\u5B57\u6BB5\u6982\u8981 +doclet.Enum_Constant_Summary=\u679A\u4E3E\u5E38\u91CF\u6982\u8981 +doclet.Constructor_Summary=\u6784\u9020\u5668\u6982\u8981 +doclet.Method_Summary=\u65B9\u6CD5\u6982\u8981 +doclet.Factory_Method_Summary=\u9759\u6001\u5DE5\u5382\u65B9\u6CD5\u6982\u8981 +doclet.Interfaces=\u63A5\u53E3 +doclet.Enums=\u679A\u4E3E +doclet.AnnotationTypes=\u6CE8\u91CA\u7C7B\u578B +doclet.Exceptions=\u5F02\u5E38\u9519\u8BEF +doclet.Errors=\u9519\u8BEF +doclet.Classes=\u7C7B +doclet.Packages=\u7A0B\u5E8F\u5305 +doclet.packages=\u7A0B\u5E8F\u5305 +doclet.All_Classes=\u6240\u6709\u7C7B +doclet.All_Superinterfaces=\u6240\u6709\u8D85\u7EA7\u63A5\u53E3: +doclet.All_Implemented_Interfaces=\u6240\u6709\u5DF2\u5B9E\u73B0\u7684\u63A5\u53E3: +doclet.All_classes_and_interfaces=\u6240\u6709\u7C7B\u548C\u63A5\u53E3 (\u9664\u4E86\u975E\u9759\u6001\u5D4C\u5957\u7C7B\u578B) +doclet.Package_class_and_interface_descriptions=\u7A0B\u5E8F\u5305, \u7C7B\u548C\u63A5\u53E3\u8BF4\u660E doclet.Members=\u6210\u5458 -doclet.Interface=\u63a5\u53e3 -doclet.Class=\u7c7b -doclet.AnnotationType=\u6ce8\u91ca\u7c7b\u578b -doclet.annotationtype=\u6ce8\u91ca\u7c7b\u578b -doclet.annotationtypes=\u6ce8\u91ca\u7c7b\u578b -doclet.Enum=\u679a\u4e3e -doclet.enum=\u679a\u4e3e -doclet.enums=\u679a\u4e3e -doclet.interface=\u63a5\u53e3 -doclet.interfaces=\u63a5\u53e3 -doclet.class=\u7c7b -doclet.classes=\u7c7b -doclet.Error=\u9519\u8bef -doclet.error=\u9519\u8bef -doclet.errors=\u9519\u8bef -doclet.Exception=\u5f02\u5e38 -doclet.exception=\u5f02\u5e38 -doclet.exceptions=\u5f02\u5e38 -doclet.extended_by=\u7ee7\u627f\u8005 -doclet.extends=\u7ee7\u627f -doclet.Package_private=\uff08\u4e13\u7528\u8f6f\u4ef6\u5305\uff09 -doclet.implements=implementsdoclet.Same_package_name_used=\u8f6f\u4ef6\u5305\u540d\u79f0\u5f62\u5f0f\u4f7f\u7528\u4e86\u4e24\u6b21\uff1a {0} -doclet.Nested_Classes_Interfaces_Inherited_From_Class=\u4ece\u7c7b {0} \u7ee7\u627f\u7684\u5d4c\u5957\u7c7b/\u63a5\u53e3 -doclet.Nested_Classes_Interface_Inherited_From_Interface=\u4ece\u63a5\u53e3 {0} \u7ee7\u627f\u7684\u5d4c\u5957\u7c7b/\u63a5\u53e3 -doclet.Methods_Inherited_From_Class=\u4ece\u7c7b {0} \u7ee7\u627f\u7684\u65b9\u6cd5 -doclet.Methods_Inherited_From_Interface=\u4ece\u63a5\u53e3 {0} \u7ee7\u627f\u7684\u65b9\u6cd5 -doclet.Fields_Inherited_From_Class=\u4ece\u7c7b {0} \u7ee7\u627f\u7684\u5b57\u6bb5 -doclet.Fields_Inherited_From_Interface=\u4ece\u63a5\u53e3 {0} \u7ee7\u627f\u7684\u5b57\u6bb5 -doclet.Serializable=Serializable -doclet.Externalizable=Externalizable -doclet.Annotation_Type_Member_Detail=\u5143\u7d20\u8be6\u7ec6\u4fe1\u606f -doclet.Enum_Constant_Detail=\u679a\u4e3e\u5e38\u91cf\u8be6\u7ec6\u4fe1\u606f -doclet.Constants_Summary=\u5e38\u91cf\u5b57\u6bb5\u503c -doclet.Field_Detail=\u5b57\u6bb5\u8be6\u7ec6\u4fe1\u606f -doclet.Method_Detail=\u65b9\u6cd5\u8be6\u7ec6\u4fe1\u606f -doclet.Constructor_Detail=\u6784\u9020\u65b9\u6cd5\u8be6\u7ec6\u4fe1\u606f -doclet.Deprecated=\u5df2\u8fc7\u65f6\u3002 -doclet.Deprecated_class=\u8be5\u7c7b\u5df2\u8fc7\u65f6\u3002 -doclet.Groupname_already_used=\u5728 -group \u9009\u9879\u4e2d\uff0cgroupname \u5df2\u4f7f\u7528\uff1a {0} -doclet.value_tag_invalid_reference={0}\uff08\u7531 @value \u6807\u8bb0\u5f15\u7528\uff09\u4e3a\u672a\u77e5\u5f15\u7528\u3002 -doclet.value_tag_invalid_constant=@value \u6807\u8bb0\uff08\u5f15\u7528 {0}\uff09\u53ea\u80fd\u5728\u5e38\u91cf\u4e2d\u4f7f\u7528\u3002 -doclet.dest_dir_create=\u6b63\u5728\u521b\u5efa\u76ee\u6807\u76ee\u5f55\uff1a "{0}" -doclet.in={1} \u4e2d\u7684 {0} -doclet.Use_Table_Summary=\u4f7f\u7528\u8868\u683c\uff0c\u5217\u51fa {0} \u548c\u8bf4\u660e -doclet.Constants_Table_Summary={0} \u8868\u683c\uff0c\u5217\u51fa\u5e38\u91cf\u5b57\u6bb5\u548c\u503c -doclet.Member_Table_Summary={0} \u8868\u683c\uff0c\u5217\u51fa {1} \u548c\u8bf4\u660e -doclet.fields=\u5b57\u6bb5 -doclet.constructors=\u6784\u9020\u51fd\u6570 -doclet.methods=\u65b9\u6cd5 -doclet.annotation_type_optional_members=\u53ef\u9009\u5143\u7d20 -doclet.annotation_type_required_members=\u5fc5\u9700\u5143\u7d20 -doclet.enum_constants=\u679a\u4e3e\u5e38\u91cf -doclet.nested_classes=\u5d4c\u5957\u7c7b -doclet.subclasses=\u5b50\u7c7b -doclet.subinterfaces=\u5b50\u63a5\u53e3 -doclet.Modifier=\u4fee\u9970\u7b26 -doclet.Type=\u7c7b\u578b -doclet.Field=\u5b57\u6bb5 -doclet.Constructor=\u6784\u9020\u51fd\u6570 -doclet.Method=\u65b9\u6cd5 -doclet.Annotation_Type_Optional_Member=\u53ef\u9009\u5143\u7d20 -doclet.Annotation_Type_Required_Member=\u5fc5\u9700\u5143\u7d20 -doclet.Annotation_Type_Member=\u6ce8\u91ca\u7c7b\u578b\u5143\u7d20 -doclet.Enum_Constant=\u679a\u4e3e\u5e38\u91cf -doclet.Class=\u7c7b -doclet.Description=\u63cf\u8ff0 -doclet.ConstantField=\u5e38\u91cf\u5b57\u6bb5 -doclet.Value=\u503c -doclet.0_and_1={0} \u548c {1} +doclet.Interface=\u63A5\u53E3 +doclet.Class=\u7C7B +doclet.AnnotationType=\u6CE8\u91CA\u7C7B\u578B +doclet.annotationtype=\u6CE8\u91CA\u7C7B\u578B +doclet.annotationtypes=\u6CE8\u91CA\u7C7B\u578B +doclet.Enum=\u679A\u4E3E +doclet.enum=\u679A\u4E3E +doclet.enums=\u679A\u4E3E +doclet.interface=\u63A5\u53E3 +doclet.interfaces=\u63A5\u53E3 +doclet.class=\u7C7B +doclet.classes=\u7C7B +doclet.Error=\u9519\u8BEF +doclet.error=\u9519\u8BEF +doclet.errors=\u9519\u8BEF +doclet.Exception=\u5F02\u5E38\u9519\u8BEF +doclet.exception=\u5F02\u5E38\u9519\u8BEF +doclet.exceptions=\u5F02\u5E38\u9519\u8BEF +doclet.extended_by=\u6269\u5C55\u8005 +doclet.extends=\u6269\u5C55 +doclet.Package_private=(\u4E13\u7528\u7A0B\u5E8F\u5305) +doclet.implements=implementsdoclet.Same_package_name_used=\u7A0B\u5E8F\u5305\u540D\u79F0\u5F62\u5F0F\u4F7F\u7528\u4E86\u4E24\u6B21: {0} +doclet.Nested_Classes_Interfaces_Inherited_From_Class=\u4ECE\u7C7B{0}\u7EE7\u627F\u7684\u5D4C\u5957\u7C7B/\u63A5\u53E3 +doclet.Nested_Classes_Interface_Inherited_From_Interface=\u4ECE\u63A5\u53E3{0}\u7EE7\u627F\u7684\u5D4C\u5957\u7C7B/\u63A5\u53E3 +doclet.Methods_Inherited_From_Class=\u4ECE\u7C7B{0}\u7EE7\u627F\u7684\u65B9\u6CD5 +doclet.Methods_Inherited_From_Interface=\u4ECE\u63A5\u53E3{0}\u7EE7\u627F\u7684\u65B9\u6CD5 +doclet.Fields_Inherited_From_Class=\u4ECE\u7C7B{0}\u7EE7\u627F\u7684\u5B57\u6BB5 +doclet.Fields_Inherited_From_Interface=\u4ECE\u63A5\u53E3{0}\u7EE7\u627F\u7684\u5B57\u6BB5 +doclet.Serializable=\u53EF\u5E8F\u5217\u5316 +doclet.Externalizable=\u53EF\u5916\u90E8\u5316 +doclet.Annotation_Type_Member_Detail=\u5143\u7D20\u8BE6\u7EC6\u8D44\u6599 +doclet.Enum_Constant_Detail=\u679A\u4E3E\u5E38\u91CF\u8BE6\u7EC6\u8D44\u6599 +doclet.Constants_Summary=\u5E38\u91CF\u5B57\u6BB5\u503C +doclet.Field_Detail=\u5B57\u6BB5\u8BE6\u7EC6\u8D44\u6599 +doclet.Method_Detail=\u65B9\u6CD5\u8BE6\u7EC6\u8D44\u6599 +doclet.Constructor_Detail=\u6784\u9020\u5668\u8BE6\u7EC6\u8D44\u6599 +doclet.Deprecated=\u5DF2\u8FC7\u65F6\u3002 +doclet.Deprecated_class=\u8BE5\u7C7B\u5DF2\u8FC7\u65F6\u3002 +doclet.Groupname_already_used=\u5728 -group \u9009\u9879\u4E2D, groupname \u5DF2\u4F7F\u7528: {0} +doclet.value_tag_invalid_reference={0} (\u7531 @value \u6807\u8BB0\u5F15\u7528) \u4E3A\u672A\u77E5\u5F15\u7528\u3002 +doclet.value_tag_invalid_constant=@value \u6807\u8BB0 (\u5F15\u7528{0}) \u53EA\u80FD\u5728\u5E38\u91CF\u4E2D\u4F7F\u7528\u3002 +doclet.dest_dir_create=\u6B63\u5728\u521B\u5EFA\u76EE\u6807\u76EE\u5F55: "{0}" +doclet.in={1}\u4E2D\u7684{0} +doclet.Use_Table_Summary=\u4F7F\u7528\u8868, \u5217\u8868{0}\u548C\u89E3\u91CA +doclet.Constants_Table_Summary={0}\u8868, \u5217\u8868\u5E38\u91CF\u5B57\u6BB5\u548C\u503C +doclet.Member_Table_Summary={0}\u8868, \u5217\u8868{1}\u548C\u89E3\u91CA +doclet.fields=\u5B57\u6BB5 +doclet.constructors=\u6784\u9020\u5668 +doclet.methods=\u65B9\u6CD5 +doclet.annotation_type_optional_members=\u53EF\u9009\u5143\u7D20 +doclet.annotation_type_required_members=\u5FC5\u9700\u7684\u5143\u7D20 +doclet.enum_constants=\u679A\u4E3E\u5E38\u91CF +doclet.nested_classes=\u5D4C\u5957\u7C7B +doclet.subclasses=\u5B50\u7C7B +doclet.subinterfaces=\u5B50\u63A5\u53E3 +doclet.Modifier=\u9650\u5B9A\u7B26 +doclet.Type=\u7C7B\u578B +doclet.Field=\u5B57\u6BB5 +doclet.Constructor=\u6784\u9020\u5668 +doclet.Method=\u65B9\u6CD5 +doclet.Annotation_Type_Optional_Member=\u53EF\u9009\u5143\u7D20 +doclet.Annotation_Type_Required_Member=\u5FC5\u9700\u7684\u5143\u7D20 +doclet.Annotation_Type_Member=\u6CE8\u91CA\u7C7B\u578B\u5143\u7D20 +doclet.Enum_Constant=\u679A\u4E3E\u5E38\u91CF +doclet.Class=\u7C7B +doclet.Description=\u8BF4\u660E +doclet.ConstantField=\u5E38\u91CF\u5B57\u6BB5 +doclet.Value=\u503C +doclet.0_and_1={0}\u548C{1} #Documentation for Enums -doclet.enum_values_doc=\n\u6309\u7167\u58f0\u660e\u8be5\u679a\u4e3e\u7c7b\u578b\u7684\u5e38\u91cf\u7684\u987a\u5e8f\uff0c\u8fd4\u56de\n\u5305\u542b\u8fd9\u4e9b\u5e38\u91cf\u7684\u6570\u7ec4\u3002\u8be5\u65b9\u6cd5\u53ef\u7528\u4e8e\u8fed\u4ee3\n\u5e38\u91cf\uff0c\u5982\u4e0b\u6240\u793a\uff1a\n<pre>\nfor ({0} c : {0}.values())\n System.out.println(c);\n</pre>\n@\u6309\u7167\u58f0\u660e\u8be5\u679a\u4e3e\u7c7b\u578b\u7684\u5e38\u91cf\u7684\u987a\u5e8f\uff0c\u8fd4\u56de\n\u5305\u542b\u8fd9\u4e9b\u5e38\u91cf\u7684\u6570\u7ec4 +doclet.enum_values_doc=\n\u6309\u7167\u58F0\u660E\u8BE5\u679A\u4E3E\u7C7B\u578B\u7684\u5E38\u91CF\u7684\u987A\u5E8F, \u8FD4\u56DE\n\u5305\u542B\u8FD9\u4E9B\u5E38\u91CF\u7684\u6570\u7EC4\u3002\u8BE5\u65B9\u6CD5\u53EF\u7528\u4E8E\u8FED\u4EE3\n\u5E38\u91CF, \u5982\u4E0B\u6240\u793A:\n<pre>\nfor ({0} c : {0}.values())\n System.out.println(c);\n</pre>\n@\u6309\u7167\u58F0\u660E\u8BE5\u679A\u4E3E\u7C7B\u578B\u7684\u5E38\u91CF\u7684\u987A\u5E8F, \u8FD4\u56DE\n\u5305\u542B\u8FD9\u4E9B\u5E38\u91CF\u7684\u6570\u7EC4 -doclet.enum_valueof_doc=\n\u8fd4\u56de\u5e26\u6709\u6307\u5b9a\u540d\u79f0\u7684\u8be5\u7c7b\u578b\u7684\u679a\u4e3e\u5e38\u91cf\u3002\n\u5b57\u7b26\u4e32\u5fc5\u987b\u4e0e\u7528\u4e8e\u58f0\u660e\u8be5\u7c7b\u578b\u7684\u679a\u4e3e\u5e38\u91cf\u7684\n\u6807\u8bc6\u7b26<I>\u5b8c\u5168</I>\u5339\u914d\u3002\uff08\u4e0d\u5141\u8bb8\u6709\u591a\u4f59\n\u7684\u7a7a\u683c\u3002\uff09\n\n@param name \u8981\u8fd4\u56de\u7684\u679a\u4e3e\u5e38\u91cf\u7684\u540d\u79f0\u3002\n@return \u8fd4\u56de\u5e26\u6709\u6307\u5b9a\u540d\u79f0\u7684\u679a\u4e3e\u5e38\u91cf\n@throws \u5982\u679c\u8be5\u679a\u4e3e\u7c7b\u578b\u6ca1\u6709\u5e26\u6709\u6307\u5b9a\u540d\u79f0\u7684\u5e38\u91cf\uff0c\n\u5219\u629b\u51fa IllegalArgumentException +doclet.enum_valueof_doc=\n\u8FD4\u56DE\u5E26\u6709\u6307\u5B9A\u540D\u79F0\u7684\u8BE5\u7C7B\u578B\u7684\u679A\u4E3E\u5E38\u91CF\u3002\n\u5B57\u7B26\u4E32\u5FC5\u987B\u4E0E\u7528\u4E8E\u58F0\u660E\u8BE5\u7C7B\u578B\u7684\u679A\u4E3E\u5E38\u91CF\u7684\n\u6807\u8BC6\u7B26<I>\u5B8C\u5168</I>\u5339\u914D\u3002(\u4E0D\u5141\u8BB8\u6709\u591A\u4F59\n\u7684\u7A7A\u683C\u5B57\u7B26\u3002)\n\n@param name \u8981\u8FD4\u56DE\u7684\u679A\u4E3E\u5E38\u91CF\u7684\u540D\u79F0\u3002\n@return \u8FD4\u56DE\u5E26\u6709\u6307\u5B9A\u540D\u79F0\u7684\u679A\u4E3E\u5E38\u91CF\n@throws \u5982\u679C\u8BE5\u679A\u4E3E\u7C7B\u578B\u6CA1\u6709\u5E26\u6709\u6307\u5B9A\u540D\u79F0\u7684\u5E38\u91CF, \n\u5219\u629B\u51FA IllegalArgumentException\n@throws \u5982\u679C\u53C2\u6570\u4E3A\u7A7A\u503C, \u5219\u629B\u51FA NullPointerException\u3002
--- a/src/share/classes/com/sun/tools/javac/Main.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/Main.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -43,12 +43,6 @@ */ public class Main { - static { - ClassLoader loader = Main.class.getClassLoader(); - if (loader != null) - loader.setPackageAssertionStatus("com.sun.tools.javac", true); - } - /** Unsupported command line interface. * @param args The command line parameters. */
--- a/src/share/classes/com/sun/tools/javac/code/Attribute.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/code/Attribute.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -204,21 +204,6 @@ } } - public static class TypeCompound extends Compound { - public TypeAnnotationPosition position; - public TypeCompound(Compound compound, - TypeAnnotationPosition position) { - this(compound.type, compound.values, position); - } - public TypeCompound(Type type, - List<Pair<MethodSymbol, Attribute>> values, - TypeAnnotationPosition position) { - super(type, values); - this.position = position; - } - - } - /** The value for an annotation element of an array type. */ public static class Array extends Attribute { @@ -255,8 +240,7 @@ public VarSymbol value; public Enum(Type type, VarSymbol value) { super(type); - assert value != null; - this.value = value; + this.value = Assert.checkNonNull(value); } public void accept(Visitor v) { v.visitEnum(this); } public String toString() {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/com/sun/tools/javac/code/DeferredLintHandler.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.tools.javac.code; + +import java.util.HashMap; +import java.util.Map; + +import com.sun.tools.javac.util.Assert; +import com.sun.tools.javac.util.Context; +import com.sun.tools.javac.util.ListBuffer; +import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition; + +/** + * + * <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. + * This code and its internal interfaces are subject to change or + * deletion without notice.</b> + */ +public class DeferredLintHandler { + protected static final Context.Key<DeferredLintHandler> deferredLintHandlerKey = + new Context.Key<DeferredLintHandler>(); + + public static DeferredLintHandler instance(Context context) { + DeferredLintHandler instance = context.get(deferredLintHandlerKey); + if (instance == null) + instance = new DeferredLintHandler(context); + return instance; + } + + protected DeferredLintHandler(Context context) { + context.put(deferredLintHandlerKey, this); + } + + private DeferredLintHandler() {} + + public interface LintLogger { + void report(); + } + + private DiagnosticPosition currentPos; + private Map<DiagnosticPosition, ListBuffer<LintLogger>> loggersQueue = new HashMap<DiagnosticPosition, ListBuffer<LintLogger>>(); + + public void report(LintLogger logger) { + ListBuffer<LintLogger> loggers = loggersQueue.get(currentPos); + Assert.checkNonNull(loggers); + loggers.append(logger); + } + + public void flush(DiagnosticPosition pos) { + ListBuffer<LintLogger> loggers = loggersQueue.get(pos); + if (loggers != null) { + for (LintLogger lintLogger : loggers) { + lintLogger.report(); + } + loggersQueue.remove(pos); + } + } + + public DeferredLintHandler setPos(DiagnosticPosition currentPos) { + this.currentPos = currentPos; + loggersQueue.put(currentPos, ListBuffer.<LintLogger>lb()); + return this; + } + + public static final DeferredLintHandler immediateHandler = new DeferredLintHandler() { + @Override + public void report(LintLogger logger) { + logger.report(); + } + }; +}
--- a/src/share/classes/com/sun/tools/javac/code/Flags.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/code/Flags.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -237,7 +237,7 @@ /** * Flag that marks a signature-polymorphic invoke method. - * (These occur inside java.dyn.MethodHandle.) + * (These occur inside java.lang.invoke.MethodHandle.) */ public static final long POLYMORPHIC_SIGNATURE = 1L<<40; @@ -252,6 +252,11 @@ */ public static final long EFFECTIVELY_FINAL = 1L<<42; + /** + * Flag that marks non-override equivalent methods with the same signature + */ + public static final long CLASH = 1L<<43; + /** Modifier masks. */ public static final int
--- a/src/share/classes/com/sun/tools/javac/code/Printer.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/code/Printer.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011, 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 @@ -106,7 +106,7 @@ } /** - * * Get a localized string represenation for all the symbols in the input list. + * * Get a localized string representation for all the symbols in the input list. * * @param ts symbols to be displayed * @param locale the locale in which the string is to be rendered
--- a/src/share/classes/com/sun/tools/javac/code/Scope.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/code/Scope.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -72,49 +72,10 @@ */ int nelems = 0; - /** A timestamp - useful to quickly check whether a scope has changed or not - */ - public ScopeCounter scopeCounter; - - static ScopeCounter dummyCounter = new ScopeCounter() { - @Override - public void inc() { - //do nothing - } - }; - /** A list of scopes to be notified if items are to be removed from this scope. */ List<Scope> listeners = List.nil(); - public static class ScopeCounter { - protected static final Context.Key<ScopeCounter> scopeCounterKey = - new Context.Key<ScopeCounter>(); - - public static ScopeCounter instance(Context context) { - ScopeCounter instance = context.get(scopeCounterKey); - if (instance == null) - instance = new ScopeCounter(context); - return instance; - } - - protected ScopeCounter(Context context) { - context.put(scopeCounterKey, this); - } - - private ScopeCounter() {}; - - private long val = 0; - - public void inc() { - val++; - } - - public long val() { - return val; - } - } - /** Use as a "not-found" result for lookup. * Also used to mark deleted entries in the table. */ @@ -126,35 +87,30 @@ /** A value for the empty scope. */ - public static final Scope emptyScope = new Scope(null, null, new Entry[]{}, dummyCounter); + public static final Scope emptyScope = new Scope(null, null, new Entry[]{}); /** Construct a new scope, within scope next, with given owner, using * given table. The table's length must be an exponent of 2. */ - private Scope(Scope next, Symbol owner, Entry[] table, ScopeCounter scopeCounter) { + private Scope(Scope next, Symbol owner, Entry[] table) { this.next = next; - assert emptyScope == null || owner != null; + Assert.check(emptyScope == null || owner != null); this.owner = owner; this.table = table; this.hashMask = table.length - 1; - this.scopeCounter = scopeCounter; } /** Convenience constructor used for dup and dupUnshared. */ - private Scope(Scope next, Symbol owner, Entry[] table) { - this(next, owner, table, next.scopeCounter); - this.nelems = next.nelems; + private Scope(Scope next, Symbol owner, Entry[] table, int nelems) { + this(next, owner, table); + this.nelems = nelems; } /** Construct a new scope, within scope next, with given owner, * using a fresh table of length INITIAL_SIZE. */ public Scope(Symbol owner) { - this(owner, dummyCounter); - } - - protected Scope(Symbol owner, ScopeCounter scopeCounter) { - this(null, owner, new Entry[INITIAL_SIZE], scopeCounter); + this(null, owner, new Entry[INITIAL_SIZE]); } /** Construct a fresh scope within this scope, with same owner, @@ -172,7 +128,7 @@ * of fresh tables. */ public Scope dup(Symbol newOwner) { - Scope result = new Scope(this, newOwner, this.table); + Scope result = new Scope(this, newOwner, this.table, this.nelems); shared++; // System.out.println("====> duping scope " + this.hashCode() + " owned by " + newOwner + " to " + result.hashCode()); // new Error().printStackTrace(System.out); @@ -184,23 +140,23 @@ * the table of its outer scope. */ public Scope dupUnshared() { - return new Scope(this, this.owner, this.table.clone()); + return new Scope(this, this.owner, this.table.clone(), this.nelems); } /** Remove all entries of this scope from its table, if shared * with next. */ public Scope leave() { - assert shared == 0; + Assert.check(shared == 0); if (table != next.table) return next; while (elems != null) { int hash = getIndex(elems.sym.name); Entry e = table[hash]; - assert e == elems : elems.sym; + Assert.check(e == elems, elems.sym); table[hash] = elems.shadowed; elems = elems.sibling; } - assert next.shared > 0; + Assert.check(next.shared > 0); next.shared--; next.nelems = nelems; // System.out.println("====> leaving scope " + this.hashCode() + " owned by " + this.owner + " to " + next.hashCode()); @@ -211,12 +167,12 @@ /** Double size of hash table. */ private void dble() { - assert shared == 0; + Assert.check(shared == 0); Entry[] oldtable = table; Entry[] newtable = new Entry[oldtable.length * 2]; for (Scope s = this; s != null; s = s.next) { if (s.table == oldtable) { - assert s == this || s.shared != 0; + Assert.check(s == this || s.shared != 0); s.table = newtable; s.hashMask = newtable.length - 1; } @@ -237,7 +193,7 @@ /** Enter symbol sym in this scope. */ public void enter(Symbol sym) { - assert shared == 0; + Assert.check(shared == 0); enter(sym, this); } @@ -251,7 +207,7 @@ * arguments are only used in import scopes. */ public void enter(Symbol sym, Scope s, Scope origin) { - assert shared == 0; + Assert.check(shared == 0); if (nelems * 3 >= hashMask * 2) dble(); int hash = getIndex(sym.name); @@ -263,7 +219,6 @@ Entry e = makeEntry(sym, old, elems, s, origin); table[hash] = e; elems = e; - scopeCounter.inc(); } Entry makeEntry(Symbol sym, Entry shadowed, Entry sibling, Scope scope, Scope origin) { @@ -274,12 +229,10 @@ * attribute tells us that the class isn't a package member. */ public void remove(Symbol sym) { - assert shared == 0; + Assert.check(shared == 0); Entry e = lookup(sym.name); if (e.scope == null) return; - scopeCounter.inc(); - // remove e from table and shadowed list; int i = getIndex(sym.name); Entry te = table[i]; @@ -314,7 +267,7 @@ /** Enter symbol sym in this scope if not already there. */ public void enterIfAbsent(Symbol sym) { - assert shared == 0; + Assert.check(shared == 0); Entry e = lookup(sym.name); while (e.scope == this && e.sym.kind != sym.kind) e = e.next(); if (e.scope != this) enter(sym); @@ -559,7 +512,7 @@ public static final Entry[] emptyTable = new Entry[0]; public DelegatedScope(Scope outer) { - super(outer, outer.owner, emptyTable, outer.scopeCounter); + super(outer, outer.owner, emptyTable); delegatee = outer; } public Scope dup() { @@ -585,22 +538,10 @@ } } - /** A class scope, for which a scope counter should be provided */ - public static class ClassScope extends Scope { - - ClassScope(Scope next, Symbol owner, Entry[] table, ScopeCounter scopeCounter) { - super(next, owner, table, scopeCounter); - } - - public ClassScope(Symbol owner, ScopeCounter scopeCounter) { - super(owner, scopeCounter); - } - } - /** An error scope, for which the owner should be an error symbol. */ public static class ErrorScope extends Scope { ErrorScope(Scope next, Symbol errSymbol, Entry[] table) { - super(next, /*owner=*/errSymbol, table, dummyCounter); + super(next, /*owner=*/errSymbol, table); } public ErrorScope(Symbol errSymbol) { super(errSymbol);
--- a/src/share/classes/com/sun/tools/javac/code/Symbol.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -81,8 +81,7 @@ * method to make sure that the class symbol is loaded. */ public List<Attribute.Compound> getAnnotationMirrors() { - assert attributes_field != null; - return attributes_field; + return Assert.checkNonNull(attributes_field); } /** Fetch a particular annotation from a symbol. */ @@ -100,17 +99,6 @@ */ public Type type; - /** The type annotations targeted to a tree directly owned by this symbol - */ - // type annotations are stored here for two purposes: - // - convenient location to store annotations for generation after erasure - // - a private interface for accessing type annotations parsed from - // classfiles - // the field is populated for the following declaration only - // class, field, variable and type parameters - // - public List<Attribute.TypeCompound> typeAnnotations; - /** The owner of this symbol. */ public Symbol owner; @@ -133,7 +121,6 @@ this.completer = null; this.erasure_field = null; this.attributes_field = List.nil(); - this.typeAnnotations = List.nil(); this.name = name; } @@ -608,7 +595,7 @@ } public <R, P> R accept(ElementVisitor<R, P> v, P p) { - assert type.tag == TYPEVAR; // else override will be invoked + Assert.check(type.tag == TYPEVAR); // else override will be invoked return v.visitTypeParameter(this, p); } @@ -682,8 +669,7 @@ if (attributes_field.isEmpty()) attributes_field = package_info.attributes_field; } - assert attributes_field != null; - return attributes_field; + return Assert.checkNonNull(attributes_field); } /** A package "exists" if a type or package that exists has @@ -743,6 +729,10 @@ */ public Pool pool; + /** members closure cache (set by Types.membersClosure) + */ + Scope membersClosure; + public ClassSymbol(long flags, Name name, Type type, Symbol owner) { super(flags, name, type, owner); this.members_field = null; @@ -780,8 +770,7 @@ public List<Attribute.Compound> getAnnotationMirrors() { if (completer != null) complete(); - assert attributes_field != null; - return attributes_field; + return Assert.checkNonNull(attributes_field); } public Type erasure(Types types) { @@ -976,22 +965,12 @@ } public void setLazyConstValue(final Env<AttrContext> env, - final Log log, final Attr attr, final JCTree.JCExpression initializer) { setData(new Callable<Object>() { public Object call() { - JavaFileObject source = log.useSource(env.toplevel.sourcefile); - try { - Type itype = attr.attribExpr(initializer, env, type); - if (itype.constValue() != null) - return attr.coerce(itype, type).constValue(); - else - return null; - } finally { - log.useSource(source); - } + return attr.attribLazyConstantValue(env, initializer, type); } }); } @@ -1025,6 +1004,7 @@ try { data = eval.call(); } catch (Exception ex) { + ex.printStackTrace(); throw new AssertionError(ex); } } @@ -1032,7 +1012,7 @@ } public void setData(Object data) { - assert !(data instanceof Env<?>) : this; + Assert.check(!(data instanceof Env<?>), this); this.data = data; } @@ -1064,7 +1044,7 @@ */ public MethodSymbol(long flags, Name name, Type type, Symbol owner) { super(MTH, flags, name, type, owner); - assert owner.type.tag != TYPEVAR : owner + "." + name; + if (owner.type.tag == TYPEVAR) Assert.error(owner + "." + name); } /** Clone this symbol with new owner. @@ -1246,7 +1226,7 @@ }; public MethodSymbol implementation(TypeSymbol origin, Types types, boolean checkResult, Filter<Symbol> implFilter) { - MethodSymbol res = types.implementation(this, origin, types, checkResult, implFilter); + MethodSymbol res = types.implementation(this, origin, checkResult, implFilter); if (res != null) return res; // if origin is derived from a raw type, we might have missed
--- a/src/share/classes/com/sun/tools/javac/code/Symtab.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/code/Symtab.java Sat Apr 09 00:45:10 2011 +0100 @@ -74,7 +74,6 @@ public final JCNoType voidType = new JCNoType(TypeTags.VOID); private final Names names; - private final Scope.ScopeCounter scopeCounter; private final ClassReader reader; private final Target target; @@ -124,9 +123,10 @@ public final Type stringBuilderType; public final Type cloneableType; public final Type serializableType; + public final Type transientMethodHandleType; // transient - 292 public final Type methodHandleType; + public final Type transientPolymorphicSignatureType; // transient - 292 public final Type polymorphicSignatureType; - public final Type invokeDynamicType; public final Type throwableType; public final Type errorType; public final Type illegalArgumentExceptionType; @@ -342,7 +342,6 @@ context.put(symtabKey, this); names = Names.instance(context); - scopeCounter = Scope.ScopeCounter.instance(context); target = Target.instance(context); // Create the unknown type @@ -389,7 +388,7 @@ // Create class to hold all predefined constants and operations. predefClass = new ClassSymbol(PUBLIC|ACYCLIC, names.empty, rootPackage); - Scope scope = new Scope.ClassScope(predefClass, scopeCounter); + Scope scope = new Scope(predefClass); predefClass.members_field = scope; // Enter symbols for basic types. @@ -420,9 +419,10 @@ cloneableType = enterClass("java.lang.Cloneable"); throwableType = enterClass("java.lang.Throwable"); serializableType = enterClass("java.io.Serializable"); - methodHandleType = enterClass("java.dyn.MethodHandle"); - polymorphicSignatureType = enterClass("java.dyn.MethodHandle$PolymorphicSignature"); - invokeDynamicType = enterClass("java.dyn.InvokeDynamic"); + transientMethodHandleType = enterClass("java.dyn.MethodHandle"); // transient - 292 + methodHandleType = enterClass("java.lang.invoke.MethodHandle"); + transientPolymorphicSignatureType = enterClass("java.dyn.MethodHandle$PolymorphicSignature"); // transient - 292 + polymorphicSignatureType = enterClass("java.lang.invoke.MethodHandle$PolymorphicSignature"); errorType = enterClass("java.lang.Error"); illegalArgumentExceptionType = enterClass("java.lang.IllegalArgumentException"); exceptionType = enterClass("java.lang.Exception"); @@ -466,6 +466,7 @@ synthesizeEmptyInterfaceIfMissing(cloneableType); synthesizeEmptyInterfaceIfMissing(serializableType); + synthesizeEmptyInterfaceIfMissing(transientPolymorphicSignatureType); // transient - 292 synthesizeEmptyInterfaceIfMissing(polymorphicSignatureType); synthesizeBoxTypeIfMissing(doubleType); synthesizeBoxTypeIfMissing(floatType); @@ -480,7 +481,7 @@ proprietarySymbol.completer = null; proprietarySymbol.flags_field = PUBLIC|ACYCLIC|ANNOTATION|INTERFACE; proprietarySymbol.erasure_field = proprietaryType; - proprietarySymbol.members_field = new Scope.ClassScope(proprietarySymbol, scopeCounter); + proprietarySymbol.members_field = new Scope(proprietarySymbol); proprietaryType.typarams_field = List.nil(); proprietaryType.allparams_field = List.nil(); proprietaryType.supertype_field = annotationType; @@ -492,7 +493,7 @@ ClassType arrayClassType = (ClassType)arrayClass.type; arrayClassType.supertype_field = objectType; arrayClassType.interfaces_field = List.of(cloneableType, serializableType); - arrayClass.members_field = new Scope.ClassScope(arrayClass, scopeCounter); + arrayClass.members_field = new Scope(arrayClass); lengthVar = new VarSymbol( PUBLIC | FINAL, names.length,
--- a/src/share/classes/com/sun/tools/javac/code/Type.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/code/Type.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -138,7 +138,7 @@ */ public Type constType(Object constValue) { final Object value = constValue; - assert tag <= BOOLEAN; + Assert.check(tag <= BOOLEAN); return new Type(tag, tsym) { @Override public Object constValue() { @@ -202,13 +202,13 @@ * The constant value of this type, converted to String */ public String stringValue() { - assert constValue() != null; + Object cv = Assert.checkNonNull(constValue()); if (tag == BOOLEAN) - return ((Integer) constValue()).intValue() == 0 ? "false" : "true"; + return ((Integer) cv).intValue() == 0 ? "false" : "true"; else if (tag == CHAR) - return String.valueOf((char) ((Integer) constValue()).intValue()); + return String.valueOf((char) ((Integer) cv).intValue()); else - return constValue().toString(); + return cv.toString(); } /** @@ -365,6 +365,16 @@ return false; } + public static List<Type> filter(List<Type> ts, Filter<Type> tf) { + ListBuffer<Type> buf = ListBuffer.lb(); + for (Type t : ts) { + if (tf.accepts(t)) { + buf.append(t); + } + } + return buf.toList(); + } + public boolean isSuperBound() { return false; } public boolean isExtendsBound() { return false; } public boolean isUnbound() { return false; } @@ -428,9 +438,8 @@ public WildcardType(Type type, BoundKind kind, TypeSymbol tsym) { super(WILDCARD, tsym); - assert(type != null); + this.type = Assert.checkNonNull(type); this.kind = kind; - this.type = type; } public WildcardType(WildcardType t, TypeVar bound) { this(t.type, t.kind, t.tsym, bound); @@ -1021,9 +1030,8 @@ Type lower, WildcardType wildcard) { super(name, owner, lower); - assert lower != null; + this.lower = Assert.checkNonNull(lower); this.bound = upper; - this.lower = lower; this.wildcard = wildcard; }
--- a/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,403 +0,0 @@ -/* - * Copyright (c) 2009, 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. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.tools.javac.code; - -import javax.lang.model.element.ElementKind; - -import com.sun.tools.javac.code.Symbol.VarSymbol; -import com.sun.tools.javac.tree.JCTree; -import com.sun.tools.javac.tree.TreeInfo; -import com.sun.tools.javac.tree.TreeScanner; -import com.sun.tools.javac.tree.JCTree.*; -import com.sun.tools.javac.util.Context; -import com.sun.tools.javac.util.List; -import com.sun.tools.javac.util.ListBuffer; - -/** - * Contains operations specific to processing type annotations - */ -public class TypeAnnotations { - private static final Context.Key<TypeAnnotations> key - = new Context.Key<TypeAnnotations>(); - - public static TypeAnnotations instance(Context context) { - TypeAnnotations instance = context.get(key); - if (instance == null) - instance = new TypeAnnotations(context); - return instance; - } - - protected TypeAnnotations(Context context) { - context.put(key, this); - } - - public void taFillAndLift(JCClassDecl tree, boolean visitBodies) { -//308 new TypeAnnotationPositions().scan(tree); -//308 new TypeAnnotationLift().scan(tree); - } - - private static class TypeAnnotationPositions extends TreeScanner { - - private ListBuffer<JCTree> frames = ListBuffer.lb(); - private void push(JCTree t) { frames = frames.prepend(t); } - private JCTree pop() { return frames.next(); } - private JCTree peek2() { return frames.toList().tail.head; } - - @Override - public void scan(JCTree tree) { - push(tree); - super.scan(tree); - pop(); - } - - private boolean inClass = false; - - @Override - public void visitClassDef(JCClassDecl tree) { - if (!inClass) { - // Do not recurse into nested and inner classes since - // TransTypes.visitClassDef makes an invocation for each class - // separately. - inClass = true; - try { - super.visitClassDef(tree); - } finally { - inClass = false; - } - } - } - - private TypeAnnotationPosition resolveFrame(JCTree tree, JCTree frame, - List<JCTree> path, TypeAnnotationPosition p) { - switch (frame.getKind()) { - case TYPE_CAST: - p.type = TargetType.TYPECAST; - p.pos = frame.pos; - return p; - - case INSTANCE_OF: - p.type = TargetType.INSTANCEOF; - p.pos = frame.pos; - return p; - - case NEW_CLASS: - p.type = TargetType.NEW; - p.pos = frame.pos; - return p; - - case NEW_ARRAY: - p.type = TargetType.NEW; - p.pos = frame.pos; - return p; - - case ANNOTATION_TYPE: - case CLASS: - case ENUM: - case INTERFACE: - p.pos = frame.pos; - if (((JCClassDecl)frame).extending == tree) { - p.type = TargetType.CLASS_EXTENDS; - p.type_index = -1; - } else if (((JCClassDecl)frame).implementing.contains(tree)) { - p.type = TargetType.CLASS_EXTENDS; - p.type_index = ((JCClassDecl)frame).implementing.indexOf(tree); - } else if (((JCClassDecl)frame).typarams.contains(tree)) { - p.type = TargetType.CLASS_TYPE_PARAMETER; - p.parameter_index = ((JCClassDecl)frame).typarams.indexOf(tree); - } else - throw new AssertionError(); - return p; - - case METHOD: { - JCMethodDecl frameMethod = (JCMethodDecl)frame; - p.pos = frame.pos; - if (frameMethod.receiverAnnotations.contains(tree)) - p.type = TargetType.METHOD_RECEIVER; - else if (frameMethod.thrown.contains(tree)) { - p.type = TargetType.THROWS; - p.type_index = frameMethod.thrown.indexOf(tree); - } else if (((JCMethodDecl)frame).restype == tree) { - p.type = TargetType.METHOD_RETURN_GENERIC_OR_ARRAY; - } else if (frameMethod.typarams.contains(tree)) { - p.type = TargetType.METHOD_TYPE_PARAMETER; - p.parameter_index = frameMethod.typarams.indexOf(tree); - } else - throw new AssertionError(); - return p; - } - case MEMBER_SELECT: { - JCFieldAccess fieldFrame = (JCFieldAccess)frame; - if ("class".contentEquals(fieldFrame.name)) { - p.type = TargetType.CLASS_LITERAL; - p.pos = TreeInfo.innermostType(fieldFrame.selected).pos; - } else - throw new AssertionError(); - return p; - } - case PARAMETERIZED_TYPE: { - TypeAnnotationPosition nextP; - if (((JCTypeApply)frame).clazz == tree) - nextP = p; // generic: RAW; noop - else if (((JCTypeApply)frame).arguments.contains(tree)) - p.location = p.location.prepend( - ((JCTypeApply)frame).arguments.indexOf(tree)); - else - throw new AssertionError(); - - List<JCTree> newPath = path.tail; - return resolveFrame(newPath.head, newPath.tail.head, newPath, p); - } - - case ARRAY_TYPE: { - p.location = p.location.prepend(0); - List<JCTree> newPath = path.tail; - return resolveFrame(newPath.head, newPath.tail.head, newPath, p); - } - - case TYPE_PARAMETER: - if (path.tail.tail.head.getTag() == JCTree.CLASSDEF) { - JCClassDecl clazz = (JCClassDecl)path.tail.tail.head; - p.type = TargetType.CLASS_TYPE_PARAMETER_BOUND; - p.parameter_index = clazz.typarams.indexOf(path.tail.head); - p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree); - } else if (path.tail.tail.head.getTag() == JCTree.METHODDEF) { - JCMethodDecl method = (JCMethodDecl)path.tail.tail.head; - p.type = TargetType.METHOD_TYPE_PARAMETER_BOUND; - p.parameter_index = method.typarams.indexOf(path.tail.head); - p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree); - } else - throw new AssertionError(); - p.pos = frame.pos; - return p; - - case VARIABLE: - VarSymbol v = ((JCVariableDecl)frame).sym; - p.pos = frame.pos; - switch (v.getKind()) { - case LOCAL_VARIABLE: - p.type = TargetType.LOCAL_VARIABLE; break; - case FIELD: - p.type = TargetType.FIELD_GENERIC_OR_ARRAY; break; - case PARAMETER: - p.type = TargetType.METHOD_PARAMETER_GENERIC_OR_ARRAY; - p.parameter_index = methodParamIndex(path, frame); - break; - default: throw new AssertionError(); - } - return p; - -//308 case ANNOTATED_TYPE: { -//308 List<JCTree> newPath = path.tail; -//308 return resolveFrame(newPath.head, newPath.tail.head, -//308 newPath, p); -//308 } - - case METHOD_INVOCATION: { - JCMethodInvocation invocation = (JCMethodInvocation)frame; - if (!invocation.typeargs.contains(tree)) - throw new AssertionError("{" + tree + "} is not an argument in the invocation: " + invocation); - p.type = TargetType.METHOD_TYPE_ARGUMENT; - p.pos = invocation.pos; - p.type_index = invocation.typeargs.indexOf(tree); - return p; - } - - case EXTENDS_WILDCARD: - case SUPER_WILDCARD: { - p.type = TargetType.WILDCARD_BOUND; - List<JCTree> newPath = path.tail; - - TypeAnnotationPosition wildcard = - resolveFrame(newPath.head, newPath.tail.head, newPath, - new TypeAnnotationPosition()); - if (!wildcard.location.isEmpty()) - wildcard.type = wildcard.type.getGenericComplement(); - p.wildcard_position = wildcard; - p.pos = frame.pos; - return p; - } - } - return p; - } - - private void setTypeAnnotationPos(List<JCTypeAnnotation> annotations, TypeAnnotationPosition position) { - for (JCTypeAnnotation anno : annotations) { - anno.annotation_position = position; - anno.attribute_field.position = position; - } - } - - @Override - public void visitNewArray(JCNewArray tree) { - findPosition(tree, tree, tree.annotations); - int dimAnnosCount = tree.dimAnnotations.size(); - - // handle annotations associated with dimentions - for (int i = 0; i < dimAnnosCount; ++i) { - TypeAnnotationPosition p = new TypeAnnotationPosition(); - p.type = TargetType.NEW_GENERIC_OR_ARRAY; - p.pos = tree.pos; - p.location = p.location.append(i); - setTypeAnnotationPos(tree.dimAnnotations.get(i), p); - } - - // handle "free" annotations - int i = dimAnnosCount == 0 ? 0 : dimAnnosCount - 1; - JCExpression elemType = tree.elemtype; - while (elemType != null) { - if (elemType.getTag() == JCTree.ANNOTATED_TYPE) { - JCAnnotatedType at = (JCAnnotatedType)elemType; - TypeAnnotationPosition p = new TypeAnnotationPosition(); - p.type = TargetType.NEW_GENERIC_OR_ARRAY; - p.pos = tree.pos; - p.location = p.location.append(i); - setTypeAnnotationPos(at.annotations, p); - elemType = at.underlyingType; - } else if (elemType.getTag() == JCTree.TYPEARRAY) { - ++i; - elemType = ((JCArrayTypeTree)elemType).elemtype; - } else - break; - } - - // find annotations locations of initializer elements - scan(tree.elems); - } - - @Override - public void visitAnnotatedType(JCAnnotatedType tree) { - findPosition(tree, peek2(), tree.annotations); - super.visitAnnotatedType(tree); - } - - @Override - public void visitMethodDef(JCMethodDecl tree) { - TypeAnnotationPosition p = new TypeAnnotationPosition(); - p.type = TargetType.METHOD_RECEIVER; - setTypeAnnotationPos(tree.receiverAnnotations, p); - super.visitMethodDef(tree); - } - @Override - public void visitTypeParameter(JCTypeParameter tree) { - findPosition(tree, peek2(), tree.annotations); - super.visitTypeParameter(tree); - } - - void findPosition(JCTree tree, JCTree frame, List<JCTypeAnnotation> annotations) { - if (!annotations.isEmpty()) { - TypeAnnotationPosition p = - resolveFrame(tree, frame, frames.toList(), - new TypeAnnotationPosition()); - if (!p.location.isEmpty()) - p.type = p.type.getGenericComplement(); - setTypeAnnotationPos(annotations, p); - } - } - - private int methodParamIndex(List<JCTree> path, JCTree param) { - List<JCTree> curr = path; - if (curr.head != param) - curr = path.tail; - JCMethodDecl method = (JCMethodDecl)curr.tail.head; - return method.params.indexOf(param); - } - } - - private static class TypeAnnotationLift extends TreeScanner { - List<Attribute.TypeCompound> recordedTypeAnnotations = List.nil(); - - boolean isInner = false; - @Override - public void visitClassDef(JCClassDecl tree) { - if (isInner) { - // tree is an inner class tree. stop now. - // TransTypes.visitClassDef makes an invocation for each class - // separately. - return; - } - isInner = true; - List<Attribute.TypeCompound> prevTAs = recordedTypeAnnotations; - recordedTypeAnnotations = List.nil(); - try { - super.visitClassDef(tree); - } finally { - tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations); - recordedTypeAnnotations = prevTAs; - } - } - - @Override - public void visitMethodDef(JCMethodDecl tree) { - List<Attribute.TypeCompound> prevTAs = recordedTypeAnnotations; - recordedTypeAnnotations = List.nil(); - try { - super.visitMethodDef(tree); - } finally { - tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations); - recordedTypeAnnotations = prevTAs; - } - } - - @Override - public void visitVarDef(JCVariableDecl tree) { - List<Attribute.TypeCompound> prevTAs = recordedTypeAnnotations; - recordedTypeAnnotations = List.nil(); - ElementKind kind = tree.sym.getKind(); - if (kind == ElementKind.LOCAL_VARIABLE && tree.mods.annotations.nonEmpty()) { - // need to lift the annotations - TypeAnnotationPosition position = new TypeAnnotationPosition(); - position.pos = tree.pos; - position.type = TargetType.LOCAL_VARIABLE; - for (Attribute.Compound attribute : tree.sym.attributes_field) { - Attribute.TypeCompound tc = - new Attribute.TypeCompound(attribute.type, attribute.values, position); - recordedTypeAnnotations = recordedTypeAnnotations.append(tc); - } - } - try { - super.visitVarDef(tree); - } finally { - if (kind.isField() || kind == ElementKind.LOCAL_VARIABLE) - tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations); - recordedTypeAnnotations = kind.isField() ? prevTAs : prevTAs.appendList(recordedTypeAnnotations); - } - } - - @Override - public void visitApply(JCMethodInvocation tree) { - scan(tree.meth); - scan(tree.typeargs); - scan(tree.args); - } - - public void visitAnnotation(JCAnnotation tree) { - if (tree instanceof JCTypeAnnotation) - recordedTypeAnnotations = recordedTypeAnnotations.append(((JCTypeAnnotation)tree).attribute_field); - super.visitAnnotation(tree); - } - } - -}
--- a/src/share/classes/com/sun/tools/javac/code/Types.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/code/Types.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -36,6 +36,7 @@ import com.sun.tools.javac.code.Lint.LintCategory; import com.sun.tools.javac.comp.Check; +import static com.sun.tools.javac.code.Scope.*; import static com.sun.tools.javac.code.Type.*; import static com.sun.tools.javac.code.TypeTags.*; import static com.sun.tools.javac.code.Symbol.*; @@ -70,7 +71,6 @@ new Context.Key<Types>(); final Symtab syms; - final Scope.ScopeCounter scopeCounter; final JavacMessages messages; final Names names; final boolean allowBoxing; @@ -91,7 +91,6 @@ protected Types(Context context) { context.put(typesKey, this); syms = Symtab.instance(context); - scopeCounter = Scope.ScopeCounter.instance(context); names = Names.instance(context); allowBoxing = Source.instance(context).allowBoxing(); reader = ClassReader.instance(context); @@ -1061,8 +1060,9 @@ highSub = (lowSub == null) ? null : asSub(bHigh, aHigh.tsym); } if (highSub != null) { - assert a.tsym == highSub.tsym && a.tsym == lowSub.tsym - : a.tsym + " != " + highSub.tsym + " != " + lowSub.tsym; + if (!(a.tsym == highSub.tsym && a.tsym == lowSub.tsym)) { + Assert.error(a.tsym + " != " + highSub.tsym + " != " + lowSub.tsym); + } if (!disjointTypes(aHigh.allparams(), highSub.allparams()) && !disjointTypes(aHigh.allparams(), lowSub.allparams()) && !disjointTypes(aLow.allparams(), highSub.allparams()) @@ -1703,9 +1703,9 @@ bt.supertype_field = bounds.head; bt.interfaces_field = bounds.tail; } - assert bt.supertype_field.tsym.completer != null - || !bt.supertype_field.isInterface() - : bt.supertype_field; + Assert.check(bt.supertype_field.tsym.completer != null + || !bt.supertype_field.isInterface(), + bt.supertype_field); return bt; } @@ -1834,7 +1834,7 @@ // t.interfaces_field is null after // completion, we can assume that t is not the // type of a class/interface declaration. - assert t != t.tsym.type : t.toString(); + Assert.check(t != t.tsym.type, t); List<Type> actuals = t.allparams(); List<Type> formals = t.tsym.type.allparams(); if (t.hasErasedSupertypes()) { @@ -2023,26 +2023,22 @@ final MethodSymbol cachedImpl; final Filter<Symbol> implFilter; final boolean checkResult; - final Scope.ScopeCounter scopeCounter; public Entry(MethodSymbol cachedImpl, Filter<Symbol> scopeFilter, - boolean checkResult, - Scope.ScopeCounter scopeCounter) { + boolean checkResult) { this.cachedImpl = cachedImpl; this.implFilter = scopeFilter; this.checkResult = checkResult; - this.scopeCounter = scopeCounter; } - boolean matches(Filter<Symbol> scopeFilter, boolean checkResult, Scope.ScopeCounter scopeCounter) { + boolean matches(Filter<Symbol> scopeFilter, boolean checkResult) { return this.implFilter == scopeFilter && - this.checkResult == checkResult && - this.scopeCounter.val() >= scopeCounter.val(); + this.checkResult == checkResult; } } - MethodSymbol get(MethodSymbol ms, TypeSymbol origin, boolean checkResult, Filter<Symbol> implFilter, Scope.ScopeCounter scopeCounter) { + MethodSymbol get(MethodSymbol ms, TypeSymbol origin, boolean checkResult, Filter<Symbol> implFilter) { SoftReference<Map<TypeSymbol, Entry>> ref_cache = _map.get(ms); Map<TypeSymbol, Entry> cache = ref_cache != null ? ref_cache.get() : null; if (cache == null) { @@ -2051,9 +2047,9 @@ } Entry e = cache.get(origin); if (e == null || - !e.matches(implFilter, checkResult, scopeCounter)) { + !e.matches(implFilter, checkResult)) { MethodSymbol impl = implementationInternal(ms, origin, Types.this, checkResult, implFilter); - cache.put(origin, new Entry(impl, implFilter, checkResult, scopeCounter)); + cache.put(origin, new Entry(impl, implFilter, checkResult)); return impl; } else { @@ -2080,9 +2076,53 @@ private ImplementationCache implCache = new ImplementationCache(); - public MethodSymbol implementation(MethodSymbol ms, TypeSymbol origin, Types types, boolean checkResult, Filter<Symbol> implFilter) { - return implCache.get(ms, origin, checkResult, implFilter, scopeCounter); + public MethodSymbol implementation(MethodSymbol ms, TypeSymbol origin, boolean checkResult, Filter<Symbol> implFilter) { + return implCache.get(ms, origin, checkResult, implFilter); + } + // </editor-fold> + + // <editor-fold defaultstate="collapsed" desc="compute transitive closure of all members in given site"> + public Scope membersClosure(Type site) { + return membersClosure.visit(site); } + + UnaryVisitor<Scope> membersClosure = new UnaryVisitor<Scope>() { + + public Scope visitType(Type t, Void s) { + return null; + } + + @Override + public Scope visitClassType(ClassType t, Void s) { + ClassSymbol csym = (ClassSymbol)t.tsym; + if (csym.membersClosure == null) { + Scope membersClosure = new Scope(csym); + for (Type i : interfaces(t)) { + enterAll(visit(i), membersClosure); + } + enterAll(visit(supertype(t)), membersClosure); + enterAll(csym.members(), membersClosure); + csym.membersClosure = membersClosure; + } + return csym.membersClosure; + } + + @Override + public Scope visitTypeVar(TypeVar t, Void s) { + return visit(t.getUpperBound()); + } + + public void enterAll(Scope s, Scope to) { + if (s == null) return; + List<Symbol> syms = List.nil(); + for (Scope.Entry e = s.elems ; e != null ; e = e.sibling) { + syms = syms.prepend(e.sym); + } + for (Symbol sym : syms) { + to.enter(sym); + } + } + }; // </editor-fold> /** @@ -2258,6 +2298,13 @@ @Override public Type visitForAll(ForAll t, Void ignored) { + if (Type.containsAny(to, t.tvars)) { + //perform alpha-renaming of free-variables in 't' + //if 'to' types contain variables that are free in 't' + List<Type> freevars = newInstances(t.tvars); + t = new ForAll(freevars, + Types.this.subst(t.qtype, t.tvars, freevars)); + } List<Type> tvars1 = substBounds(t.tvars, from, to); Type qtype1 = subst(t.qtype); if (tvars1 == t.tvars && qtype1 == t.qtype) { @@ -2646,7 +2693,7 @@ act2 = act2.tail; typarams = typarams.tail; } - assert(act1.isEmpty() && act2.isEmpty() && typarams.isEmpty()); + Assert.check(act1.isEmpty() && act2.isEmpty() && typarams.isEmpty()); return new ClassType(class1.getEnclosingType(), merged.toList(), class1.tsym); } @@ -2758,7 +2805,7 @@ // calculate lub(A, B) while (ts.head.tag != CLASS && ts.head.tag != TYPEVAR) ts = ts.tail; - assert !ts.isEmpty(); + Assert.check(!ts.isEmpty()); List<Type> cl = closure(ts.head); for (Type t : ts.tail) { if (t.tag == CLASS || t.tag == TYPEVAR) @@ -3138,7 +3185,7 @@ boolean reverse = false; Type target = to; if ((to.tsym.flags() & INTERFACE) == 0) { - assert (from.tsym.flags() & INTERFACE) != 0; + Assert.check((from.tsym.flags() & INTERFACE) != 0); reverse = true; to = from; from = target; @@ -3173,12 +3220,12 @@ boolean reverse = false; Type target = to; if ((to.tsym.flags() & INTERFACE) == 0) { - assert (from.tsym.flags() & INTERFACE) != 0; + Assert.check((from.tsym.flags() & INTERFACE) != 0); reverse = true; to = from; from = target; } - assert (from.tsym.flags() & FINAL) != 0; + Assert.check((from.tsym.flags() & FINAL) != 0); Type t1 = asSuper(from, to.tsym); if (t1 == null) return false; Type t2 = to;
--- a/src/share/classes/com/sun/tools/javac/comp/Attr.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/comp/Attr.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -83,6 +83,7 @@ final Types types; final JCDiagnostic.Factory diags; final Annotate annotate; + final DeferredLintHandler deferredLintHandler; public static Attr instance(Context context) { Attr instance = context.get(attrKey); @@ -108,6 +109,7 @@ types = Types.instance(context); diags = JCDiagnostic.Factory.instance(context); annotate = Annotate.instance(context); + deferredLintHandler = DeferredLintHandler.instance(context); Options options = Options.instance(context); @@ -125,7 +127,6 @@ findDiamonds = options.get("findDiamond") != null && source.allowDiamond(); useBeforeDeclarationWarning = options.isSet("useBeforeDeclarationWarning"); - enableSunApiLintControl = options.isSet("enableSunApiLintControl"); } /** Switch: relax some constraints for retrofit mode. @@ -174,12 +175,6 @@ boolean useBeforeDeclarationWarning; /** - * Switch: allow lint infrastructure to control proprietary - * API warnings. - */ - boolean enableSunApiLintControl; - - /** * Switch: allow strings in switch? */ boolean allowStringsInSwitch; @@ -563,7 +558,7 @@ if (bound != null && bound.tsym instanceof ClassSymbol) { ClassSymbol c = (ClassSymbol)bound.tsym; if ((c.flags_field & COMPOUND) != 0) { - assert (c.flags_field & UNATTRIBUTED) != 0 : c; + Assert.check((c.flags_field & UNATTRIBUTED) != 0, c); attribClass(typaram.pos(), c); } } @@ -581,6 +576,41 @@ } } + /** + * Attribute a "lazy constant value". + * @param env The env for the const value + * @param initializer The initializer for the const value + * @param type The expected type, or null + * @see VarSymbol#setlazyConstValue + */ + public Object attribLazyConstantValue(Env<AttrContext> env, + JCTree.JCExpression initializer, + Type type) { + + // in case no lint value has been set up for this env, scan up + // env stack looking for smallest enclosing env for which it is set. + Env<AttrContext> lintEnv = env; + while (lintEnv.info.lint == null) + lintEnv = lintEnv.next; + + // Having found the enclosing lint value, we can initialize the lint value for this class + env.info.lint = lintEnv.info.lint.augment(env.info.enclVar.attributes_field, env.info.enclVar.flags()); + + Lint prevLint = chk.setLint(env.info.lint); + JavaFileObject prevSource = log.useSource(env.toplevel.sourcefile); + + try { + Type itype = attribExpr(initializer, env, type); + if (itype.constValue() != null) + return coerce(itype, type).constValue(); + else + return null; + } finally { + env.info.lint = prevLint; + log.useSource(prevSource); + } + } + /** Attribute type reference in an `extends' or `implements' clause. * Supertypes of anonymous inner classes are usually already attributed. * @@ -672,13 +702,18 @@ Lint prevLint = chk.setLint(lint); MethodSymbol prevMethod = chk.setMethod(m); try { + deferredLintHandler.flush(tree.pos()); chk.checkDeprecatedAnnotation(tree.pos(), m); attribBounds(tree.typarams); // If we override any other methods, check that we do so properly. // JLS ??? - chk.checkClashes(tree.pos(), env.enclClass.type, m); + if (m.isStatic()) { + chk.checkHideClashes(tree.pos(), env.enclClass.type, m); + } else { + chk.checkOverrideClashes(tree.pos(), env.enclClass.type, m); + } chk.checkOverride(tree, m); // Create a new environment with local scope @@ -814,6 +849,7 @@ // Check that the variable's declared type is well-formed. chk.validate(tree.vartype, env); + deferredLintHandler.flush(tree.pos()); try { chk.checkDeprecatedAnnotation(tree.pos(), v); @@ -905,7 +941,10 @@ // or perhaps expr implements Iterable<T>? Type base = types.asSuper(exprType, syms.iterableType.tsym); if (base == null) { - log.error(tree.expr.pos(), "foreach.not.applicable.to.type"); + log.error(tree.expr.pos(), + "foreach.not.applicable.to.type", + exprType, + diags.fragment("type.req.array.or.iterable")); elemtype = types.createErrorType(exprType); } else { List<Type> iterableParams = base.allparams(); @@ -970,7 +1009,7 @@ if (enumSwitch) { Symbol sym = enumConstant(c.pat, seltype); if (sym == null) { - log.error(c.pat.pos(), "enum.const.req"); + log.error(c.pat.pos(), "enum.label.must.be.unqualified.enum"); } else if (!labels.add(sym)) { log.error(c.pos(), "duplicate.case.label"); } @@ -1334,7 +1373,6 @@ // The types of the actual method type arguments. List<Type> typeargtypes = null; - boolean typeargtypesNonRefOK = false; Name methName = TreeInfo.name(tree.meth); @@ -1434,7 +1472,7 @@ localEnv.info.varArgs = false; Type mtype = attribExpr(tree.meth, localEnv, mpt); if (localEnv.info.varArgs) - assert mtype.isErroneous() || tree.varargsElement != null; + Assert.check(mtype.isErroneous() || tree.varargsElement != null); // Compute the result type. Type restype = mtype.getReturnType(); @@ -1463,21 +1501,7 @@ restype.tsym); } - // Special case logic for JSR 292 types. - if (rs.allowTransitionalJSR292 && - tree.meth.getTag() == JCTree.SELECT && - !typeargtypes.isEmpty()) { - JCFieldAccess mfield = (JCFieldAccess) tree.meth; - // MethodHandle.<T>invoke(abc) and InvokeDynamic.<T>foo(abc) - // has type <T>, and T can be a primitive type. - if (mfield.sym != null && - mfield.sym.isPolymorphicSignatureInstance()) - typeargtypesNonRefOK = true; - } - - if (!(rs.allowTransitionalJSR292 && typeargtypesNonRefOK)) { - chk.checkRefTypes(tree.typeargs, typeargtypes); - } + chk.checkRefTypes(tree.typeargs, typeargtypes); // Check that value of resulting type is admissible in the // current context. Also, capture the return type @@ -1667,7 +1691,7 @@ typeargtypes, localEnv.info.varArgs); if (localEnv.info.varArgs) - assert tree.constructorType.isErroneous() || tree.varargsElement != null; + Assert.check(tree.constructorType.isErroneous() || tree.varargsElement != null); } if (cdef != null) { @@ -1727,7 +1751,7 @@ Symbol sym = rs.resolveConstructor( tree.pos(), localEnv, clazztype, argtypes, typeargtypes, true, tree.varargsElement != null); - assert sym.kind < AMBIGUOUS || tree.constructor.type.isErroneous(); + Assert.check(sym.kind < AMBIGUOUS || tree.constructor.type.isErroneous()); tree.constructor = sym; if (tree.constructor.kind > ERRONEOUS) { tree.constructorType = syms.errType; @@ -1971,7 +1995,9 @@ tree.pos(), tree.getTag() - JCTree.ASGOffset, env, owntype, operand); - if (operator.kind == MTH) { + if (operator.kind == MTH && + !owntype.isErroneous() && + !operand.isErroneous()) { chk.checkOperator(tree.pos(), (OperatorSymbol)operator, tree.getTag() - JCTree.ASGOffset, @@ -1996,7 +2022,8 @@ rs.resolveUnaryOperator(tree.pos(), tree.getTag(), env, argtype); Type owntype = types.createErrorType(tree.type); - if (operator.kind == MTH) { + if (operator.kind == MTH && + !argtype.isErroneous()) { owntype = (JCTree.PREINC <= tree.getTag() && tree.getTag() <= JCTree.POSTDEC) ? tree.arg.type : operator.type.getReturnType(); @@ -2032,7 +2059,9 @@ rs.resolveBinaryOperator(tree.pos(), tree.getTag(), env, left, right); Type owntype = types.createErrorType(tree.type); - if (operator.kind == MTH) { + if (operator.kind == MTH && + !left.isErroneous() && + !right.isErroneous()) { owntype = operator.type.getReturnType(); int opc = chk.checkOperator(tree.lhs.pos(), (OperatorSymbol)operator, @@ -2243,10 +2272,10 @@ // Determine the symbol represented by the selection. env.info.varArgs = false; - Symbol sym = selectSym(tree, site, env, pt, pkind); + Symbol sym = selectSym(tree, sitesym, site, env, pt, pkind); if (sym.exists() && !isType(sym) && (pkind & (PCK | TYP)) != 0) { site = capture(site); - sym = selectSym(tree, site, env, pt, pkind); + sym = selectSym(tree, sitesym, site, env, pt, pkind); } boolean varArgs = env.info.varArgs; tree.sym = sym; @@ -2335,23 +2364,30 @@ * @param pkind The expected kind(s) of the Select expression. */ private Symbol selectSym(JCFieldAccess tree, + Type site, + Env<AttrContext> env, + Type pt, + int pkind) { + return selectSym(tree, site.tsym, site, env, pt, pkind); + } + private Symbol selectSym(JCFieldAccess tree, + Symbol location, Type site, Env<AttrContext> env, Type pt, int pkind) { DiagnosticPosition pos = tree.pos(); Name name = tree.name; - switch (site.tag) { case PACKAGE: return rs.access( rs.findIdentInPackage(env, site.tsym, name, pkind), - pos, site, name, true); + pos, location, site, name, true); case ARRAY: case CLASS: if (pt.tag == METHOD || pt.tag == FORALL) { return rs.resolveQualifiedMethod( - pos, env, site, name, pt.getParameterTypes(), pt.getTypeArguments()); + pos, env, location, site, name, pt.getParameterTypes(), pt.getTypeArguments()); } else if (name == names._this || name == names._super) { return rs.resolveSelf(pos, env, site.tsym, name); } else if (name == names._class) { @@ -2368,7 +2404,7 @@ // We are seeing a plain identifier as selector. Symbol sym = rs.findIdentInType(env, site, name, pkind); if ((pkind & ERRONEOUS) == 0) - sym = rs.access(sym, pos, site, name, true); + sym = rs.access(sym, pos, location, site, name, true); return sym; } case WILDCARD: @@ -2376,12 +2412,12 @@ case TYPEVAR: // Normally, site.getUpperBound() shouldn't be null. // It should only happen during memberEnter/attribBase - // when determining the super type which *must* be + // when determining the super type which *must* beac // done before attributing the type variables. In // other words, we are seeing this illegal program: // class B<T> extends A<T.foo> {} Symbol sym = (site.getUpperBound() != null) - ? selectSym(tree, capture(site.getUpperBound()), env, pt, pkind) + ? selectSym(tree, location, capture(site.getUpperBound()), env, pt, pkind) : null; if (sym == null) { log.error(pos, "type.var.cant.be.deref"); @@ -2390,7 +2426,7 @@ Symbol sym2 = (sym.flags() & Flags.PRIVATE) != 0 ? rs.new AccessError(env, site, sym) : sym; - rs.access(sym2, pos, site, name, true); + rs.access(sym2, pos, location, site, name, true); return sym; } case ERROR: @@ -2547,17 +2583,10 @@ // Test (1): emit a `deprecation' warning if symbol is deprecated. // (for constructors, the error was given when the constructor was // resolved) - if (sym.name != names.init && - (sym.flags() & DEPRECATED) != 0 && - (env.info.scope.owner.flags() & DEPRECATED) == 0 && - sym.outermostClass() != env.info.scope.owner.outermostClass()) - chk.warnDeprecated(tree.pos(), sym); - - if ((sym.flags() & PROPRIETARY) != 0) { - if (enableSunApiLintControl) - chk.warnSunApi(tree.pos(), "sun.proprietary", sym); - else - log.strictWarning(tree.pos(), "sun.proprietary", sym); + + if (sym.name != names.init) { + chk.checkDeprecated(tree.pos(), env.info.scope.owner, sym); + chk.checkSunAPI(tree.pos(), sym); } // Test (3): if symbol is a variable, check that its type and @@ -2961,7 +2990,7 @@ extending, implementing, List.<JCTree>nil()); ClassSymbol c = (ClassSymbol)a.getUpperBound().tsym; - assert (c.flags() & COMPOUND) != 0; + Assert.check((c.flags() & COMPOUND) != 0); cd.sym = c; c.sourcefile = env.toplevel.sourcefile; @@ -2989,10 +3018,6 @@ result = tree.type = syms.errType; } - public void visitAnnotatedType(JCAnnotatedType tree) { - result = tree.type = attribType(tree.getUnderlyingType(), env); - } - public void visitErroneous(JCErroneous tree) { if (tree.errs != null) for (JCTree err : tree.errs) @@ -3097,7 +3122,7 @@ /** Finish the attribution of a class. */ private void attribClassBody(Env<AttrContext> env, ClassSymbol c) { JCClassDecl tree = (JCClassDecl)env.tree; - assert c == tree.sym; + Assert.check(c == tree.sym); // Validate annotations chk.validateAnnotations(tree.mods.annotations, c); @@ -3138,12 +3163,9 @@ tree.type = c.type; - boolean assertsEnabled = false; - assert assertsEnabled = true; - if (assertsEnabled) { - for (List<JCTypeParameter> l = tree.typarams; - l.nonEmpty(); l = l.tail) - assert env.info.scope.lookup(l.head.name).scope != null; + for (List<JCTypeParameter> l = tree.typarams; + l.nonEmpty(); l = l.tail) { + Assert.checkNonNull(env.info.scope.lookup(l.head.name).scope); } // Check that a generic class doesn't extend Throwable @@ -3167,7 +3189,7 @@ if (sym == null || sym.kind != VAR || ((VarSymbol) sym).getConstValue() == null) - log.error(l.head.pos(), "icls.cant.have.static.decl"); + log.error(l.head.pos(), "icls.cant.have.static.decl", c); } } @@ -3184,9 +3206,6 @@ (c.flags() & ABSTRACT) == 0) { checkSerialVersionUID(tree, c); } - - // Check type annotations applicability rules - validateTypeAnnotations(tree); } // where /** check if a class is a subtype of Serializable, if that is available. */ @@ -3234,35 +3253,6 @@ return types.capture(type); } - private void validateTypeAnnotations(JCTree tree) { - tree.accept(typeAnnotationsValidator); - } - //where - private final JCTree.Visitor typeAnnotationsValidator = - new TreeScanner() { - public void visitAnnotation(JCAnnotation tree) { - if (tree instanceof JCTypeAnnotation) { - chk.validateTypeAnnotation((JCTypeAnnotation)tree, false); - } - super.visitAnnotation(tree); - } - public void visitTypeParameter(JCTypeParameter tree) { - chk.validateTypeAnnotations(tree.annotations, true); - // don't call super. skip type annotations - scan(tree.bounds); - } - public void visitMethodDef(JCMethodDecl tree) { - // need to check static methods - if ((tree.sym.flags() & Flags.STATIC) != 0) { - for (JCTypeAnnotation a : tree.receiverAnnotations) { - if (chk.isTypeAnnotation(a, false)) - log.error(a.pos(), "annotation.type.not.applicable"); - } - } - super.visitMethodDef(tree); - } - }; - // <editor-fold desc="post-attribution visitor"> /**
--- a/src/share/classes/com/sun/tools/javac/comp/Check.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/comp/Check.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -68,6 +68,7 @@ private final boolean skipAnnotations; private boolean warnOnSyntheticConflicts; private boolean suppressAbortOnBadClassFile; + private boolean enableSunApiLintControl; private final TreeInfo treeinfo; // The set of lint options currently in effect. It is initialized @@ -109,13 +110,13 @@ skipAnnotations = options.isSet("skipAnnotations"); warnOnSyntheticConflicts = options.isSet("warnOnSyntheticConflicts"); suppressAbortOnBadClassFile = options.isSet("suppressAbortOnBadClassFile"); + enableSunApiLintControl = options.isSet("enableSunApiLintControl"); Target target = Target.instance(context); syntheticNameChar = target.syntheticNameChar(); boolean verboseDeprecated = lint.isEnabled(LintCategory.DEPRECATION); boolean verboseUnchecked = lint.isEnabled(LintCategory.UNCHECKED); - boolean verboseVarargs = lint.isEnabled(LintCategory.VARARGS); boolean verboseSunApi = lint.isEnabled(LintCategory.SUNAPI); boolean enforceMandatoryWarnings = source.enforceMandatoryWarnings(); @@ -123,10 +124,10 @@ enforceMandatoryWarnings, "deprecated", LintCategory.DEPRECATION); uncheckedHandler = new MandatoryWarningHandler(log, verboseUnchecked, enforceMandatoryWarnings, "unchecked", LintCategory.UNCHECKED); - unsafeVarargsHandler = new MandatoryWarningHandler(log, verboseVarargs, - enforceMandatoryWarnings, "varargs", LintCategory.VARARGS); sunApiHandler = new MandatoryWarningHandler(log, verboseSunApi, enforceMandatoryWarnings, "sunapi", null); + + deferredLintHandler = DeferredLintHandler.immediateHandler; } /** Switch: generics enabled? @@ -166,14 +167,14 @@ */ private MandatoryWarningHandler uncheckedHandler; - /** A handler for messages about unchecked or unsafe vararg method decl. - */ - private MandatoryWarningHandler unsafeVarargsHandler; - /** A handler for messages about using proprietary API. */ private MandatoryWarningHandler sunApiHandler; + /** A handler for deferred lint warnings. + */ + private DeferredLintHandler deferredLintHandler; + /* ************************************************************************* * Errors and Warnings **************************************************************************/ @@ -184,6 +185,12 @@ return prev; } + DeferredLintHandler setDeferredLintHandler(DeferredLintHandler newDeferredLintHandler) { + DeferredLintHandler prev = deferredLintHandler; + deferredLintHandler = newDeferredLintHandler; + return prev; + } + MethodSymbol setMethod(MethodSymbol newMethod) { MethodSymbol prev = method; method = newMethod; @@ -506,43 +513,18 @@ * @param a The type that should be bounded by bs. * @param bs The bound. */ - private void checkExtends(DiagnosticPosition pos, Type a, TypeVar bs) { + private boolean checkExtends(Type a, TypeVar bs) { if (a.isUnbound()) { - return; + return true; } else if (a.tag != WILDCARD) { a = types.upperBound(a); - for (List<Type> l = types.getBounds(bs); l.nonEmpty(); l = l.tail) { - if (!types.isSubtype(a, l.head)) { - log.error(pos, "not.within.bounds", a); - return; - } - } + return types.isSubtype(a, bs.bound); } else if (a.isExtendsBound()) { - if (!types.isCastable(bs.getUpperBound(), types.upperBound(a), Warner.noWarnings)) - log.error(pos, "not.within.bounds", a); + return types.isCastable(bs.getUpperBound(), types.upperBound(a), Warner.noWarnings); } else if (a.isSuperBound()) { - if (types.notSoftSubtype(types.lowerBound(a), bs.getUpperBound())) - log.error(pos, "not.within.bounds", a); + return !types.notSoftSubtype(types.lowerBound(a), bs.getUpperBound()); } - } - - /** Check that a type is within some bounds. - * - * Used in TypeApply to verify that, e.g., X in V<X> is a valid - * type argument. - * @param pos Position to be used for error reporting. - * @param a The type that should be bounded by bs. - * @param bs The bound. - */ - private void checkCapture(JCTypeApply tree) { - List<JCExpression> args = tree.getTypeArguments(); - for (Type arg : types.capture(tree.type).getTypeArguments()) { - if (arg.tag == TYPEVAR && arg.getUpperBound().isErroneous()) { - log.error(args.head.pos, "not.within.bounds", args.head.type); - break; - } - args = args.tail; - } + return true; } /** Check that type is different from 'void'. @@ -775,6 +757,105 @@ } } + /** + * Check that type 't' is a valid instantiation of a generic class + * (see JLS 4.5) + * + * @param t class type to be checked + * @return true if 't' is well-formed + */ + public boolean checkValidGenericType(Type t) { + return firstIncompatibleTypeArg(t) == null; + } + //WHERE + private Type firstIncompatibleTypeArg(Type type) { + List<Type> formals = type.tsym.type.allparams(); + List<Type> actuals = type.allparams(); + List<Type> args = type.getTypeArguments(); + List<Type> forms = type.tsym.type.getTypeArguments(); + ListBuffer<Type> tvars_buf = new ListBuffer<Type>(); + + // For matching pairs of actual argument types `a' and + // formal type parameters with declared bound `b' ... + while (args.nonEmpty() && forms.nonEmpty()) { + // exact type arguments needs to know their + // bounds (for upper and lower bound + // calculations). So we create new TypeVars with + // bounds substed with actuals. + tvars_buf.append(types.substBound(((TypeVar)forms.head), + formals, + actuals)); + args = args.tail; + forms = forms.tail; + } + + args = type.getTypeArguments(); + List<Type> tvars_cap = types.substBounds(formals, + formals, + types.capture(type).allparams()); + while (args.nonEmpty() && tvars_cap.nonEmpty()) { + // Let the actual arguments know their bound + args.head.withTypeVar((TypeVar)tvars_cap.head); + args = args.tail; + tvars_cap = tvars_cap.tail; + } + + args = type.getTypeArguments(); + List<Type> tvars = tvars_buf.toList(); + + while (args.nonEmpty() && tvars.nonEmpty()) { + Type actual = types.subst(args.head, + type.tsym.type.getTypeArguments(), + tvars_buf.toList()); + if (!isTypeArgErroneous(actual) && + !tvars.head.getUpperBound().isErroneous() && + !checkExtends(actual, (TypeVar)tvars.head)) { + return args.head; + } + args = args.tail; + tvars = tvars.tail; + } + + args = type.getTypeArguments(); + tvars = tvars_buf.toList(); + + for (Type arg : types.capture(type).getTypeArguments()) { + if (arg.tag == TYPEVAR && + arg.getUpperBound().isErroneous() && + !tvars.head.getUpperBound().isErroneous() && + !isTypeArgErroneous(args.head)) { + return args.head; + } + tvars = tvars.tail; + args = args.tail; + } + + return null; + } + //where + boolean isTypeArgErroneous(Type t) { + return isTypeArgErroneous.visit(t); + } + + Types.UnaryVisitor<Boolean> isTypeArgErroneous = new Types.UnaryVisitor<Boolean>() { + public Boolean visitType(Type t, Void s) { + return t.isErroneous(); + } + @Override + public Boolean visitTypeVar(TypeVar t, Void s) { + return visit(t.getUpperBound()); + } + @Override + public Boolean visitCapturedType(CapturedType t, Void s) { + return visit(t.getUpperBound()) || + visit(t.getLowerBound()); + } + @Override + public Boolean visitWildcardType(WildcardType t, Void s) { + return visit(t.type); + } + }; + /** Check that given modifiers are legal for given symbol and * return modifiers together with any implicit modififiers for that symbol. * Warning: we can't use flags() here since this method @@ -987,11 +1068,20 @@ @Override public void visitTypeApply(JCTypeApply tree) { if (tree.type.tag == CLASS) { - List<Type> formals = tree.type.tsym.type.allparams(); - List<Type> actuals = tree.type.allparams(); List<JCExpression> args = tree.arguments; List<Type> forms = tree.type.tsym.type.getTypeArguments(); - ListBuffer<Type> tvars_buf = new ListBuffer<Type>(); + + Type incompatibleArg = firstIncompatibleTypeArg(tree.type); + if (incompatibleArg != null) { + for (JCTree arg : tree.arguments) { + if (arg.type == incompatibleArg) { + log.error(arg, "not.within.bounds", incompatibleArg, forms.head); + } + forms = forms.tail; + } + } + + forms = tree.type.tsym.type.getTypeArguments(); boolean is_java_lang_Class = tree.type.tsym.flatName() == names.java_lang_Class; @@ -1001,46 +1091,10 @@ validateTree(args.head, !(isOuter && is_java_lang_Class), false); - - // exact type arguments needs to know their - // bounds (for upper and lower bound - // calculations). So we create new TypeVars with - // bounds substed with actuals. - tvars_buf.append(types.substBound(((TypeVar)forms.head), - formals, - actuals)); - args = args.tail; forms = forms.tail; } - args = tree.arguments; - List<Type> tvars_cap = types.substBounds(formals, - formals, - types.capture(tree.type).allparams()); - while (args.nonEmpty() && tvars_cap.nonEmpty()) { - // Let the actual arguments know their bound - args.head.type.withTypeVar((TypeVar)tvars_cap.head); - args = args.tail; - tvars_cap = tvars_cap.tail; - } - - args = tree.arguments; - List<Type> tvars = tvars_buf.toList(); - - while (args.nonEmpty() && tvars.nonEmpty()) { - Type actual = types.subst(args.head.type, - tree.type.tsym.type.getTypeArguments(), - tvars_buf.toList()); - checkExtends(args.head.pos(), - actual, - (TypeVar)tvars.head); - args = args.tail; - tvars = tvars.tail; - } - - checkCapture(tree); - // Check that this type is either fully parameterized, or // not parameterized at all. if (tree.type.getEnclosingType().isRaw()) @@ -1073,6 +1127,7 @@ log.error(tree.pos(), "improperly.formed.type.param.missing"); } } + public void visitSelectInternal(JCFieldAccess tree) { if (tree.type.tsym.isStatic() && tree.selected.type.isParameterized()) { @@ -1086,11 +1141,6 @@ } } - @Override - public void visitAnnotatedType(JCAnnotatedType tree) { - tree.underlyingType.accept(this); - } - /** Default visitor method: do nothing. */ @Override @@ -1447,11 +1497,8 @@ } // Warn if a deprecated method overridden by a non-deprecated one. - if ((other.flags() & DEPRECATED) != 0 - && (m.flags() & DEPRECATED) == 0 - && m.outermostClass() != other.outermostClass() - && !isDeprecatedOverrideIgnorable(other, origin)) { - warnDeprecated(TreeInfo.diagnosticPositionFor(m, tree), other); + if (!isDeprecatedOverrideIgnorable(other, origin)) { + checkDeprecated(TreeInfo.diagnosticPositionFor(m, tree), m, other); } } // where @@ -1632,7 +1679,7 @@ "(" + types.memberType(t2, s2).getParameterTypes() + ")"); return s2; } - } else if (!checkNameClash((ClassSymbol)site.tsym, s1, s2)) { + } else if (checkNameClash((ClassSymbol)site.tsym, s1, s2)) { log.error(pos, "name.clash.same.erasure.no.override", s1, s1.location(), @@ -1714,18 +1761,10 @@ } private boolean checkNameClash(ClassSymbol origin, Symbol s1, Symbol s2) { - if (s1.kind == MTH && - s1.isInheritedIn(origin, types) && - (s1.flags() & SYNTHETIC) == 0 && - !s2.isConstructor()) { - Type er1 = s2.erasure(types); - Type er2 = s1.erasure(types); - if (types.isSameTypes(er1.getParameterTypes(), - er2.getParameterTypes())) { - return false; - } - } - return true; + ClashFilter cf = new ClashFilter(origin.type); + return (cf.accepts(s1) && + cf.accepts(s2) && + types.hasSameArgs(s1.erasure(types), s2.erasure(types))); } @@ -2064,52 +2103,82 @@ * @param site The class whose methods are checked. * @param sym The method symbol to be checked. */ - void checkClashes(DiagnosticPosition pos, Type site, Symbol sym) { - List<Type> supertypes = types.closure(site); - for (List<Type> l = supertypes; l.nonEmpty(); l = l.tail) { - for (List<Type> m = supertypes; m.nonEmpty(); m = m.tail) { - checkClashes(pos, l.head, m.head, site, sym); + void checkOverrideClashes(DiagnosticPosition pos, Type site, MethodSymbol sym) { + ClashFilter cf = new ClashFilter(site); + //for each method m1 that is a member of 'site'... + for (Scope.Entry e1 = types.membersClosure(site).lookup(sym.name, cf) ; + e1.scope != null ; e1 = e1.next(cf)) { + //...find another method m2 that is overridden (directly or indirectly) + //by method 'sym' in 'site' + for (Scope.Entry e2 = types.membersClosure(site).lookup(sym.name, cf) ; + e2.scope != null ; e2 = e2.next(cf)) { + if (e1.sym == e2.sym || !sym.overrides(e2.sym, site.tsym, types, false)) continue; + //if (i) the signature of 'sym' is not a subsignature of m1 (seen as + //a member of 'site') and (ii) m1 has the same erasure as m2, issue an error + if (!types.isSubSignature(sym.type, types.memberType(site, e1.sym)) && + types.hasSameArgs(e1.sym.erasure(types), e2.sym.erasure(types))) { + sym.flags_field |= CLASH; + String key = e2.sym == sym ? + "name.clash.same.erasure.no.override" : + "name.clash.same.erasure.no.override.1"; + log.error(pos, + key, + sym, sym.location(), + e1.sym, e1.sym.location(), + e2.sym, e2.sym.location()); + return; + } } } } - /** Reports an error whenever 'sym' seen as a member of type 't1' clashes with - * some unrelated method defined in 't2'. + /** Check that all static methods accessible from 'site' are + * mutually compatible (JLS 8.4.8). + * + * @param pos Position to be used for error reporting. + * @param site The class whose methods are checked. + * @param sym The method symbol to be checked. */ - private void checkClashes(DiagnosticPosition pos, Type t1, Type t2, Type site, Symbol s1) { + void checkHideClashes(DiagnosticPosition pos, Type site, MethodSymbol sym) { ClashFilter cf = new ClashFilter(site); - s1 = ((MethodSymbol)s1).implementedIn(t1.tsym, types); - if (s1 == null) return; - Type st1 = types.memberType(site, s1); - for (Scope.Entry e2 = t2.tsym.members().lookup(s1.name, cf); e2.scope != null; e2 = e2.next(cf)) { - Symbol s2 = e2.sym; - if (s1 == s2) continue; - Type st2 = types.memberType(site, s2); - if (!types.overrideEquivalent(st1, st2) && - !checkNameClash((ClassSymbol)site.tsym, s1, s2)) { + //for each method m1 that is a member of 'site'... + for (Scope.Entry e = types.membersClosure(site).lookup(sym.name, cf) ; + e.scope != null ; e = e.next(cf)) { + //if (i) the signature of 'sym' is not a subsignature of m1 (seen as + //a member of 'site') and (ii) 'sym' has the same erasure as m1, issue an error + if (!types.isSubSignature(sym.type, types.memberType(site, e.sym)) && + types.hasSameArgs(e.sym.erasure(types), sym.erasure(types))) { log.error(pos, - "name.clash.same.erasure.no.override", - s1, s1.location(), - s2, s2.location()); - } - } - } - //where - private class ClashFilter implements Filter<Symbol> { + "name.clash.same.erasure.no.hide", + sym, sym.location(), + e.sym, e.sym.location()); + return; + } + } + } - Type site; + //where + private class ClashFilter implements Filter<Symbol> { + + Type site; - ClashFilter(Type site) { - this.site = site; - } + ClashFilter(Type site) { + this.site = site; + } + + boolean shouldSkip(Symbol s) { + return (s.flags() & CLASH) != 0 && + s.owner == site.tsym; + } - public boolean accepts(Symbol s) { - return s.kind == MTH && - (s.flags() & SYNTHETIC) == 0 && - s.isInheritedIn(site.tsym, types) && - !s.isConstructor(); - } - } + public boolean accepts(Symbol s) { + return s.kind == MTH && + (s.flags() & SYNTHETIC) == 0 && + !shouldSkip(s) && + s.isInheritedIn(site.tsym, types) && + !s.isConstructor(); + } + } /** Report a conflict between a user symbol and a synthetic symbol. */ @@ -2239,14 +2308,6 @@ validateAnnotation(a, s); } - /** Check the type annotations - */ - public void validateTypeAnnotations(List<JCTypeAnnotation> annotations, boolean isTypeParameter) { - if (skipAnnotations) return; - for (JCTypeAnnotation a : annotations) - validateTypeAnnotation(a, isTypeParameter); - } - /** Check an annotation of a symbol. */ public void validateAnnotation(JCAnnotation a, Symbol s) { @@ -2261,15 +2322,6 @@ } } - public void validateTypeAnnotation(JCTypeAnnotation a, boolean isTypeParameter) { - if (a.type == null) - throw new AssertionError("annotation tree hasn't been attributed yet: " + a); - validateAnnotationTree(a); - - if (!isTypeAnnotation(a, isTypeParameter)) - log.error(a.pos(), "annotation.type.not.applicable"); - } - /** Is s a method symbol that overrides a method in a superclass? */ boolean isOverrider(Symbol s) { if (s.kind != MTH || s.isStatic()) @@ -2288,25 +2340,6 @@ return false; } - /** Is the annotation applicable to type annotations */ - boolean isTypeAnnotation(JCTypeAnnotation a, boolean isTypeParameter) { - Attribute.Compound atTarget = - a.annotationType.type.tsym.attribute(syms.annotationTargetType.tsym); - if (atTarget == null) return true; - Attribute atValue = atTarget.member(names.value); - if (!(atValue instanceof Attribute.Array)) return true; // error recovery - Attribute.Array arr = (Attribute.Array) atValue; - for (Attribute app : arr.values) { - if (!(app instanceof Attribute.Enum)) return true; // recovery - Attribute.Enum e = (Attribute.Enum) app; - if (!isTypeParameter && e.value.name == names.TYPE_USE) - return true; - else if (isTypeParameter && e.value.name == names.TYPE_PARAMETER) - return true; - } - return false; - } - /** Is the annotation applicable to the symbol? */ boolean annotationApplicable(JCAnnotation a, Symbol s) { Attribute.Compound atTarget = @@ -2430,6 +2463,32 @@ } } + void checkDeprecated(final DiagnosticPosition pos, final Symbol other, final Symbol s) { + if ((s.flags() & DEPRECATED) != 0 && + (other.flags() & DEPRECATED) == 0 && + s.outermostClass() != other.outermostClass()) { + deferredLintHandler.report(new DeferredLintHandler.LintLogger() { + @Override + public void report() { + warnDeprecated(pos, s); + } + }); + }; + } + + void checkSunAPI(final DiagnosticPosition pos, final Symbol s) { + if ((s.flags() & PROPRIETARY) != 0) { + deferredLintHandler.report(new DeferredLintHandler.LintLogger() { + public void report() { + if (enableSunApiLintControl) + warnSunApi(pos, "sun.proprietary", s); + else + log.strictWarning(pos, "sun.proprietary", s); + } + }); + } + } + /* ************************************************************************* * Check for recursive annotation elements. **************************************************************************/ @@ -2438,7 +2497,7 @@ */ void checkNonCyclicElements(JCClassDecl tree) { if ((tree.sym.flags_field & ANNOTATION) == 0) return; - assert (tree.sym.flags_field & LOCKED) == 0; + Assert.check((tree.sym.flags_field & LOCKED) == 0); try { tree.sym.flags_field |= LOCKED; for (JCTree def : tree.defs) { @@ -2555,9 +2614,9 @@ Type right) { if (operator.opcode == ByteCodes.error) { log.error(pos, - "operator.cant.be.applied", + "operator.cant.be.applied.1", treeinfo.operatorName(tag), - List.of(left, right)); + left, right); } return operator.opcode; } @@ -2601,21 +2660,35 @@ if (sym.owner.name == names.any) return false; for (Scope.Entry e = s.lookup(sym.name); e.scope == s; e = e.next()) { if (sym != e.sym && - sym.kind == e.sym.kind && - sym.name != names.error && - (sym.kind != MTH || types.hasSameArgs(types.erasure(sym.type), types.erasure(e.sym.type)))) { - if ((sym.flags() & VARARGS) != (e.sym.flags() & VARARGS)) + (e.sym.flags() & CLASH) == 0 && + sym.kind == e.sym.kind && + sym.name != names.error && + (sym.kind != MTH || types.hasSameArgs(types.erasure(sym.type), types.erasure(e.sym.type)))) { + if ((sym.flags() & VARARGS) != (e.sym.flags() & VARARGS)) { varargsDuplicateError(pos, sym, e.sym); - else if (sym.kind == MTH && !types.overrideEquivalent(sym.type, e.sym.type)) + return true; + } else if (sym.kind == MTH && !hasSameSignature(sym.type, e.sym.type)) { duplicateErasureError(pos, sym, e.sym); - else + sym.flags_field |= CLASH; + return true; + } else { duplicateError(pos, e.sym); - return false; + return false; + } } } return true; } //where + boolean hasSameSignature(Type mt1, Type mt2) { + if (mt1.tag == FORALL && mt2.tag == FORALL) { + ForAll fa1 = (ForAll)mt1; + ForAll fa2 = (ForAll)mt2; + mt2 = types.subst(fa2, fa2.tvars, fa1.tvars); + } + return types.hasSameArgs(mt1.asMethodType(), mt2.asMethodType()); + } + /** Report duplicate declaration error. */ void duplicateErasureError(DiagnosticPosition pos, Symbol sym1, Symbol sym2) {
--- a/src/share/classes/com/sun/tools/javac/comp/Enter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/comp/Enter.java Sat Apr 09 00:45:10 2011 +0100 @@ -95,7 +95,6 @@ Log log; Symtab syms; - Scope.ScopeCounter scopeCounter; Check chk; TreeMaker make; ClassReader reader; @@ -123,7 +122,6 @@ reader = ClassReader.instance(context); make = TreeMaker.instance(context); syms = Symtab.instance(context); - scopeCounter = Scope.ScopeCounter.instance(context); chk = Check.instance(context); memberEnter = MemberEnter.instance(context); types = Types.instance(context); @@ -192,7 +190,7 @@ */ public Env<AttrContext> classEnv(JCClassDecl tree, Env<AttrContext> env) { Env<AttrContext> localEnv = - env.dup(tree, env.info.dup(new Scope.ClassScope(tree.sym, scopeCounter))); + env.dup(tree, env.info.dup(new Scope(tree.sym))); localEnv.enclClass = tree; localEnv.outer = env; localEnv.info.isSelfCall = false; @@ -328,7 +326,7 @@ c.flatname = names.fromString(tree.packge + "." + name); c.sourcefile = tree.sourcefile; c.completer = null; - c.members_field = new Scope.ClassScope(c, scopeCounter); + c.members_field = new Scope(c); tree.packge.package_info = c; } classEnter(tree.defs, topEnv); @@ -396,7 +394,7 @@ c.completer = memberEnter; c.flags_field = chk.checkFlags(tree.pos(), tree.mods.flags, c, tree); c.sourcefile = env.toplevel.sourcefile; - c.members_field = new Scope.ClassScope(c, scopeCounter); + c.members_field = new Scope(c); ClassType ct = (ClassType)c.type; if (owner.kind != PCK && (c.flags_field & STATIC) == 0) {
--- a/src/share/classes/com/sun/tools/javac/comp/Flow.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/comp/Flow.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -37,7 +37,6 @@ import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition; import com.sun.tools.javac.code.Symbol.*; -import com.sun.tools.javac.comp.Resolve; import com.sun.tools.javac.tree.JCTree.*; import static com.sun.tools.javac.code.Flags.*; @@ -709,7 +708,7 @@ lint = lint.augment(tree.sym.attributes_field); - assert pendingExits.isEmpty(); + Assert.check(pendingExits.isEmpty()); try { boolean isInitialConstructor = @@ -747,7 +746,7 @@ PendingExit exit = exits.head; exits = exits.tail; if (exit.thrown == null) { - assert exit.tree.getTag() == JCTree.RETURN; + Assert.check(exit.tree.getTag() == JCTree.RETURN); if (isInitialConstructor) { inits = exit.inits; for (int i = firstadr; i < nextadr; i++) @@ -1350,11 +1349,6 @@ } } - public void visitAnnotatedType(JCAnnotatedType tree) { - // annotations don't get scanned - tree.underlyingType.accept(this); - } - public void visitIdent(JCIdent tree) { if (tree.sym.kind == VAR) { checkInit(tree.pos(), (VarSymbol)tree.sym); @@ -1373,7 +1367,6 @@ if (!tree.type.isErroneous() && lint.isEnabled(Lint.LintCategory.CAST) && types.isSameType(tree.expr.type, tree.clazz.type) - && !(ignoreAnnotatedCasts && containsTypeAnnotation(tree.clazz)) && !is292targetTypeCast(tree)) { log.warning(Lint.LintCategory.CAST, tree.pos(), "redundant.cast", tree.expr.type); @@ -1382,8 +1375,9 @@ //where private boolean is292targetTypeCast(JCTypeCast tree) { boolean is292targetTypeCast = false; - if (tree.expr.getTag() == JCTree.APPLY) { - JCMethodInvocation apply = (JCMethodInvocation)tree.expr; + JCExpression expr = TreeInfo.skipParens(tree.expr); + if (expr.getTag() == JCTree.APPLY) { + JCMethodInvocation apply = (JCMethodInvocation)expr; Symbol sym = TreeInfo.symbol(apply.meth); is292targetTypeCast = sym != null && sym.kind == MTH && @@ -1397,23 +1391,6 @@ } /************************************************************************** - * utility methods for ignoring type-annotated casts lint checking - *************************************************************************/ - private static final boolean ignoreAnnotatedCasts = true; - private static class AnnotationFinder extends TreeScanner { - public boolean foundTypeAnno = false; - public void visitAnnotation(JCAnnotation tree) { - foundTypeAnno = foundTypeAnno || (tree instanceof JCTypeAnnotation); - } - } - - private boolean containsTypeAnnotation(JCTree e) { - AnnotationFinder finder = new AnnotationFinder(); - finder.scan(e); - return finder.foundTypeAnno; - } - -/************************************************************************** * main method *************************************************************************/
--- a/src/share/classes/com/sun/tools/javac/comp/Infer.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/comp/Infer.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -27,6 +27,7 @@ import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.tree.JCTree.JCTypeCast; +import com.sun.tools.javac.tree.TreeInfo; import com.sun.tools.javac.util.*; import com.sun.tools.javac.util.List; import com.sun.tools.javac.code.*; @@ -204,19 +205,20 @@ * Throw a NoInstanceException if this not possible. */ void maximizeInst(UndetVar that, Warner warn) throws NoInstanceException { + List<Type> hibounds = Type.filter(that.hibounds, errorFilter); if (that.inst == null) { - if (that.hibounds.isEmpty()) + if (hibounds.isEmpty()) that.inst = syms.objectType; - else if (that.hibounds.tail.isEmpty()) - that.inst = that.hibounds.head; + else if (hibounds.tail.isEmpty()) + that.inst = hibounds.head; else - that.inst = types.glb(that.hibounds); + that.inst = types.glb(hibounds); } if (that.inst == null || that.inst.isErroneous()) throw ambiguousNoInstanceException .setMessage("no.unique.maximal.instance.exists", - that.qtype, that.hibounds); + that.qtype, hibounds); } //where private boolean isSubClass(Type t, final List<Type> ts) { @@ -240,37 +242,46 @@ return true; } + private Filter<Type> errorFilter = new Filter<Type>() { + @Override + public boolean accepts(Type t) { + return !t.isErroneous(); + } + }; + /** Instantiate undetermined type variable to the lub of all its lower bounds. * Throw a NoInstanceException if this not possible. */ void minimizeInst(UndetVar that, Warner warn) throws NoInstanceException { + List<Type> lobounds = Type.filter(that.lobounds, errorFilter); if (that.inst == null) { - if (that.lobounds.isEmpty()) + if (lobounds.isEmpty()) that.inst = syms.botType; - else if (that.lobounds.tail.isEmpty()) - that.inst = that.lobounds.head.isPrimitive() ? syms.errType : that.lobounds.head; + else if (lobounds.tail.isEmpty()) + that.inst = lobounds.head.isPrimitive() ? syms.errType : lobounds.head; else { - that.inst = types.lub(that.lobounds); + that.inst = types.lub(lobounds); } if (that.inst == null || that.inst.tag == ERROR) throw ambiguousNoInstanceException .setMessage("no.unique.minimal.instance.exists", - that.qtype, that.lobounds); + that.qtype, lobounds); // VGJ: sort of inlined maximizeInst() below. Adding // bounds can cause lobounds that are above hibounds. - if (that.hibounds.isEmpty()) + List<Type> hibounds = Type.filter(that.hibounds, errorFilter); + if (hibounds.isEmpty()) return; Type hb = null; - if (that.hibounds.tail.isEmpty()) - hb = that.hibounds.head; - else for (List<Type> bs = that.hibounds; + if (hibounds.tail.isEmpty()) + hb = hibounds.head; + else for (List<Type> bs = hibounds; bs.nonEmpty() && hb == null; bs = bs.tail) { - if (isSubClass(bs.head, that.hibounds)) + if (isSubClass(bs.head, hibounds)) hb = types.fromUnknownFun.apply(bs.head); } if (hb == null || - !types.isSubtypeUnchecked(hb, that.hibounds, warn) || + !types.isSubtypeUnchecked(hb, hibounds, warn) || !types.isSubtypeUnchecked(that.inst, hb, warn)) throw ambiguousNoInstanceException; } @@ -396,7 +407,9 @@ // for varargs arguments as well if (useVarargs) { - Type elemType = types.elemtype(varargsFormal); + //note: if applicability check is triggered by most specific test, + //the last argument of a varargs is _not_ an array type (see JLS 15.12.2.5) + Type elemType = types.elemtypeOrType(varargsFormal); Type elemUndet = types.subst(elemType, tvars, undetvars); while (actuals.nonEmpty()) { Type actual = actuals.head.baseType(); @@ -472,11 +485,8 @@ @Override public Type inst(List<Type> inferred, Types types) throws NoInstanceException { List<Type> formals = types.subst(mt2.argtypes, tvars, inferred); - if (!rs.argumentsAcceptable(capturedArgs, formals, - allowBoxing, useVarargs, warn)) { - // inferred method is not applicable - throw invalidInstanceException.setMessage("inferred.do.not.conform.to.params", formals, argtypes); - } + // check that actuals conform to inferred formals + checkArgumentsAcceptable(env, capturedArgs, formals, allowBoxing, useVarargs, warn); // check that inferred bounds conform to their bounds checkWithinBounds(all_tvars, types.subst(inferredTypes, tvars, inferred), warn); @@ -487,17 +497,27 @@ }}; return mt2; } - else if (!rs.argumentsAcceptable(capturedArgs, mt.getParameterTypes(), allowBoxing, useVarargs, warn)) { - // inferred method is not applicable - throw invalidInstanceException.setMessage("inferred.do.not.conform.to.params", mt.getParameterTypes(), argtypes); - } else { + // check that actuals conform to inferred formals + checkArgumentsAcceptable(env, capturedArgs, mt.getParameterTypes(), allowBoxing, useVarargs, warn); // return instantiated version of method type return mt; } } //where + private void checkArgumentsAcceptable(Env<AttrContext> env, List<Type> actuals, List<Type> formals, + boolean allowBoxing, boolean useVarargs, Warner warn) { + try { + rs.checkRawArgumentsAcceptable(env, actuals, formals, + allowBoxing, useVarargs, warn); + } + catch (Resolve.InapplicableMethodException ex) { + // inferred method is not applicable + throw invalidInstanceException.setMessage(ex.getDiagnostic()); + } + } + /** Try to instantiate argument type `that' to given type `to'. * If this fails, try to insantiate `that' to `to' where * every occurrence of a type variable in `tvars' is replaced @@ -527,7 +547,8 @@ for (List<Type> tvs = tvars, args = arguments; tvs.nonEmpty(); tvs = tvs.tail, args = args.tail) { - if (args.head instanceof UndetVar) continue; + if (args.head instanceof UndetVar || + tvars.head.getUpperBound().isErroneous()) continue; List<Type> bounds = types.subst(types.getBounds((TypeVar)tvs.head), tvars, arguments); if (!types.isSubtypeUnchecked(args.head, bounds, warn)) throw invalidInstanceException @@ -538,43 +559,39 @@ /** * Compute a synthetic method type corresponding to the requested polymorphic - * method signature. If no explicit return type is supplied, a provisional - * return type is computed (just Object in case of non-transitional 292) + * method signature. The target return type is computed from the immediately + * enclosing scope surrounding the polymorphic-signature call. */ Type instantiatePolymorphicSignatureInstance(Env<AttrContext> env, Type site, Name name, MethodSymbol spMethod, // sig. poly. method or null if none - List<Type> argtypes, - List<Type> typeargtypes) { + List<Type> argtypes) { final Type restype; - if (rs.allowTransitionalJSR292 && typeargtypes.nonEmpty()) { - restype = typeargtypes.head; - } else { - //The return type for a polymorphic signature call is computed from - //the enclosing tree E, as follows: if E is a cast, then use the - //target type of the cast expression as a return type; if E is an - //expression statement, the return type is 'void' - otherwise the - //return type is simply 'Object'. A correctness check ensures that - //env.next refers to the lexically enclosing environment in which - //the polymorphic signature call environment is nested. + + //The return type for a polymorphic signature call is computed from + //the enclosing tree E, as follows: if E is a cast, then use the + //target type of the cast expression as a return type; if E is an + //expression statement, the return type is 'void' - otherwise the + //return type is simply 'Object'. A correctness check ensures that + //env.next refers to the lexically enclosing environment in which + //the polymorphic signature call environment is nested. - switch (env.next.tree.getTag()) { - case JCTree.TYPECAST: - JCTypeCast castTree = (JCTypeCast)env.next.tree; - restype = (castTree.expr == env.tree) ? - castTree.clazz.type : - syms.objectType; - break; - case JCTree.EXEC: - JCTree.JCExpressionStatement execTree = - (JCTree.JCExpressionStatement)env.next.tree; - restype = (execTree.expr == env.tree) ? - syms.voidType : - syms.objectType; - break; - default: - restype = syms.objectType; - } + switch (env.next.tree.getTag()) { + case JCTree.TYPECAST: + JCTypeCast castTree = (JCTypeCast)env.next.tree; + restype = (TreeInfo.skipParens(castTree.expr) == env.tree) ? + castTree.clazz.type : + syms.objectType; + break; + case JCTree.EXEC: + JCTree.JCExpressionStatement execTree = + (JCTree.JCExpressionStatement)env.next.tree; + restype = (TreeInfo.skipParens(execTree.expr) == env.tree) ? + syms.voidType : + syms.objectType; + break; + default: + restype = syms.objectType; } List<Type> paramtypes = Type.map(argtypes, implicitArgType);
--- a/src/share/classes/com/sun/tools/javac/comp/Lower.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/comp/Lower.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -68,7 +68,6 @@ private Names names; private Log log; private Symtab syms; - private Scope.ScopeCounter scopeCounter; private Resolve rs; private Check chk; private Attr attr; @@ -91,7 +90,6 @@ names = Names.instance(context); log = Log.instance(context); syms = Symtab.instance(context); - scopeCounter = Scope.ScopeCounter.instance(context); rs = Resolve.instance(context); chk = Check.instance(context); attr = Attr.instance(context); @@ -571,7 +569,7 @@ c.flatname = chk.localClassName(c); c.sourcefile = owner.sourcefile; c.completer = null; - c.members_field = new Scope.ClassScope(c, scopeCounter); + c.members_field = new Scope(c); c.flags_field = flags; ClassType ctype = (ClassType) c.type; ctype.supertype_field = syms.objectType; @@ -1057,7 +1055,7 @@ } // Otherwise replace the variable by its proxy. sym = proxies.lookup(proxyName(sym.name)).sym; - assert sym != null && (sym.flags_field & FINAL) != 0; + Assert.check(sym != null && (sym.flags_field & FINAL) != 0); tree = make.at(tree.pos).Ident(sym); } JCExpression base = (tree.getTag() == JCTree.SELECT) ? ((JCFieldAccess) tree).selected : null; @@ -1208,7 +1206,7 @@ */ void makeAccessible(Symbol sym) { JCClassDecl cdef = classDef(sym.owner.enclClass()); - assert cdef != null : "class def not found: " + sym + " in " + sym.owner; + if (cdef == null) Assert.error("class def not found: " + sym + " in " + sym.owner); if (sym.name == names.init) { cdef.defs = cdef.defs.prepend( accessConstructorDef(cdef.pos, sym, accessConstrs.get(sym))); @@ -1458,7 +1456,7 @@ expr = make.Ident(var.sym).setType(resource.type); stats.add(var); } else { - assert resource instanceof JCExpression; + Assert.check(resource instanceof JCExpression); VarSymbol syntheticTwrVar = new VarSymbol(SYNTHETIC | FINAL, makeSyntheticName(names.fromString("twrVar" + @@ -1552,7 +1550,7 @@ List<VarSymbol> ots = outerThisStack; if (ots.isEmpty()) { log.error(pos, "no.encl.instance.of.type.in.scope", c); - assert false; + Assert.error(); return makeNull(); } VarSymbol ot = ots.head; @@ -1565,14 +1563,14 @@ log.error(pos, "no.encl.instance.of.type.in.scope", c); - assert false; // should have been caught in Attr + Assert.error(); // should have been caught in Attr return tree; } ot = ots.head; } while (ot.owner != otc); if (otc.owner.kind != PCK && !otc.hasOuterInstance()) { chk.earlyRefError(pos, c); - assert false; // should have been caught in Attr + Assert.error(); // should have been caught in Attr return makeNull(); } tree = access(make.at(pos).Select(tree, ot)); @@ -1610,7 +1608,7 @@ List<VarSymbol> ots = outerThisStack; if (ots.isEmpty()) { log.error(pos, "no.encl.instance.of.type.in.scope", c); - assert false; + Assert.error(); return makeNull(); } VarSymbol ot = ots.head; @@ -1623,7 +1621,7 @@ log.error(pos, "no.encl.instance.of.type.in.scope", c); - assert false; + Assert.error(); return tree; } ot = ots.head; @@ -1640,9 +1638,9 @@ JCStatement initField(int pos, Name name) { Scope.Entry e = proxies.lookup(name); Symbol rhs = e.sym; - assert rhs.owner.kind == MTH; + Assert.check(rhs.owner.kind == MTH); Symbol lhs = e.next().sym; - assert rhs.owner.owner == lhs.owner; + Assert.check(rhs.owner.owner == lhs.owner); make.at(pos); return make.Exec( @@ -1655,9 +1653,9 @@ */ JCStatement initOuterThis(int pos) { VarSymbol rhs = outerThisStack.head; - assert rhs.owner.kind == MTH; + Assert.check(rhs.owner.kind == MTH); VarSymbol lhs = outerThisStack.tail.head; - assert rhs.owner.owner == lhs.owner; + Assert.check(rhs.owner.owner == lhs.owner); make.at(pos); return make.Exec( @@ -1856,7 +1854,7 @@ // where /** Create an attributed tree of the form left.name(). */ private JCMethodInvocation makeCall(JCExpression left, Name name, List<JCExpression> args) { - assert left.type != null; + Assert.checkNonNull(left.type); Symbol funcsym = lookupMethod(make_pos, name, left.type, TreeInfo.types(args)); return make.App(make.Select(left, funcsym), args); @@ -2399,7 +2397,7 @@ names.valueOf, tree.sym.type, List.of(syms.stringType)); - assert (valueOfSym.flags() & STATIC) != 0; + Assert.check((valueOfSym.flags() & STATIC) != 0); VarSymbol nameArgSym = valueOfSym.params.head; JCIdent nameVal = make.Ident(nameArgSym); JCStatement enum_ValueOf = @@ -2585,11 +2583,6 @@ result = tree; } - public void visitAnnotatedType(JCAnnotatedType tree) { - tree.underlyingType = translate(tree.underlyingType); - result = tree.underlyingType; - } - public void visitTypeCast(JCTypeCast tree) { tree.clazz = translate(tree.clazz); if (tree.type.isPrimitive() != tree.expr.type.isPrimitive()) @@ -3421,7 +3414,7 @@ if (expression != null) { // expression for a "default" case is null String labelExpr = (String) expression.type.constValue(); Integer mapping = caseLabelToPosition.put(labelExpr, casePosition); - assert mapping == null; + Assert.checkNull(mapping); int hashCode = labelExpr.hashCode(); Set<String> stringSet = hashToString.get(hashCode); @@ -3431,7 +3424,7 @@ hashToString.put(hashCode, stringSet); } else { boolean added = stringSet.add(labelExpr); - assert added; + Assert.check(added); } } casePosition++; @@ -3483,7 +3476,7 @@ for(Map.Entry<Integer, Set<String>> entry : hashToString.entrySet()) { int hashCode = entry.getKey(); Set<String> stringsWithHashCode = entry.getValue(); - assert stringsWithHashCode.size() >= 1; + Assert.check(stringsWithHashCode.size() >= 1); JCStatement elsepart = null; for(String caseLabel : stringsWithHashCode ) { @@ -3697,8 +3690,7 @@ cdef.type, List.<Type>nil()); - assert(ordinalSym != null); - assert(ordinalSym instanceof MethodSymbol); + Assert.check(ordinalSym instanceof MethodSymbol); JCStatement ret = make.Return(make.Ident(ordinalSymbol)); cdef.defs = cdef.defs.append(make.MethodDef((MethodSymbol)ordinalSym, @@ -3714,8 +3706,7 @@ cdef.type, List.<Type>nil()); - assert(nameSym != null); - assert(nameSym instanceof MethodSymbol); + Assert.check(nameSym instanceof MethodSymbol); JCStatement ret = make.Return(make.Ident(nameSymbol)); @@ -3766,8 +3757,7 @@ cdef.type, List.of(cdef.sym.type)); - assert(compareToSym != null); - assert(compareToSym instanceof MethodSymbol); + Assert.check(compareToSym instanceof MethodSymbol); JCMethodDecl compareToDecl = (JCMethodDecl) TreeInfo.declarationFor(compareToSym, cdef);
--- a/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -67,7 +67,6 @@ private final Check chk; private final Attr attr; private final Symtab syms; - private final Scope.ScopeCounter scopeCounter; private final TreeMaker make; private final ClassReader reader; private final Todo todo; @@ -75,9 +74,9 @@ private final Types types; private final JCDiagnostic.Factory diags; private final Target target; + private final DeferredLintHandler deferredLintHandler; private final boolean skipAnnotations; - private final boolean allowSimplifiedVarargs; public static MemberEnter instance(Context context) { MemberEnter instance = context.get(memberEnterKey); @@ -94,7 +93,6 @@ chk = Check.instance(context); attr = Attr.instance(context); syms = Symtab.instance(context); - scopeCounter = Scope.ScopeCounter.instance(context); make = TreeMaker.instance(context); reader = ClassReader.instance(context); todo = Todo.instance(context); @@ -102,10 +100,9 @@ types = Types.instance(context); diags = JCDiagnostic.Factory.instance(context); target = Target.instance(context); + deferredLintHandler = DeferredLintHandler.instance(context); Options options = Options.instance(context); skipAnnotations = options.isSet("skipAnnotations"); - Source source = Source.instance(context); - allowSimplifiedVarargs = source.allowSimplifiedVarargs(); } /** A queue for classes whose members still need to be entered into the @@ -571,18 +568,23 @@ tree.sym = m; Env<AttrContext> localEnv = methodEnv(tree, env); - // Compute the method type - m.type = signature(tree.typarams, tree.params, - tree.restype, tree.thrown, - localEnv); + DeferredLintHandler prevLintHandler = + chk.setDeferredLintHandler(deferredLintHandler.setPos(tree.pos())); + try { + // Compute the method type + m.type = signature(tree.typarams, tree.params, + tree.restype, tree.thrown, + localEnv); + } finally { + chk.setDeferredLintHandler(prevLintHandler); + } // Set m.params ListBuffer<VarSymbol> params = new ListBuffer<VarSymbol>(); JCVariableDecl lastParam = null; for (List<JCVariableDecl> l = tree.params; l.nonEmpty(); l = l.tail) { JCVariableDecl param = lastParam = l.head; - assert param.sym != null; - params.append(param.sym); + params.append(Assert.checkNonNull(param.sym)); } m.params = params.toList(); @@ -619,7 +621,14 @@ localEnv = env.dup(tree, env.info.dup()); localEnv.info.staticLevel++; } - attr.attribType(tree.vartype, localEnv); + DeferredLintHandler prevLintHandler = + chk.setDeferredLintHandler(deferredLintHandler.setPos(tree.pos())); + try { + attr.attribType(tree.vartype, localEnv); + } finally { + chk.setDeferredLintHandler(prevLintHandler); + } + if ((tree.mods.flags & VARARGS) != 0) { //if we are entering a varargs parameter, we need to replace its type //(a plain array type) with the more precise VarargsType --- we need @@ -638,7 +647,7 @@ if ((v.flags_field & FINAL) != 0 && tree.init.getTag() != JCTree.NEWCLASS) { Env<AttrContext> initEnv = getInitEnv(tree, env); initEnv.info.enclVar = v; - v.setLazyConstValue(initEnv(tree, initEnv), log, attr, tree.init); + v.setLazyConstValue(initEnv(tree, initEnv), attr, tree.init); } } if (chk.checkUnique(tree.pos(), v, enclScope)) { @@ -699,7 +708,7 @@ *********************************************************************/ Type attribImportType(JCTree tree, Env<AttrContext> env) { - assert completionEnabled; + Assert.check(completionEnabled); try { // To prevent deep recursion, suppress completion of some // types. @@ -725,7 +734,7 @@ return "annotate " + annotations + " onto " + s + " in " + s.owner; } public void enterAnnotation() { - assert s.kind == PCK || s.attributes_field == null; + Assert.check(s.kind == PCK || s.attributes_field == null); JavaFileObject prev = log.useSource(localEnv.toplevel.sourcefile); try { if (s.attributes_field != null && @@ -776,14 +785,15 @@ && s.owner.kind != MTH && types.isSameType(c.type, syms.deprecatedType)) s.flags_field |= Flags.DEPRECATED; - // Internally to java.dyn, a @PolymorphicSignature annotation + // Internally to java.lang.invoke, a @PolymorphicSignature annotation // acts like a classfile attribute. if (!c.type.isErroneous() && - types.isSameType(c.type, syms.polymorphicSignatureType)) { + (types.isSameType(c.type, syms.polymorphicSignatureType) || + types.isSameType(c.type, syms.transientPolymorphicSignatureType))) { if (!target.hasMethodHandles()) { // Somebody is compiling JDK7 source code to a JDK6 target. - // Make it a strict warning, since it is unlikely but important. - log.strictWarning(env.tree.pos(), + // Make it an error, since it is unlikely but important. + log.error(env.tree.pos(), "wrong.target.for.polymorphic.signature.definition", target.name); } @@ -836,7 +846,7 @@ // Suppress some (recursive) MemberEnter invocations if (!completionEnabled) { // Re-install same completer for next time around and return. - assert (sym.flags() & Flags.COMPOUND) == 0; + Assert.check((sym.flags() & Flags.COMPOUND) == 0); sym.completer = this; return; } @@ -928,10 +938,6 @@ if (hasDeprecatedAnnotation(tree.mods.annotations)) c.flags_field |= DEPRECATED; annotateLater(tree.mods.annotations, baseEnv, c); - // class type parameters use baseEnv but everything uses env - for (JCTypeParameter tp : tree.typarams) - tp.accept(new TypeAnnotate(baseEnv)); - tree.accept(new TypeAnnotate(env)); chk.checkNonCyclicDecl(tree); @@ -989,7 +995,7 @@ c.owner.kind == PCK && c.owner != syms.unnamedPackage && reader.packageExists(c.fullname)) { - log.error(tree.pos, "clash.with.pkg.of.same.name", c); + log.error(tree.pos, "clash.with.pkg.of.same.name", Kinds.kindName(sym), c); } } catch (CompletionFailure ex) { @@ -1014,88 +1020,8 @@ } } - // A sub-phase that "compiles" annotations in annotated types. - private class TypeAnnotate extends TreeScanner { - private Env<AttrContext> env; - public TypeAnnotate(Env<AttrContext> env) { this.env = env; } - - private void enterTypeAnnotations(List<JCTypeAnnotation> annotations) { - Set<TypeSymbol> annotated = new HashSet<TypeSymbol>(); - if (!skipAnnotations) - for (List<JCTypeAnnotation> al = annotations; al.nonEmpty(); al = al.tail) { - JCTypeAnnotation a = al.head; - Attribute.Compound c = annotate.enterAnnotation(a, - syms.annotationType, - env); - if (c == null) continue; - Attribute.TypeCompound tc = new Attribute.TypeCompound(c.type, c.values, a.annotation_position); - a.attribute_field = tc; - // Note: @Deprecated has no effect on local variables and parameters - if (!annotated.add(a.type.tsym)) - log.error(a.pos, "duplicate.annotation"); - } - } - - // each class (including enclosed inner classes) should be visited - // separately through MemberEnter.complete(Symbol) - // this flag is used to prevent from visiting inner classes. - private boolean isEnclosingClass = false; - @Override - public void visitClassDef(final JCClassDecl tree) { - if (isEnclosingClass) - return; - isEnclosingClass = true; - scan(tree.mods); - // type parameter need to be visited with a separate env - // scan(tree.typarams); - scan(tree.extending); - scan(tree.implementing); - scan(tree.defs); - } - - private void annotate(final JCTree tree, final List<JCTypeAnnotation> annotations) { - annotate.later(new Annotate.Annotator() { - public String toString() { - return "annotate " + annotations + " onto " + tree; - } - public void enterAnnotation() { - JavaFileObject prev = log.useSource(env.toplevel.sourcefile); - try { - enterTypeAnnotations(annotations); - } finally { - log.useSource(prev); - } - } - }); - } - - @Override - public void visitAnnotatedType(final JCAnnotatedType tree) { - annotate(tree, tree.annotations); - super.visitAnnotatedType(tree); - } - @Override - public void visitTypeParameter(final JCTypeParameter tree) { - annotate(tree, tree.annotations); - super.visitTypeParameter(tree); - } - @Override - public void visitNewArray(final JCNewArray tree) { - annotate(tree, tree.annotations); - for (List<JCTypeAnnotation> dimAnnos : tree.dimAnnotations) - annotate(tree, dimAnnos); - super.visitNewArray(tree); - } - @Override - public void visitMethodDef(JCMethodDecl tree) { - annotate(tree, tree.receiverAnnotations); - super.visitMethodDef(tree); - } - } - - private Env<AttrContext> baseEnv(JCClassDecl tree, Env<AttrContext> env) { - Scope baseScope = new Scope.ClassScope(tree.sym, scopeCounter); + Scope baseScope = new Scope(tree.sym); //import already entered local classes into base scope for (Scope.Entry e = env.outer.info.scope.elems ; e != null ; e = e.sibling) { if (e.sym.isLocal()) {
--- a/src/share/classes/com/sun/tools/javac/comp/Resolve.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/comp/Resolve.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -70,8 +70,6 @@ public final boolean boxingEnabled; // = source.allowBoxing(); public final boolean varargsEnabled; // = source.allowVarargs(); public final boolean allowMethodHandles; - public final boolean allowInvokeDynamic; - public final boolean allowTransitionalJSR292; private final boolean debugResolve; Scope polymorphicSignatureScope; @@ -111,13 +109,8 @@ varargsEnabled = source.allowVarargs(); Options options = Options.instance(context); debugResolve = options.isSet("debugresolve"); - allowTransitionalJSR292 = options.isSet("allowTransitionalJSR292"); Target target = Target.instance(context); - allowMethodHandles = allowTransitionalJSR292 || - target.hasMethodHandles(); - allowInvokeDynamic = (allowTransitionalJSR292 || - target.hasInvokedynamic()) && - options.isSet("invokedynamic"); + allowMethodHandles = target.hasMethodHandles(); polymorphicSignatureScope = new Scope(syms.noSymbol); inapplicableMethodException = new InapplicableMethodException(diags); @@ -285,7 +278,7 @@ return true; else { Symbol s2 = ((MethodSymbol)sym).implementation(site.tsym, types, true); - return (s2 == null || s2 == sym || + return (s2 == null || s2 == sym || sym.owner == s2.owner || s2.isPolymorphicSignatureGeneric() || !types.isSubSignature(types.memberType(site, s2), types.memberType(site, sym))); } @@ -336,20 +329,16 @@ boolean useVarargs, Warner warn) throws Infer.InferenceException { - boolean polymorphicSignature = (m.isPolymorphicSignatureGeneric() && allowMethodHandles) || - isTransitionalDynamicCallSite(site, m); + boolean polymorphicSignature = m.isPolymorphicSignatureGeneric() && allowMethodHandles; if (useVarargs && (m.flags() & VARARGS) == 0) - throw inapplicableMethodException.setMessage(null); + throw inapplicableMethodException.setMessage(); Type mt = types.memberType(site, m); // tvars is the list of formal type variables for which type arguments // need to inferred. List<Type> tvars = env.info.tvars; if (typeargtypes == null) typeargtypes = List.nil(); - if (allowTransitionalJSR292 && polymorphicSignature && typeargtypes.nonEmpty()) { - //transitional 292 call sites might have wrong number of targs - } - else if (mt.tag != FORALL && typeargtypes.nonEmpty()) { + if (mt.tag != FORALL && typeargtypes.nonEmpty()) { // This is not a polymorphic method, but typeargs are supplied // which is fine, see JLS3 15.12.2.1 } else if (mt.tag == FORALL && typeargtypes.nonEmpty()) { @@ -387,7 +376,7 @@ if (instNeeded) return polymorphicSignature ? - infer.instantiatePolymorphicSignatureInstance(env, site, m.name, (MethodSymbol)m, argtypes, typeargtypes) : + infer.instantiatePolymorphicSignatureInstance(env, site, m.name, (MethodSymbol)m, argtypes) : infer.instantiateMethod(env, tvars, (MethodType)mt, @@ -397,19 +386,11 @@ useVarargs, warn); - checkRawArgumentsAcceptable(argtypes, mt.getParameterTypes(), + checkRawArgumentsAcceptable(env, argtypes, mt.getParameterTypes(), allowBoxing, useVarargs, warn); return mt; } - boolean isTransitionalDynamicCallSite(Type site, Symbol sym) { - return allowTransitionalJSR292 && // old logic that doesn't use annotations - !sym.isPolymorphicSignatureInstance() && - ((allowMethodHandles && site == syms.methodHandleType && // invokeExact, invokeGeneric, invoke - (sym.name == names.invoke && sym.isPolymorphicSignatureGeneric())) || - (site == syms.invokeDynamicType && allowInvokeDynamic)); // InvokeDynamic.XYZ - } - /** Same but returns null instead throwing a NoInstanceException */ Type instantiate(Env<AttrContext> env, @@ -430,19 +411,21 @@ /** Check if a parameter list accepts a list of args. */ - boolean argumentsAcceptable(List<Type> argtypes, + boolean argumentsAcceptable(Env<AttrContext> env, + List<Type> argtypes, List<Type> formals, boolean allowBoxing, boolean useVarargs, Warner warn) { try { - checkRawArgumentsAcceptable(argtypes, formals, allowBoxing, useVarargs, warn); + checkRawArgumentsAcceptable(env, argtypes, formals, allowBoxing, useVarargs, warn); return true; } catch (InapplicableMethodException ex) { return false; } } - void checkRawArgumentsAcceptable(List<Type> argtypes, + void checkRawArgumentsAcceptable(Env<AttrContext> env, + List<Type> argtypes, List<Type> formals, boolean allowBoxing, boolean useVarargs, @@ -479,6 +462,14 @@ elt); argtypes = argtypes.tail; } + //check varargs element type accessibility + if (!isAccessible(env, elt)) { + Symbol location = env.enclClass.sym; + throw inapplicableMethodException.setMessage("inaccessible.varargs.type", + elt, + Kinds.kindName(location), + location); + } } return; } @@ -493,6 +484,10 @@ this.diagnostic = null; this.diags = diags; } + InapplicableMethodException setMessage() { + this.diagnostic = null; + return this; + } InapplicableMethodException setMessage(String key) { this.diagnostic = key != null ? diags.fragment(key) : null; return this; @@ -501,6 +496,10 @@ this.diagnostic = key != null ? diags.fragment(key, args) : null; return this; } + InapplicableMethodException setMessage(JCDiagnostic diag) { + this.diagnostic = diag; + return this; + } public JCDiagnostic getDiagnostic() { return diagnostic; @@ -679,7 +678,7 @@ boolean operator) { if (sym.kind == ERR) return bestSoFar; if (!sym.isInheritedIn(site.tsym, types)) return bestSoFar; - assert sym.kind < AMBIGUOUS; + Assert.check(sym.kind < AMBIGUOUS); try { rawInstantiate(env, site, sym, argtypes, typeargtypes, allowBoxing, useVarargs, Warner.noWarnings); @@ -731,13 +730,14 @@ Type mt1 = types.memberType(site, m1); Type mt2 = types.memberType(site, m2); if (!types.overrideEquivalent(mt1, mt2)) - return new AmbiguityError(m1, m2); + return ambiguityError(m1, m2); + // same signature; select (a) the non-bridge method, or // (b) the one that overrides the other, or (c) the concrete // one, or (d) merge both abstract signatures - if ((m1.flags() & BRIDGE) != (m2.flags() & BRIDGE)) { + if ((m1.flags() & BRIDGE) != (m2.flags() & BRIDGE)) return ((m1.flags() & BRIDGE) != 0) ? m2 : m1; - } + // if one overrides or hides the other, use it TypeSymbol m1Owner = (TypeSymbol)m1.owner; TypeSymbol m2Owner = (TypeSymbol)m2.owner; @@ -757,24 +757,24 @@ if (m2Abstract && !m1Abstract) return m1; // both abstract or both concrete if (!m1Abstract && !m2Abstract) - return new AmbiguityError(m1, m2); + return ambiguityError(m1, m2); // check that both signatures have the same erasure if (!types.isSameTypes(m1.erasure(types).getParameterTypes(), m2.erasure(types).getParameterTypes())) - return new AmbiguityError(m1, m2); + return ambiguityError(m1, m2); // both abstract, neither overridden; merge throws clause and result type Symbol mostSpecific; Type result2 = mt2.getReturnType(); if (mt2.tag == FORALL) result2 = types.subst(result2, ((ForAll)mt2).tvars, ((ForAll)mt1).tvars); - if (types.isSubtype(mt1.getReturnType(), result2)) { + if (types.isSubtype(mt1.getReturnType(), result2)) mostSpecific = m1; - } else if (types.isSubtype(result2, mt1.getReturnType())) { + else if (types.isSubtype(result2, mt1.getReturnType())) mostSpecific = m2; - } else { + else { // Theoretically, this can't happen, but it is possible // due to error recovery or mixing incompatible class files - return new AmbiguityError(m1, m2); + return ambiguityError(m1, m2); } MethodSymbol result = new MethodSymbol( mostSpecific.flags(), @@ -796,7 +796,7 @@ } if (m1SignatureMoreSpecific) return m1; if (m2SignatureMoreSpecific) return m2; - return new AmbiguityError(m1, m2); + return ambiguityError(m1, m2); case AMBIGUOUS: AmbiguityError e = (AmbiguityError)m2; Symbol err1 = mostSpecific(m1, e.sym, env, site, allowBoxing, useVarargs); @@ -806,9 +806,9 @@ if (err1 instanceof AmbiguityError && err2 instanceof AmbiguityError && ((AmbiguityError)err1).sym == ((AmbiguityError)err2).sym) - return new AmbiguityError(m1, m2); + return ambiguityError(m1, m2); else - return new AmbiguityError(err1, err2); + return ambiguityError(err1, err2); default: throw new AssertionError(); } @@ -863,6 +863,14 @@ return to; } } + //where + Symbol ambiguityError(Symbol m1, Symbol m2) { + if (((m1.flags() | m2.flags()) & CLASH) != 0) { + return (m1.flags() & CLASH) == 0 ? m1 : m2; + } else { + return new AmbiguityError(m1, m2); + } + } /** Find best qualified method matching given name, type and value * arguments. @@ -1255,6 +1263,7 @@ */ Symbol access(Symbol sym, DiagnosticPosition pos, + Symbol location, Type site, Name name, boolean qualified, @@ -1265,23 +1274,46 @@ if (!site.isErroneous() && !Type.isErroneous(argtypes) && (typeargtypes==null || !Type.isErroneous(typeargtypes))) - logResolveError(errSym, pos, site, name, argtypes, typeargtypes); + logResolveError(errSym, pos, location, site, name, argtypes, typeargtypes); sym = errSym.access(name, qualified ? site.tsym : syms.noSymbol); } return sym; } - /** Same as above, but without type arguments and arguments. + /** Same as original access(), but without location. + */ + Symbol access(Symbol sym, + DiagnosticPosition pos, + Type site, + Name name, + boolean qualified, + List<Type> argtypes, + List<Type> typeargtypes) { + return access(sym, pos, site.tsym, site, name, qualified, argtypes, typeargtypes); + } + + /** Same as original access(), but without type arguments and arguments. + */ + Symbol access(Symbol sym, + DiagnosticPosition pos, + Symbol location, + Type site, + Name name, + boolean qualified) { + if (sym.kind >= AMBIGUOUS) + return access(sym, pos, location, site, name, qualified, List.<Type>nil(), null); + else + return sym; + } + + /** Same as original access(), but without location, type arguments and arguments. */ Symbol access(Symbol sym, DiagnosticPosition pos, Type site, Name name, boolean qualified) { - if (sym.kind >= AMBIGUOUS) - return access(sym, pos, site, name, qualified, List.<Type>nil(), null); - else - return sym; + return access(sym, pos, site.tsym, site, name, qualified); } /** Check that sym is not an abstract method. @@ -1399,6 +1431,11 @@ Symbol resolveQualifiedMethod(DiagnosticPosition pos, Env<AttrContext> env, Type site, Name name, List<Type> argtypes, List<Type> typeargtypes) { + return resolveQualifiedMethod(pos, env, site.tsym, site, name, argtypes, typeargtypes); + } + Symbol resolveQualifiedMethod(DiagnosticPosition pos, Env<AttrContext> env, + Symbol location, Type site, Name name, List<Type> argtypes, + List<Type> typeargtypes) { Symbol sym = startResolution(); List<MethodResolutionPhase> steps = methodResolutionSteps; while (steps.nonEmpty() && @@ -1412,26 +1449,25 @@ steps = steps.tail; } if (sym.kind >= AMBIGUOUS) { - if (site.tsym.isPolymorphicSignatureGeneric() || - isTransitionalDynamicCallSite(site, sym)) { + if (site.tsym.isPolymorphicSignatureGeneric()) { //polymorphic receiver - synthesize new method symbol env.info.varArgs = false; sym = findPolymorphicSignatureInstance(env, - site, name, null, argtypes, typeargtypes); + site, name, null, argtypes); } else { //if nothing is found return the 'first' error MethodResolutionPhase errPhase = firstErroneousResolutionPhase(); sym = access(methodResolutionCache.get(errPhase), - pos, site, name, true, argtypes, typeargtypes); + pos, location, site, name, true, argtypes, typeargtypes); env.info.varArgs = errPhase.isVarargsRequired; } } else if (allowMethodHandles && sym.isPolymorphicSignatureGeneric()) { //non-instantiated polymorphic signature - synthesize new method symbol env.info.varArgs = false; sym = findPolymorphicSignatureInstance(env, - site, name, (MethodSymbol)sym, argtypes, typeargtypes); + site, name, (MethodSymbol)sym, argtypes); } return sym; } @@ -1449,15 +1485,9 @@ Symbol findPolymorphicSignatureInstance(Env<AttrContext> env, Type site, Name name, MethodSymbol spMethod, // sig. poly. method or null if none - List<Type> argtypes, - List<Type> typeargtypes) { - if (typeargtypes.nonEmpty() && (site.tsym.isPolymorphicSignatureGeneric() || - (spMethod != null && spMethod.isPolymorphicSignatureGeneric()))) { - log.warning(env.tree.pos(), "type.parameter.on.polymorphic.signature"); - } - + List<Type> argtypes) { Type mtype = infer.instantiatePolymorphicSignatureInstance(env, - site, name, spMethod, argtypes, typeargtypes); + site, name, spMethod, argtypes); long flags = ABSTRACT | HYPOTHETICAL | POLYMORPHIC_SIGNATURE | (spMethod != null ? spMethod.flags() & Flags.AccessFlags : @@ -1497,7 +1527,7 @@ List<Type> argtypes, List<Type> typeargtypes) { Symbol sym = resolveQualifiedMethod( - pos, env, site, name, argtypes, typeargtypes); + pos, env, site.tsym, site, name, argtypes, typeargtypes); if (sym.kind == MTH) return (MethodSymbol)sym; else throw new FatalError( diags.fragment("fatal.err.cant.locate.meth", @@ -1572,11 +1602,13 @@ null; Symbol errSym = new ResolveError(WRONG_MTH, "diamond error") { @Override - JCDiagnostic getDiagnostic(DiagnosticType dkind, DiagnosticPosition pos, Type site, Name name, List<Type> argtypes, List<Type> typeargtypes) { + JCDiagnostic getDiagnostic(DiagnosticType dkind, DiagnosticPosition pos, + Symbol location, Type site, Name name, List<Type> argtypes, List<Type> typeargtypes) { String key = details == null ? "cant.apply.diamond" : "cant.apply.diamond.1"; - return diags.create(dkind, log.currentSource(), pos, key, diags.fragment("diamond", site.tsym), details); + return diags.create(dkind, log.currentSource(), pos, key, + diags.fragment("diamond", site.tsym), details); } }; MethodResolutionPhase errPhase = firstErroneousResolutionPhase(); @@ -1606,10 +1638,7 @@ names.init, argtypes, typeargtypes, allowBoxing, useVarargs, false); - if ((sym.flags() & DEPRECATED) != 0 && - (env.info.scope.owner.flags() & DEPRECATED) == 0 && - env.info.scope.owner.outermostClass() != sym.outermostClass()) - chk.warnDeprecated(pos, sym); + chk.checkDeprecated(pos, env.info.scope.owner, sym); return sym; } @@ -1755,17 +1784,18 @@ public void logAccessError(Env<AttrContext> env, JCTree tree, Type type) { AccessError error = new AccessError(env, type.getEnclosingType(), type.tsym); - logResolveError(error, tree.pos(), type.getEnclosingType(), null, null, null); + logResolveError(error, tree.pos(), type.getEnclosingType().tsym, type.getEnclosingType(), null, null, null); } //where private void logResolveError(ResolveError error, DiagnosticPosition pos, + Symbol location, Type site, Name name, List<Type> argtypes, List<Type> typeargtypes) { JCDiagnostic d = error.getDiagnostic(JCDiagnostic.DiagnosticType.ERROR, - pos, site, name, argtypes, typeargtypes); + pos, location, site, name, argtypes, typeargtypes); if (d != null) { d.setFlag(DiagnosticFlag.RESOLVE_ERROR); log.report(d); @@ -1835,6 +1865,7 @@ */ abstract JCDiagnostic getDiagnostic(JCDiagnostic.DiagnosticType dkind, DiagnosticPosition pos, + Symbol location, Type site, Name name, List<Type> argtypes, @@ -1900,6 +1931,7 @@ @Override JCDiagnostic getDiagnostic(JCDiagnostic.DiagnosticType dkind, DiagnosticPosition pos, + Symbol location, Type site, Name name, List<Type> argtypes, @@ -1910,16 +1942,26 @@ return null; if (isOperator(name)) { + boolean isUnaryOp = argtypes.size() == 1; + String key = argtypes.size() == 1 ? + "operator.cant.be.applied" : + "operator.cant.be.applied.1"; + Type first = argtypes.head; + Type second = !isUnaryOp ? argtypes.tail.head : null; return diags.create(dkind, log.currentSource(), pos, - "operator.cant.be.applied", name, argtypes); + key, name, first, second); } boolean hasLocation = false; - if (!site.tsym.name.isEmpty()) { - if (site.tsym.kind == PCK && !site.tsym.exists()) { + if (location == null) { + location = site.tsym; + } + if (!location.name.isEmpty()) { + if (location.kind == PCK && !site.tsym.exists()) { return diags.create(dkind, log.currentSource(), pos, - "doesnt.exist", site.tsym); + "doesnt.exist", location); } - hasLocation = true; + hasLocation = !location.name.equals(names._this) && + !location.name.equals(names._super); } boolean isConstructor = kind == ABSENT_MTH && name == names.table.names.init; @@ -1930,7 +1972,7 @@ return diags.create(dkind, log.currentSource(), pos, errKey, kindname, idname, //symbol kindname, name typeargtypes, argtypes, //type parameters and arguments (if any) - typeKindName(site), site); //location kindname, type + getLocationDiag(location, site)); //location kindname, type } else { return diags.create(dkind, log.currentSource(), pos, @@ -1951,6 +1993,19 @@ } return key + suffix; } + private JCDiagnostic getLocationDiag(Symbol location, Type site) { + if (location.kind == VAR) { + return diags.fragment("location.1", + kindName(location), + location, + location.type); + } else { + return diags.fragment("location", + typeKindName(site), + site, + null); + } + } } /** @@ -1991,6 +2046,7 @@ @Override JCDiagnostic getDiagnostic(JCDiagnostic.DiagnosticType dkind, DiagnosticPosition pos, + Symbol location, Type site, Name name, List<Type> argtypes, @@ -1999,8 +2055,14 @@ return null; if (isOperator(name)) { - return diags.create(dkind, log.currentSource(), - pos, "operator.cant.be.applied", name, argtypes); + boolean isUnaryOp = argtypes.size() == 1; + String key = argtypes.size() == 1 ? + "operator.cant.be.applied" : + "operator.cant.be.applied.1"; + Type first = argtypes.head; + Type second = !isUnaryOp ? argtypes.tail.head : null; + return diags.create(dkind, log.currentSource(), pos, + key, name, first, second); } else { Symbol ws = sym.asMemberOf(site, types); @@ -2042,6 +2104,7 @@ @Override JCDiagnostic getDiagnostic(JCDiagnostic.DiagnosticType dkind, DiagnosticPosition pos, + Symbol location, Type site, Name name, List<Type> argtypes, @@ -2057,7 +2120,7 @@ return new JCDiagnostic.MultilineDiagnostic(err, candidateDetails(site)); } else { return new SymbolNotFoundError(ABSENT_MTH).getDiagnostic(dkind, pos, - site, name, argtypes, typeargtypes); + location, site, name, argtypes, typeargtypes); } } @@ -2157,6 +2220,7 @@ @Override JCDiagnostic getDiagnostic(JCDiagnostic.DiagnosticType dkind, DiagnosticPosition pos, + Symbol location, Type site, Name name, List<Type> argtypes, @@ -2166,7 +2230,7 @@ if (sym.name == names.init && sym.owner != site.tsym) { return new SymbolNotFoundError(ABSENT_MTH).getDiagnostic(dkind, - pos, site, name, argtypes, typeargtypes); + pos, location, site, name, argtypes, typeargtypes); } else if ((sym.flags() & PUBLIC) != 0 || (env != null && this.site != null @@ -2201,6 +2265,7 @@ @Override JCDiagnostic getDiagnostic(JCDiagnostic.DiagnosticType dkind, DiagnosticPosition pos, + Symbol location, Type site, Name name, List<Type> argtypes, @@ -2231,6 +2296,7 @@ @Override JCDiagnostic getDiagnostic(JCDiagnostic.DiagnosticType dkind, DiagnosticPosition pos, + Symbol location, Type site, Name name, List<Type> argtypes,
--- a/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -69,7 +69,6 @@ private boolean allowEnums; private Types types; private final Resolve resolve; - private final TypeAnnotations typeAnnotations; /** * Flag to indicate whether or not to generate bridge methods. @@ -91,7 +90,6 @@ types = Types.instance(context); make = TreeMaker.instance(context); resolve = Resolve.instance(context); - typeAnnotations = TypeAnnotations.instance(context); } /** A hashtable mapping bridge methods to the methods they override after @@ -182,7 +180,7 @@ parameters = parameters.tail; } Type parameter = parameters.head; - assert varargsElement != null || args.length() == 1; + Assert.check(varargsElement != null || args.length() == 1); if (varargsElement != null) { while (args.nonEmpty()) { args.head = translate(args.head, varargsElement); @@ -445,14 +443,12 @@ } public void visitClassDef(JCClassDecl tree) { - typeAnnotations.taFillAndLift(tree, true); translateClass(tree.sym); result = tree; } JCMethodDecl currentMethod = null; public void visitMethodDef(JCMethodDecl tree) { - tree.sym.typeAnnotations = tree.sym.typeAnnotations; JCMethodDecl previousMethod = currentMethod; try { currentMethod = tree; @@ -598,7 +594,7 @@ if (tree.varargsElement != null) tree.varargsElement = types.erasure(tree.varargsElement); else - assert tree.args.length() == argtypes.length(); + Assert.check(tree.args.length() == argtypes.length()); tree.args = translateArgs(tree.args, argtypes, tree.varargsElement); // Insert casts of method invocation results as needed.
--- a/src/share/classes/com/sun/tools/javac/file/CacheFSInfo.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/file/CacheFSInfo.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -28,10 +28,10 @@ import java.io.File; import java.io.IOException; import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import com.sun.tools.javac.util.Context; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; /** * Caching implementation of FSInfo.
--- a/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -76,8 +76,6 @@ */ public class JavacFileManager extends BaseFileManager implements StandardJavaFileManager { - boolean useZipFileIndex; - public static char[] toArray(CharBuffer buffer) { if (buffer.hasArray()) return ((CharBuffer)buffer.compact().flip()).array(); @@ -91,6 +89,9 @@ private FSInfo fsInfo; + private boolean useZipFileIndex; + private ZipFileIndexCache zipFileIndexCache; + private final File uninited = new File("U N I N I T E D"); private final Set<JavaFileObject.Kind> sourceOrClass = @@ -163,7 +164,11 @@ fsInfo = FSInfo.instance(context); - useZipFileIndex = System.getProperty("useJavaUtilZip") == null;// TODO: options.get("useJavaUtilZip") == null; + // retain check for system property for compatibility + useZipFileIndex = options.isUnset("useJavaUtilZip") + && System.getProperty("useJavaUtilZip") == null; + if (useZipFileIndex) + zipFileIndexCache = ZipFileIndexCache.getSharedInstance(); mmappedIO = options.isSet("mmappedIO"); ignoreSymbolFile = options.isSet("ignore.symbol.file"); @@ -266,82 +271,116 @@ System.out.println(message); } + /** - * Insert all files in subdirectory `subdirectory' of `directory' which end - * in one of the extensions in `extensions' into packageSym. + * Insert all files in subdirectory subdirectory of directory directory + * which match fileKinds into resultList */ private void listDirectory(File directory, RelativeDirectory subdirectory, Set<JavaFileObject.Kind> fileKinds, boolean recurse, - ListBuffer<JavaFileObject> l) { - Archive archive = archives.get(directory); + ListBuffer<JavaFileObject> resultList) { + File d = subdirectory.getFile(directory); + if (!caseMapCheck(d, subdirectory)) + return; - boolean isFile = fsInfo.isFile(directory); + File[] files = d.listFiles(); + if (files == null) + return; - if (archive != null || isFile) { - if (archive == null) { - try { - archive = openArchive(directory); - } catch (IOException ex) { - log.error("error.reading.file", - directory, getMessage(ex)); - return; - } - } + if (sortFiles != null) + Arrays.sort(files, sortFiles); - List<String> files = archive.getFiles(subdirectory); - if (files != null) { - for (String file; !files.isEmpty(); files = files.tail) { - file = files.head; - if (isValidFile(file, fileKinds)) { - l.append(archive.getFileObject(subdirectory, file)); - } + for (File f: files) { + String fname = f.getName(); + if (f.isDirectory()) { + if (recurse && SourceVersion.isIdentifier(fname)) { + listDirectory(directory, + new RelativeDirectory(subdirectory, fname), + fileKinds, + recurse, + resultList); } - } - if (recurse) { - for (RelativeDirectory s: archive.getSubdirectories()) { - if (subdirectory.contains(s)) { - // Because the archive map is a flat list of directories, - // the enclosing loop will pick up all child subdirectories. - // Therefore, there is no need to recurse deeper. - listDirectory(directory, s, fileKinds, false, l); - } - } - } - } else { - File d = subdirectory.getFile(directory); - if (!caseMapCheck(d, subdirectory)) - return; - - File[] files = d.listFiles(); - if (files == null) - return; - - if (sortFiles != null) - Arrays.sort(files, sortFiles); - - for (File f: files) { - String fname = f.getName(); - if (f.isDirectory()) { - if (recurse && SourceVersion.isIdentifier(fname)) { - listDirectory(directory, - new RelativeDirectory(subdirectory, fname), - fileKinds, - recurse, - l); - } - } else { - if (isValidFile(fname, fileKinds)) { - JavaFileObject fe = - new RegularFileObject(this, fname, new File(d, fname)); - l.append(fe); - } + } else { + if (isValidFile(fname, fileKinds)) { + JavaFileObject fe = + new RegularFileObject(this, fname, new File(d, fname)); + resultList.append(fe); } } } } + /** + * Insert all files in subdirectory subdirectory of archive archive + * which match fileKinds into resultList + */ + private void listArchive(Archive archive, + RelativeDirectory subdirectory, + Set<JavaFileObject.Kind> fileKinds, + boolean recurse, + ListBuffer<JavaFileObject> resultList) { + // Get the files directly in the subdir + List<String> files = archive.getFiles(subdirectory); + if (files != null) { + for (; !files.isEmpty(); files = files.tail) { + String file = files.head; + if (isValidFile(file, fileKinds)) { + resultList.append(archive.getFileObject(subdirectory, file)); + } + } + } + if (recurse) { + for (RelativeDirectory s: archive.getSubdirectories()) { + if (subdirectory.contains(s)) { + // Because the archive map is a flat list of directories, + // the enclosing loop will pick up all child subdirectories. + // Therefore, there is no need to recurse deeper. + listArchive(archive, s, fileKinds, false, resultList); + } + } + } + } + + /** + * container is a directory, a zip file, or a non-existant path. + * Insert all files in subdirectory subdirectory of container which + * match fileKinds into resultList + */ + private void listContainer(File container, + RelativeDirectory subdirectory, + Set<JavaFileObject.Kind> fileKinds, + boolean recurse, + ListBuffer<JavaFileObject> resultList) { + Archive archive = archives.get(container); + if (archive == null) { + // archives are not created for directories. + if (fsInfo.isDirectory(container)) { + listDirectory(container, + subdirectory, + fileKinds, + recurse, + resultList); + return; + } + + // Not a directory; either a file or non-existant, create the archive + try { + archive = openArchive(container); + } catch (IOException ex) { + log.error("error.reading.file", + container, getMessage(ex)); + return; + } + } + listArchive(archive, + subdirectory, + fileKinds, + recurse, + resultList); + } + private boolean isValidFile(String s, Set<JavaFileObject.Kind> fileKinds) { JavaFileObject.Kind kind = getKind(s); return fileKinds.contains(kind); @@ -434,95 +473,92 @@ private static final RelativeDirectory symbolFilePrefix = new RelativeDirectory("META-INF/sym/rt.jar/"); - /** Open a new zip file directory. + /** Open a new zip file directory, and cache it. */ protected Archive openArchive(File zipFileName) throws IOException { - Archive archive = archives.get(zipFileName); - if (archive == null) { - File origZipFileName = zipFileName; - if (!ignoreSymbolFile && paths.isBootClassPathRtJar(zipFileName)) { - File file = zipFileName.getParentFile().getParentFile(); // ${java.home} - if (new File(file.getName()).equals(new File("jre"))) - file = file.getParentFile(); - // file == ${jdk.home} - for (String name : symbolFileLocation) - file = new File(file, name); - // file == ${jdk.home}/lib/ct.sym - if (file.exists()) - zipFileName = file; - } + File origZipFileName = zipFileName; + if (!ignoreSymbolFile && paths.isDefaultBootClassPathRtJar(zipFileName)) { + File file = zipFileName.getParentFile().getParentFile(); // ${java.home} + if (new File(file.getName()).equals(new File("jre"))) + file = file.getParentFile(); + // file == ${jdk.home} + for (String name : symbolFileLocation) + file = new File(file, name); + // file == ${jdk.home}/lib/ct.sym + if (file.exists()) + zipFileName = file; + } - try { + Archive archive; + try { - ZipFile zdir = null; + ZipFile zdir = null; - boolean usePreindexedCache = false; - String preindexCacheLocation = null; + boolean usePreindexedCache = false; + String preindexCacheLocation = null; - if (!useZipFileIndex) { - zdir = new ZipFile(zipFileName); - } - else { - usePreindexedCache = options.isSet("usezipindex"); - preindexCacheLocation = options.get("java.io.tmpdir"); - String optCacheLoc = options.get("cachezipindexdir"); + if (!useZipFileIndex) { + zdir = new ZipFile(zipFileName); + } + else { + usePreindexedCache = options.isSet("usezipindex"); + preindexCacheLocation = options.get("java.io.tmpdir"); + String optCacheLoc = options.get("cachezipindexdir"); - if (optCacheLoc != null && optCacheLoc.length() != 0) { - if (optCacheLoc.startsWith("\"")) { - if (optCacheLoc.endsWith("\"")) { - optCacheLoc = optCacheLoc.substring(1, optCacheLoc.length() - 1); - } - else { - optCacheLoc = optCacheLoc.substring(1); - } + if (optCacheLoc != null && optCacheLoc.length() != 0) { + if (optCacheLoc.startsWith("\"")) { + if (optCacheLoc.endsWith("\"")) { + optCacheLoc = optCacheLoc.substring(1, optCacheLoc.length() - 1); + } + else { + optCacheLoc = optCacheLoc.substring(1); } + } - File cacheDir = new File(optCacheLoc); - if (cacheDir.exists() && cacheDir.canWrite()) { - preindexCacheLocation = optCacheLoc; - if (!preindexCacheLocation.endsWith("/") && - !preindexCacheLocation.endsWith(File.separator)) { - preindexCacheLocation += File.separator; - } + File cacheDir = new File(optCacheLoc); + if (cacheDir.exists() && cacheDir.canWrite()) { + preindexCacheLocation = optCacheLoc; + if (!preindexCacheLocation.endsWith("/") && + !preindexCacheLocation.endsWith(File.separator)) { + preindexCacheLocation += File.separator; } } } + } - if (origZipFileName == zipFileName) { - if (!useZipFileIndex) { - archive = new ZipArchive(this, zdir); - } else { - archive = new ZipFileIndexArchive(this, - ZipFileIndex.getZipFileIndex(zipFileName, + if (origZipFileName == zipFileName) { + if (!useZipFileIndex) { + archive = new ZipArchive(this, zdir); + } else { + archive = new ZipFileIndexArchive(this, + zipFileIndexCache.getZipFileIndex(zipFileName, null, usePreindexedCache, preindexCacheLocation, options.isSet("writezipindexfiles"))); - } + } + } else { + if (!useZipFileIndex) { + archive = new SymbolArchive(this, origZipFileName, zdir, symbolFilePrefix); } else { - if (!useZipFileIndex) { - archive = new SymbolArchive(this, origZipFileName, zdir, symbolFilePrefix); - } - else { - archive = new ZipFileIndexArchive(this, - ZipFileIndex.getZipFileIndex(zipFileName, + archive = new ZipFileIndexArchive(this, + zipFileIndexCache.getZipFileIndex(zipFileName, symbolFilePrefix, usePreindexedCache, preindexCacheLocation, options.isSet("writezipindexfiles"))); - } } - } catch (FileNotFoundException ex) { - archive = new MissingArchive(zipFileName); - } catch (IOException ex) { - if (zipFileName.exists()) - log.error("error.reading.file", zipFileName, getMessage(ex)); - archive = new MissingArchive(zipFileName); } + } catch (FileNotFoundException ex) { + archive = new MissingArchive(zipFileName); + } catch (IOException ex) { + if (zipFileName.exists()) + log.error("error.reading.file", zipFileName, getMessage(ex)); + archive = new MissingArchive(zipFileName); + } - archives.put(origZipFileName, archive); - } + archives.put(origZipFileName, archive); return archive; } @@ -589,8 +625,7 @@ ListBuffer<JavaFileObject> results = new ListBuffer<JavaFileObject>(); for (File directory : path) - listDirectory(directory, subdirectory, kinds, recurse, results); - + listContainer(directory, subdirectory, kinds, recurse, results); return results.toList(); } @@ -659,19 +694,22 @@ return null; for (File dir: path) { - if (dir.isDirectory()) { - File f = name.getFile(dir); - if (f.exists()) - return new RegularFileObject(this, f); - } else { - Archive a = openArchive(dir); - if (a.contains(name)) { - return a.getFileObject(name.dirname(), name.basename()); + Archive a = archives.get(dir); + if (a == null) { + if (fsInfo.isDirectory(dir)) { + File f = name.getFile(dir); + if (f.exists()) + return new RegularFileObject(this, f); + continue; } - + // Not a directory, create the archive + a = openArchive(dir); + } + // Process the archive + if (a.contains(name)) { + return a.getFileObject(name.dirname(), name.basename()); } } - return null; } @@ -836,8 +874,9 @@ return false; if (!path.equals(uri.getPath())) // implicitly checks for embedded . and .. return false; - char first = path.charAt(0); - return first != '.' && first != '/'; + if (path.startsWith("/") || path.startsWith("./") || path.startsWith("../")) + return false; + return true; } // Convenience method
--- a/src/share/classes/com/sun/tools/javac/file/Paths.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/file/Paths.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -112,7 +112,7 @@ * rt.jar as found on the default bootclass path. If the user specified a * bootclasspath, null is used. */ - private File bootClassPathRtJar = null; + private File defaultBootClassPathRtJar = null; /** * Is bootclasspath the default? @@ -143,8 +143,10 @@ // no defaults for other paths p = null; } else { - if (location == PLATFORM_CLASS_PATH) + if (location == PLATFORM_CLASS_PATH) { + defaultBootClassPathRtJar = null; isDefaultBootClassPath = false; + } p = new Path(); for (File f: path) p.addFile(f, warn); // TODO: is use of warn appropriate? @@ -185,8 +187,8 @@ : Collections.unmodifiableCollection(p); } - boolean isBootClassPathRtJar(File file) { - return file.equals(bootClassPathRtJar); + boolean isDefaultBootClassPathRtJar(File file) { + return file.equals(defaultBootClassPathRtJar); } /** @@ -286,9 +288,8 @@ } public void addFile(File file, boolean warn) { - File canonFile = fsInfo.getCanonicalFile(file); - if (contains(file) || canonicalValues.contains(canonFile)) { - /* Discard duplicates and avoid infinite recursion */ + if (contains(file)) { + // discard duplicates return; } @@ -298,7 +299,17 @@ log.warning(Lint.LintCategory.PATH, "path.element.not.found", file); } - } else if (fsInfo.isFile(file)) { + super.add(file); + return; + } + + File canonFile = fsInfo.getCanonicalFile(file); + if (canonicalValues.contains(canonFile)) { + /* Discard duplicates and avoid infinite recursion */ + return; + } + + if (fsInfo.isFile(file)) { /* File is an ordinary file. */ if (!isArchive(file)) { /* Not a recognized extension; open it to see if @@ -322,11 +333,11 @@ } /* Now what we have left is either a directory or a file name - confirming to archive naming convention */ + conforming to archive naming convention */ super.add(file); canonicalValues.add(canonFile); - if (expandJarClassPaths && fsInfo.exists(file) && fsInfo.isFile(file)) + if (expandJarClassPaths && fsInfo.isFile(file)) addJarClassPath(file, warn); } @@ -346,7 +357,7 @@ } private Path computeBootClassPath() { - bootClassPathRtJar = null; + defaultBootClassPathRtJar = null; Path path = new Path(); String bootclasspathOpt = options.get(BOOTCLASSPATH); @@ -371,7 +382,7 @@ File rt_jar = new File("rt.jar"); for (File file : getPathEntries(files)) { if (new File(file.getName()).equals(rt_jar)) - bootClassPathRtJar = file; + defaultBootClassPathRtJar = file; } }
--- a/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -38,11 +38,9 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.locks.ReentrantLock; import java.util.zip.DataFormatException; import java.util.zip.Inflater; import java.util.zip.ZipException; @@ -50,24 +48,28 @@ import com.sun.tools.javac.file.RelativePath.RelativeDirectory; import com.sun.tools.javac.file.RelativePath.RelativeFile; -/** This class implements building of index of a zip archive and access to it's context. - * It also uses prebuild index if available. It supports invocations where it will - * serialize an optimized zip index file to disk. +/** + * This class implements the building of index of a zip archive and access to + * its context. It also uses a prebuilt index if available. + * It supports invocations where it will serialize an optimized zip index file + * to disk. * - * In oreder to use secondary index file make sure the option "usezipindex" is in the Options object, - * when JavacFileManager is invoked. (You can pass "-XDusezipindex" on the command line. + * In order to use a secondary index file, set "usezipindex" in the Options + * object when JavacFileManager is invoked. (You can pass "-XDusezipindex" on + * the command line.) * - * Location where to look for/generate optimized zip index files can be provided using - * "-XDcachezipindexdir=<directory>". If this flag is not provided, the dfault location is - * the value of the "java.io.tmpdir" system property. + * Location where to look for/generate optimized zip index files can be + * provided using "-XDcachezipindexdir=<directory>". If this flag is not + * provided, the default location is the value of the "java.io.tmpdir" system + * property. * - * If key "-XDwritezipindexfiles" is specified, there will be new optimized index file - * created for each archive, used by the compiler for compilation, at location, - * specified by "cachezipindexdir" option. + * If "-XDwritezipindexfiles" is specified, there will be new optimized index + * file created for each archive, used by the compiler for compilation, at the + * location specified by the "cachezipindexdir" option. * - * If nonBatchMode option is specified (-XDnonBatchMode) the compiler will use timestamp - * checking to reindex the zip files if it is needed. In batch mode the timestamps are not checked - * and the compiler uses the cached indexes. + * If system property nonBatchMode option is specified the compiler will use + * timestamp checking to reindex the zip files if it is needed. In batch mode + * the timestamps are not checked and the compiler uses the cached indexes. * * <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. @@ -80,18 +82,18 @@ public final static long NOT_MODIFIED = Long.MIN_VALUE; - private static Map<File, ZipFileIndex> zipFileIndexCache = new HashMap<File, ZipFileIndex>(); - private static ReentrantLock lock = new ReentrantLock(); private static boolean NON_BATCH_MODE = System.getProperty("nonBatchMode") != null;// TODO: Use -XD compiler switch for this. - private Map<RelativeDirectory, DirectoryEntry> directories = Collections.<RelativeDirectory, DirectoryEntry>emptyMap(); - private Set<RelativeDirectory> allDirs = Collections.<RelativeDirectory>emptySet(); + private Map<RelativeDirectory, DirectoryEntry> directories = + Collections.<RelativeDirectory, DirectoryEntry>emptyMap(); + private Set<RelativeDirectory> allDirs = + Collections.<RelativeDirectory>emptySet(); // ZipFileIndex data entries - private File zipFile; + final File zipFile; private Reference<File> absFileRef; - private long zipFileLastModified = NOT_MODIFIED; + long zipFileLastModified = NOT_MODIFIED; private RandomAccessFile zipRandomFile; private Entry[] entries; @@ -99,156 +101,24 @@ private File zipIndexFile = null; private boolean triedToReadIndex = false; final RelativeDirectory symbolFilePrefix; - private int symbolFilePrefixLength = 0; + private final int symbolFilePrefixLength; private boolean hasPopulatedData = false; - private long lastReferenceTimeStamp = NOT_MODIFIED; + long lastReferenceTimeStamp = NOT_MODIFIED; - private boolean usePreindexedCache = false; - private String preindexedCacheLocation = null; + private final boolean usePreindexedCache; + private final String preindexedCacheLocation; private boolean writeIndex = false; - private Map <String, SoftReference<RelativeDirectory>> relativeDirectoryCache = + private Map<String, SoftReference<RelativeDirectory>> relativeDirectoryCache = new HashMap<String, SoftReference<RelativeDirectory>>(); - /** - * Returns a list of all ZipFileIndex entries - * - * @return A list of ZipFileIndex entries, or an empty list - */ - public static List<ZipFileIndex> getZipFileIndexes() { - return getZipFileIndexes(false); - } - /** - * Returns a list of all ZipFileIndex entries - * - * @param openedOnly If true it returns a list of only opened ZipFileIndex entries, otherwise - * all ZipFileEntry(s) are included into the list. - * @return A list of ZipFileIndex entries, or an empty list - */ - public static List<ZipFileIndex> getZipFileIndexes(boolean openedOnly) { - List<ZipFileIndex> zipFileIndexes = new ArrayList<ZipFileIndex>(); - lock.lock(); - try { - zipFileIndexes.addAll(zipFileIndexCache.values()); - - if (openedOnly) { - for(ZipFileIndex elem : zipFileIndexes) { - if (!elem.isOpen()) { - zipFileIndexes.remove(elem); - } - } - } - } - finally { - lock.unlock(); - } - return zipFileIndexes; - } - - public boolean isOpen() { - lock.lock(); - try { - return zipRandomFile != null; - } - finally { - lock.unlock(); - } - } - - public static ZipFileIndex getZipFileIndex(File zipFile, - RelativeDirectory symbolFilePrefix, - boolean useCache, String cacheLocation, - boolean writeIndex) throws IOException { - ZipFileIndex zi = null; - lock.lock(); - try { - zi = getExistingZipIndex(zipFile); - - if (zi == null || (zi != null && zipFile.lastModified() != zi.zipFileLastModified)) { - zi = new ZipFileIndex(zipFile, symbolFilePrefix, writeIndex, - useCache, cacheLocation); - zipFileIndexCache.put(zipFile, zi); - } - } - finally { - lock.unlock(); - } - return zi; + public synchronized boolean isOpen() { + return (zipRandomFile != null); } - public static ZipFileIndex getExistingZipIndex(File zipFile) { - lock.lock(); - try { - return zipFileIndexCache.get(zipFile); - } - finally { - lock.unlock(); - } - } - - public static void clearCache() { - lock.lock(); - try { - zipFileIndexCache.clear(); - } - finally { - lock.unlock(); - } - } - - public static void clearCache(long timeNotUsed) { - lock.lock(); - try { - Iterator<File> cachedFileIterator = zipFileIndexCache.keySet().iterator(); - while (cachedFileIterator.hasNext()) { - File cachedFile = cachedFileIterator.next(); - ZipFileIndex cachedZipIndex = zipFileIndexCache.get(cachedFile); - if (cachedZipIndex != null) { - long timeToTest = cachedZipIndex.lastReferenceTimeStamp + timeNotUsed; - if (timeToTest < cachedZipIndex.lastReferenceTimeStamp || // Overflow... - System.currentTimeMillis() > timeToTest) { - zipFileIndexCache.remove(cachedFile); - } - } - } - } - finally { - lock.unlock(); - } - } - - public static void removeFromCache(File file) { - lock.lock(); - try { - zipFileIndexCache.remove(file); - } - finally { - lock.unlock(); - } - } - - /** Sets already opened list of ZipFileIndexes from an outside client - * of the compiler. This functionality should be used in a non-batch clients of the compiler. - */ - public static void setOpenedIndexes(List<ZipFileIndex>indexes) throws IllegalStateException { - lock.lock(); - try { - if (zipFileIndexCache.isEmpty()) { - throw new IllegalStateException("Setting opened indexes should be called only when the ZipFileCache is empty. Call JavacFileManager.flush() before calling this method."); - } - - for (ZipFileIndex zfi : indexes) { - zipFileIndexCache.put(zfi.zipFile, zfi); - } - } - finally { - lock.unlock(); - } - } - - private ZipFileIndex(File zipFile, RelativeDirectory symbolFilePrefix, boolean writeIndex, + ZipFileIndex(File zipFile, RelativeDirectory symbolFilePrefix, boolean writeIndex, boolean useCache, String cacheLocation) throws IOException { this.zipFile = zipFile; this.symbolFilePrefix = symbolFilePrefix; @@ -266,19 +136,22 @@ checkIndex(); } + @Override public String toString() { return "ZipFileIndex[" + zipFile + "]"; } // Just in case... - protected void finalize() { + @Override + protected void finalize() throws Throwable { closeFile(); + super.finalize(); } private boolean isUpToDate() { - if (zipFile != null && - ((!NON_BATCH_MODE) || zipFileLastModified == zipFile.lastModified()) && - hasPopulatedData) { + if (zipFile != null + && ((!NON_BATCH_MODE) || zipFileLastModified == zipFile.lastModified()) + && hasPopulatedData) { return true; } @@ -339,15 +212,9 @@ allDirs = Collections.<RelativeDirectory>emptySet(); } - public void close() { - lock.lock(); - try { - writeIndex(); - closeFile(); - } - finally { - lock.unlock(); - } + public synchronized void close() { + writeIndex(); + closeFile(); } private void closeFile() { @@ -361,29 +228,24 @@ } /** - * Returns the ZipFileIndexEntry for an absolute path, if there is one. + * Returns the ZipFileIndexEntry for a path, if there is one. */ - Entry getZipIndexEntry(RelativePath path) { - lock.lock(); + synchronized Entry getZipIndexEntry(RelativePath path) { try { checkIndex(); DirectoryEntry de = directories.get(path.dirname()); String lookFor = path.basename(); - return de == null ? null : de.getEntry(lookFor); + return (de == null) ? null : de.getEntry(lookFor); } catch (IOException e) { return null; } - finally { - lock.unlock(); - } } /** - * Returns a javac List of filenames within an absolute path in the ZipFileIndex. + * Returns a javac List of filenames within a directory in the ZipFileIndex. */ - public com.sun.tools.javac.util.List<String> getFiles(RelativeDirectory path) { - lock.lock(); + public synchronized com.sun.tools.javac.util.List<String> getFiles(RelativeDirectory path) { try { checkIndex(); @@ -398,13 +260,9 @@ catch (IOException e) { return com.sun.tools.javac.util.List.<String>nil(); } - finally { - lock.unlock(); - } } - public List<String> getDirectories(RelativeDirectory path) { - lock.lock(); + public synchronized List<String> getDirectories(RelativeDirectory path) { try { checkIndex(); @@ -420,13 +278,9 @@ catch (IOException e) { return com.sun.tools.javac.util.List.<String>nil(); } - finally { - lock.unlock(); - } } - public Set<RelativeDirectory> getAllDirectories() { - lock.lock(); + public synchronized Set<RelativeDirectory> getAllDirectories() { try { checkIndex(); if (allDirs == Collections.EMPTY_SET) { @@ -438,9 +292,6 @@ catch (IOException e) { return Collections.<RelativeDirectory>emptySet(); } - finally { - lock.unlock(); - } } /** @@ -450,8 +301,7 @@ * @param path A path within the zip. * @return True if the path is a file or dir, false otherwise. */ - public boolean contains(RelativePath path) { - lock.lock(); + public synchronized boolean contains(RelativePath path) { try { checkIndex(); return getZipIndexEntry(path) != null; @@ -459,114 +309,69 @@ catch (IOException e) { return false; } - finally { - lock.unlock(); + } + + public synchronized boolean isDirectory(RelativePath path) throws IOException { + // The top level in a zip file is always a directory. + if (path.getPath().length() == 0) { + lastReferenceTimeStamp = System.currentTimeMillis(); + return true; } + + checkIndex(); + return directories.get(path) != null; } - public boolean isDirectory(RelativePath path) throws IOException { - lock.lock(); - try { - // The top level in a zip file is always a directory. - if (path.getPath().length() == 0) { - lastReferenceTimeStamp = System.currentTimeMillis(); - return true; - } - - checkIndex(); - return directories.get(path) != null; - } - finally { - lock.unlock(); - } + public synchronized long getLastModified(RelativeFile path) throws IOException { + Entry entry = getZipIndexEntry(path); + if (entry == null) + throw new FileNotFoundException(); + return entry.getLastModified(); } - public long getLastModified(RelativeFile path) throws IOException { - lock.lock(); - try { - Entry entry = getZipIndexEntry(path); - if (entry == null) - throw new FileNotFoundException(); - return entry.getLastModified(); + public synchronized int length(RelativeFile path) throws IOException { + Entry entry = getZipIndexEntry(path); + if (entry == null) + throw new FileNotFoundException(); + + if (entry.isDir) { + return 0; } - finally { - lock.unlock(); + + byte[] header = getHeader(entry); + // entry is not compressed? + if (get2ByteLittleEndian(header, 8) == 0) { + return entry.compressedSize; + } else { + return entry.size; } } - public int length(RelativeFile path) throws IOException { - lock.lock(); - try { - Entry entry = getZipIndexEntry(path); - if (entry == null) - throw new FileNotFoundException(); - - if (entry.isDir) { - return 0; - } - - byte[] header = getHeader(entry); - // entry is not compressed? - if (get2ByteLittleEndian(header, 8) == 0) { - return entry.compressedSize; - } else { - return entry.size; - } - } - finally { - lock.unlock(); - } - } - - public byte[] read(RelativeFile path) throws IOException { - lock.lock(); - try { - Entry entry = getZipIndexEntry(path); - if (entry == null) - throw new FileNotFoundException("Path not found in ZIP: " + path.path); - return read(entry); - } - finally { - lock.unlock(); - } + public synchronized byte[] read(RelativeFile path) throws IOException { + Entry entry = getZipIndexEntry(path); + if (entry == null) + throw new FileNotFoundException("Path not found in ZIP: " + path.path); + return read(entry); } - byte[] read(Entry entry) throws IOException { - lock.lock(); - try { - openFile(); - byte[] result = readBytes(entry); - closeFile(); - return result; - } - finally { - lock.unlock(); - } + synchronized byte[] read(Entry entry) throws IOException { + openFile(); + byte[] result = readBytes(entry); + closeFile(); + return result; } - public int read(RelativeFile path, byte[] buffer) throws IOException { - lock.lock(); - try { - Entry entry = getZipIndexEntry(path); - if (entry == null) - throw new FileNotFoundException(); - return read(entry, buffer); - } - finally { - lock.unlock(); - } + public synchronized int read(RelativeFile path, byte[] buffer) throws IOException { + Entry entry = getZipIndexEntry(path); + if (entry == null) + throw new FileNotFoundException(); + return read(entry, buffer); } - int read(Entry entry, byte[] buffer) + synchronized int read(Entry entry, byte[] buffer) throws IOException { - lock.lock(); - try { - int result = readBytes(entry, buffer); - return result; - } - finally { - lock.unlock(); - } + int result = readBytes(entry, buffer); + return result; } private byte[] readBytes(Entry entry) throws IOException { @@ -638,21 +443,20 @@ /* * Inflate using the java.util.zip.Inflater class */ - private static Inflater inflater; + private SoftReference<Inflater> inflaterRef; private int inflate(byte[] src, byte[] dest) { + Inflater inflater = (inflaterRef == null ? null : inflaterRef.get()); // construct the inflater object or reuse an existing one if (inflater == null) - inflater = new Inflater(true); + inflaterRef = new SoftReference<Inflater>(inflater = new Inflater(true)); - synchronized (inflater) { - inflater.reset(); - inflater.setInput(src); - try { - return inflater.inflate(dest); - } catch (DataFormatException ex) { - return -1; - } + inflater.reset(); + inflater.setInput(src); + try { + return inflater.inflate(dest); + } catch (DataFormatException ex) { + return -1; } } @@ -855,14 +659,10 @@ * @return long */ public long getZipFileLastModified() throws IOException { - lock.lock(); - try { + synchronized (this) { checkIndex(); return zipFileLastModified; } - finally { - lock.unlock(); - } } /** ------------------------------------------------------------------------ @@ -1028,8 +828,7 @@ } boolean ret = false; - lock.lock(); - try { + synchronized (this) { triedToReadIndex = true; RandomAccessFile raf = null; try { @@ -1071,9 +870,6 @@ readFromIndex = true; } } - finally { - lock.unlock(); - } return ret; } @@ -1144,8 +940,8 @@ raf.seek(currFP); // Now write each of the files in the DirectoryEntry - List<Entry> entries = de.getEntriesAsCollection(); - for (Entry zfie : entries) { + List<Entry> list = de.getEntriesAsCollection(); + for (Entry zfie : list) { // Write the name bytes byte [] zfieNameBytes = zfie.name.getBytes("UTF-8"); int zfieNameBytesLen = zfieNameBytes.length; @@ -1191,13 +987,9 @@ } public boolean writeZipIndex() { - lock.lock(); - try { + synchronized (this) { return writeIndex(); } - finally { - lock.unlock(); - } } private File getIndexFile() { @@ -1328,7 +1120,7 @@ return hash; } - + @Override public String toString() { return isDir ? ("Dir:" + dir + " : " + name) : (dir + ":" + name);
--- a/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -42,6 +42,7 @@ import com.sun.tools.javac.file.JavacFileManager.Archive; import com.sun.tools.javac.file.RelativePath.RelativeDirectory; import com.sun.tools.javac.file.RelativePath.RelativeFile; +import com.sun.tools.javac.util.Assert; import com.sun.tools.javac.util.List; /** @@ -146,7 +147,7 @@ @Override public InputStream openInputStream() throws IOException { if (inputStream == null) { - assert entry != null; // see constructor + Assert.checkNonNull(entry); // see constructor inputStream = new ByteArrayInputStream(zfIndex.read(entry)); } return inputStream;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/com/sun/tools/javac/file/ZipFileIndexCache.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.tools.javac.file; + +import com.sun.tools.javac.file.RelativePath.RelativeDirectory; +import com.sun.tools.javac.util.Context; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + + +/** A cache for ZipFileIndex objects. */ +public class ZipFileIndexCache { + + private final Map<File, ZipFileIndex> map = + new HashMap<File, ZipFileIndex>(); + + /** Get a shared instance of the cache. */ + private static ZipFileIndexCache sharedInstance; + public synchronized static ZipFileIndexCache getSharedInstance() { + if (sharedInstance == null) + sharedInstance = new ZipFileIndexCache(); + return sharedInstance; + } + + /** Get a context-specific instance of a cache. */ + public static ZipFileIndexCache instance(Context context) { + ZipFileIndexCache instance = context.get(ZipFileIndexCache.class); + if (instance == null) + context.put(ZipFileIndexCache.class, instance = new ZipFileIndexCache()); + return instance; + } + + /** + * Returns a list of all ZipFileIndex entries + * + * @return A list of ZipFileIndex entries, or an empty list + */ + public List<ZipFileIndex> getZipFileIndexes() { + return getZipFileIndexes(false); + } + + /** + * Returns a list of all ZipFileIndex entries + * + * @param openedOnly If true it returns a list of only opened ZipFileIndex entries, otherwise + * all ZipFileEntry(s) are included into the list. + * @return A list of ZipFileIndex entries, or an empty list + */ + public synchronized List<ZipFileIndex> getZipFileIndexes(boolean openedOnly) { + List<ZipFileIndex> zipFileIndexes = new ArrayList<ZipFileIndex>(); + + zipFileIndexes.addAll(map.values()); + + if (openedOnly) { + for(ZipFileIndex elem : zipFileIndexes) { + if (!elem.isOpen()) { + zipFileIndexes.remove(elem); + } + } + } + + return zipFileIndexes; + } + + public synchronized ZipFileIndex getZipFileIndex(File zipFile, + RelativeDirectory symbolFilePrefix, + boolean useCache, String cacheLocation, + boolean writeIndex) throws IOException { + ZipFileIndex zi = getExistingZipIndex(zipFile); + + if (zi == null || (zi != null && zipFile.lastModified() != zi.zipFileLastModified)) { + zi = new ZipFileIndex(zipFile, symbolFilePrefix, writeIndex, + useCache, cacheLocation); + map.put(zipFile, zi); + } + return zi; + } + + public synchronized ZipFileIndex getExistingZipIndex(File zipFile) { + return map.get(zipFile); + } + + public synchronized void clearCache() { + map.clear(); + } + + public synchronized void clearCache(long timeNotUsed) { + Iterator<File> cachedFileIterator = map.keySet().iterator(); + while (cachedFileIterator.hasNext()) { + File cachedFile = cachedFileIterator.next(); + ZipFileIndex cachedZipIndex = map.get(cachedFile); + if (cachedZipIndex != null) { + long timeToTest = cachedZipIndex.lastReferenceTimeStamp + timeNotUsed; + if (timeToTest < cachedZipIndex.lastReferenceTimeStamp || // Overflow... + System.currentTimeMillis() > timeToTest) { + map.remove(cachedFile); + } + } + } + } + + public synchronized void removeFromCache(File file) { + map.remove(file); + } + + /** Sets already opened list of ZipFileIndexes from an outside client + * of the compiler. This functionality should be used in a non-batch clients of the compiler. + */ + public synchronized void setOpenedIndexes(List<ZipFileIndex>indexes) throws IllegalStateException { + if (map.isEmpty()) { + String msg = + "Setting opened indexes should be called only when the ZipFileCache is empty. " + + "Call JavacFileManager.flush() before calling this method."; + throw new IllegalStateException(msg); + } + + for (ZipFileIndex zfi : indexes) { + map.put(zfi.zipFile, zfi); + } + } +}
--- a/src/share/classes/com/sun/tools/javac/jvm/CRTable.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/jvm/CRTable.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -101,7 +101,7 @@ continue; SourceRange pos = positions.get(entry.tree); - assert pos != null : "CRT: tree source positions are undefined"; + Assert.checkNonNull(pos, "CRT: tree source positions are undefined"); if ((pos.startPos == Position.NOPOS) || (pos.endPos == Position.NOPOS)) continue; @@ -517,7 +517,7 @@ } public void visitTree(JCTree tree) { - assert false; + Assert.error(); } /** The start position of given tree.
--- a/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -80,6 +80,9 @@ public final static int CONSTANT_Methodref = 10; public final static int CONSTANT_InterfaceMethodref = 11; public final static int CONSTANT_NameandType = 12; + public final static int CONSTANT_MethodHandle = 15; + public final static int CONSTANT_MethodType = 16; + public final static int CONSTANT_InvokeDynamic = 18; public final static int MAX_PARAMETERS = 0xff; public final static int MAX_DIMENSIONS = 0xff;
--- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -77,6 +77,8 @@ protected static final Context.Key<ClassReader> classReaderKey = new Context.Key<ClassReader>(); + public static final int INITIAL_BUFFER_SIZE = 0x0fff0; + Annotate annotate; /** Switch: verbose output. @@ -136,9 +138,6 @@ /** The symbol table. */ Symtab syms; - /** The scope counter */ - Scope.ScopeCounter scopeCounter; - Types types; /** The name table. */ @@ -185,7 +184,7 @@ /** The buffer containing the currently read class file. */ - byte[] buf = new byte[0x0fff0]; + byte[] buf = new byte[INITIAL_BUFFER_SIZE]; /** The current input pointer. */ @@ -205,10 +204,6 @@ /** The minor version number of the class file being read. */ int minorVersion; - /** Switch: debug output for JSR 308-related operations. - */ - boolean debugJSR308; - /** A table to hold the constant pool indices for method parameter * names, as given in LocalVariableTable attributes. */ @@ -244,9 +239,9 @@ if (classes != null) return; if (definitive) { - assert packages == null || packages == syms.packages; + Assert.check(packages == null || packages == syms.packages); packages = syms.packages; - assert classes == null || classes == syms.classes; + Assert.check(classes == null || classes == syms.classes); classes = syms.classes; } else { packages = new HashMap<Name, PackageSymbol>(); @@ -266,7 +261,6 @@ names = Names.instance(context); syms = Symtab.instance(context); - scopeCounter = Scope.ScopeCounter.instance(context); types = Types.instance(context); fileManager = context.get(JavaFileManager.class); if (fileManager == null) @@ -295,7 +289,6 @@ : null; typevars = new Scope(syms.noSymbol); - debugJSR308 = options.isSet("TA:reader"); lintClassfile = Lint.instance(context).isEnabled(LintCategory.CLASSFILE); @@ -437,14 +430,19 @@ } case CONSTANT_Class: case CONSTANT_String: + case CONSTANT_MethodType: bp = bp + 2; break; + case CONSTANT_MethodHandle: + bp = bp + 3; + break; case CONSTANT_Fieldref: case CONSTANT_Methodref: case CONSTANT_InterfaceMethodref: case CONSTANT_NameandType: case CONSTANT_Integer: case CONSTANT_Float: + case CONSTANT_InvokeDynamic: bp = bp + 4; break; case CONSTANT_Long: @@ -513,6 +511,15 @@ case CONSTANT_Double: poolObj[i] = new Double(getDouble(index + 1)); break; + case CONSTANT_MethodHandle: + skipBytes(4); + break; + case CONSTANT_MethodType: + skipBytes(3); + break; + case CONSTANT_InvokeDynamic: + skipBytes(5); + break; default: throw badClassFile("bad.const.pool.tag", Byte.toString(tag)); } @@ -533,7 +540,7 @@ int index = poolIdx[i]; int len = getChar(index + 1); int start = index + 3; - assert buf[start] == '[' || buf[start + len - 1] != ';'; + Assert.check(buf[start] == '[' || buf[start + len - 1] != ';'); // by the above assertion, the following test can be // simplified to (buf[start] == '[') return (buf[start] == '[' || buf[start + len - 1] == ';') @@ -1044,7 +1051,7 @@ readingClassAttr = true; try { ClassType ct1 = (ClassType)c.type; - assert c == currentOwner; + Assert.check(c == currentOwner); ct1.typarams_field = readTypeParams(nextChar()); ct1.supertype_field = sigToType(); ListBuffer<Type> is = new ListBuffer<Type>(); @@ -1126,20 +1133,6 @@ } }, - // v51 attributes - new AttributeReader(names.RuntimeVisibleTypeAnnotations, V51, CLASS_OR_MEMBER_ATTRIBUTE) { - void read(Symbol sym, int attrLen) { - attachTypeAnnotations(sym); - } - }, - - new AttributeReader(names.RuntimeInvisibleTypeAnnotations, V51, CLASS_OR_MEMBER_ATTRIBUTE) { - void read(Symbol sym, int attrLen) { - attachTypeAnnotations(sym); - } - }, - - // The following attributes for a Code attribute are not currently handled // StackMapTable // SourceDebugExtension @@ -1324,7 +1317,9 @@ sym.flags_field |= PROPRIETARY; else proxies.append(proxy); - if (majorVersion >= V51.major && proxy.type.tsym == syms.polymorphicSignatureType.tsym) { + if (majorVersion >= V51.major && + (proxy.type.tsym == syms.polymorphicSignatureType.tsym || + proxy.type.tsym == syms.transientPolymorphicSignatureType.tsym)) { sym.flags_field |= POLYMORPHIC_SIGNATURE; } } @@ -1349,17 +1344,6 @@ } } - void attachTypeAnnotations(final Symbol sym) { - int numAttributes = nextChar(); - if (numAttributes != 0) { - ListBuffer<TypeAnnotationProxy> proxies = - ListBuffer.lb(); - for (int i = 0; i < numAttributes; i++) - proxies.append(readTypeAnnotation()); - annotate.later(new TypeAnnotationCompleter(sym, proxies.toList())); - } - } - /** Attach the default value for an annotation element. */ void attachAnnotationDefault(final Symbol sym) { @@ -1396,121 +1380,6 @@ return new CompoundAnnotationProxy(t, pairs.toList()); } - TypeAnnotationProxy readTypeAnnotation() { - CompoundAnnotationProxy proxy = readCompoundAnnotation(); - TypeAnnotationPosition position = readPosition(); - - if (debugJSR308) - System.out.println("TA: reading: " + proxy + " @ " + position - + " in " + log.currentSourceFile()); - - return new TypeAnnotationProxy(proxy, position); - } - - TypeAnnotationPosition readPosition() { - byte tag = nextByte(); - - if (!TargetType.isValidTargetTypeValue(tag)) - throw this.badClassFile("bad.type.annotation.value", tag); - - TypeAnnotationPosition position = new TypeAnnotationPosition(); - TargetType type = TargetType.fromTargetTypeValue(tag); - - position.type = type; - - switch (type) { - // type case - case TYPECAST: - case TYPECAST_GENERIC_OR_ARRAY: - // object creation - case INSTANCEOF: - case INSTANCEOF_GENERIC_OR_ARRAY: - // new expression - case NEW: - case NEW_GENERIC_OR_ARRAY: - position.offset = nextChar(); - break; - // local variable - case LOCAL_VARIABLE: - case LOCAL_VARIABLE_GENERIC_OR_ARRAY: - int table_length = nextChar(); - position.lvarOffset = new int[table_length]; - position.lvarLength = new int[table_length]; - position.lvarIndex = new int[table_length]; - - for (int i = 0; i < table_length; ++i) { - position.lvarOffset[i] = nextChar(); - position.lvarLength[i] = nextChar(); - position.lvarIndex[i] = nextChar(); - } - break; - // method receiver - case METHOD_RECEIVER: - // Do nothing - break; - // type parameters - case CLASS_TYPE_PARAMETER: - case METHOD_TYPE_PARAMETER: - position.parameter_index = nextByte(); - break; - // type parameter bounds - case CLASS_TYPE_PARAMETER_BOUND: - case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - case METHOD_TYPE_PARAMETER_BOUND: - case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - position.parameter_index = nextByte(); - position.bound_index = nextByte(); - break; - // wildcard - case WILDCARD_BOUND: - case WILDCARD_BOUND_GENERIC_OR_ARRAY: - position.wildcard_position = readPosition(); - break; - // Class extends and implements clauses - case CLASS_EXTENDS: - case CLASS_EXTENDS_GENERIC_OR_ARRAY: - position.type_index = nextChar(); - break; - // throws - case THROWS: - position.type_index = nextChar(); - break; - case CLASS_LITERAL: - case CLASS_LITERAL_GENERIC_OR_ARRAY: - position.offset = nextChar(); - break; - // method parameter: not specified - case METHOD_PARAMETER_GENERIC_OR_ARRAY: - position.parameter_index = nextByte(); - break; - // method type argument: wasn't specified - case NEW_TYPE_ARGUMENT: - case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - case METHOD_TYPE_ARGUMENT: - case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - position.offset = nextChar(); - position.type_index = nextByte(); - break; - // We don't need to worry abut these - case METHOD_RETURN_GENERIC_OR_ARRAY: - case FIELD_GENERIC_OR_ARRAY: - break; - case UNKNOWN: - break; - default: - throw new AssertionError("unknown type: " + position); - } - - if (type.hasLocation()) { - int len = nextChar(); - ListBuffer<Integer> loc = ListBuffer.lb(); - for (int i = 0; i < len; i++) - loc = loc.append((int)nextByte()); - position.location = loc.toList(); - } - - return position; - } Attribute readAttributeValue() { char c = (char) buf[bp++]; switch (c) { @@ -1823,45 +1692,6 @@ } } - class TypeAnnotationCompleter extends AnnotationCompleter { - - List<TypeAnnotationProxy> proxies; - - TypeAnnotationCompleter(Symbol sym, - List<TypeAnnotationProxy> proxies) { - super(sym, List.<CompoundAnnotationProxy>nil()); - this.proxies = proxies; - } - - List<Attribute.TypeCompound> deproxyTypeCompoundList(List<TypeAnnotationProxy> proxies) { - ListBuffer<Attribute.TypeCompound> buf = ListBuffer.lb(); - for (TypeAnnotationProxy proxy: proxies) { - Attribute.Compound compound = deproxyCompound(proxy.compound); - Attribute.TypeCompound typeCompound = new Attribute.TypeCompound(compound, proxy.position); - buf.add(typeCompound); - } - return buf.toList(); - } - - @Override - public void enterAnnotation() { - JavaFileObject previousClassFile = currentClassFile; - try { - currentClassFile = classFile; - List<Attribute.TypeCompound> newList = deproxyTypeCompoundList(proxies); - if (debugJSR308) - System.out.println("TA: reading: adding " + newList - + " to symbol " + sym + " in " + log.currentSourceFile()); - sym.typeAnnotations = ((sym.typeAnnotations == null) - ? newList - : newList.prependList(sym.typeAnnotations)); - - } finally { - currentClassFile = previousClassFile; - } - } - } - /************************************************************************ * Reading Symbols @@ -2003,6 +1833,13 @@ sym.savedParameterNames = paramNames.reverse(); } + /** + * skip n bytes + */ + void skipBytes(int n) { + bp = bp + n; + } + /** Skip a field or method */ void skipMember() { @@ -2040,7 +1877,7 @@ ClassType ct = (ClassType)c.type; // allocate scope for members - c.members_field = new Scope.ClassScope(c, scopeCounter); + c.members_field = new Scope(c); // prepare type variable table typevars = typevars.dup(currentOwner); @@ -2090,9 +1927,9 @@ if (ct.interfaces_field == null) ct.interfaces_field = is.reverse(); - if (fieldCount != nextChar()) assert false; + Assert.check(fieldCount == nextChar()); for (int i = 0; i < fieldCount; i++) enterMember(c, readField()); - if (methodCount != nextChar()) assert false; + Assert.check(methodCount == nextChar()); for (int i = 0; i < methodCount; i++) enterMember(c, readMethod()); typevars = typevars.leave(); @@ -2201,7 +2038,7 @@ public ClassSymbol defineClass(Name name, Symbol owner) { ClassSymbol c = new ClassSymbol(0, name, owner); if (owner.kind == PCK) - assert classes.get(c.flatname) == null : c; + Assert.checkNull(classes.get(c.flatname), c); c.completer = this; return c; } @@ -2341,9 +2178,9 @@ if (classfile != null) { JavaFileObject previousClassFile = currentClassFile; try { - assert !filling : - "Filling " + classfile.toUri() + - " during " + previousClassFile; + if (filling) { + Assert.error("Filling " + classfile.toUri() + " during " + previousClassFile); + } currentClassFile = classfile; if (verbose) { printVerbose("loading", currentClassFile.toString()); @@ -2419,8 +2256,14 @@ } } } + /* + * ensureCapacity will increase the buffer as needed, taking note that + * the new buffer will always be greater than the needed and never + * exactly equal to the needed size or bp. If equal then the read (above) + * will infinitely loop as buf.length - bp == 0. + */ private static byte[] ensureCapacity(byte[] buf, int needed) { - if (buf.length < needed) { + if (buf.length <= needed) { byte[] old = buf; buf = new byte[Integer.highestOneBit(needed) << 1]; System.arraycopy(old, 0, buf, 0, old.length); @@ -2483,7 +2326,7 @@ public PackageSymbol enterPackage(Name fullname) { PackageSymbol p = packages.get(fullname); if (p == null) { - assert !fullname.isEmpty() : "rootPackage missing!"; + Assert.check(!fullname.isEmpty(), "rootPackage missing!"); p = new PackageSymbol( Convert.shortName(fullname), enterPackage(Convert.packagePart(fullname)));
--- a/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -65,10 +65,6 @@ private final Options options; - /** Switch: debugging output for JSR 308-related operations. - */ - private boolean debugJSR308; - /** Switch: verbose output. */ private boolean verbose; @@ -180,7 +176,6 @@ types = Types.instance(context); fileManager = context.get(JavaFileManager.class); - debugJSR308 = options.isSet("TA:writer"); verbose = options.isSet(VERBOSE); scramble = options.isSet("-scramble"); scrambleAll = options.isSet("-scrambleAll"); @@ -224,11 +219,14 @@ /** Return flags as a string, separated by " ". */ public static String flagNames(long flags) { - StringBuffer sbuf = new StringBuffer(); + StringBuilder sbuf = new StringBuilder(); int i = 0; long f = flags & StandardFlags; while (f != 0) { - if ((f & 1) != 0) sbuf.append(" " + flagName[i]); + if ((f & 1) != 0) { + sbuf.append(" "); + sbuf.append(flagName[i]); + } f = f >> 1; i++; } @@ -381,7 +379,7 @@ ? types.erasure(outer) : outer); sigbuf.appendByte('.'); - assert c.flatname.startsWith(c.owner.enclClass().flatname); + Assert.check(c.flatname.startsWith(c.owner.enclClass().flatname)); sigbuf.appendName(rawOuter ? c.flatname.subName(c.owner.enclClass().flatname.getByteLength()+1,c.flatname.getByteLength()) : c.name); @@ -421,7 +419,7 @@ /** Return signature of given type */ Name typeSig(Type type) { - assert sigbuf.length == 0; + Assert.check(sigbuf.length == 0); //- System.out.println(" ? " + type); assembleSig(type); Name n = sigbuf.toName(names); @@ -471,7 +469,7 @@ int i = 1; while (i < pool.pp) { Object value = pool.pool[i]; - assert value != null; + Assert.checkNonNull(value); if (value instanceof Pool.Method) value = ((Pool.Method)value).m; else if (value instanceof Pool.Variable) @@ -534,7 +532,7 @@ poolbuf.appendByte(CONSTANT_Class); poolbuf.appendChar(pool.put(xClassName(type))); } else { - assert false : "writePool " + value; + Assert.error("writePool " + value); } i++; } @@ -677,7 +675,6 @@ acount++; } acount += writeJavaAnnotations(sym.getAnnotationMirrors()); - acount += writeTypeAnnotations(sym.typeAnnotations); return acount; } @@ -772,46 +769,6 @@ return attrCount; } - int writeTypeAnnotations(List<Attribute.TypeCompound> typeAnnos) { - if (typeAnnos.isEmpty()) return 0; - - ListBuffer<Attribute.TypeCompound> visibles = ListBuffer.lb(); - ListBuffer<Attribute.TypeCompound> invisibles = ListBuffer.lb(); - - for (Attribute.TypeCompound tc : typeAnnos) { - if (tc.position.type == TargetType.UNKNOWN - || !tc.position.emitToClassfile()) - continue; - switch (types.getRetention(tc)) { - case SOURCE: break; - case CLASS: invisibles.append(tc); break; - case RUNTIME: visibles.append(tc); break; - default: ;// /* fail soft */ throw new AssertionError(vis); - } - } - - int attrCount = 0; - if (visibles.length() != 0) { - int attrIndex = writeAttr(names.RuntimeVisibleTypeAnnotations); - databuf.appendChar(visibles.length()); - for (Attribute.TypeCompound p : visibles) - writeTypeAnnotation(p); - endAttr(attrIndex); - attrCount++; - } - - if (invisibles.length() != 0) { - int attrIndex = writeAttr(names.RuntimeInvisibleTypeAnnotations); - databuf.appendChar(invisibles.length()); - for (Attribute.TypeCompound p : invisibles) - writeTypeAnnotation(p); - endAttr(attrIndex); - attrCount++; - } - - return attrCount; - } - /** A visitor to write an attribute including its leading * single-character marker. */ @@ -844,7 +801,7 @@ databuf.appendByte('Z'); break; case CLASS: - assert value instanceof String; + Assert.check(value instanceof String); databuf.appendByte('s'); value = names.fromString(value.toString()); // CONSTANT_Utf8 break; @@ -888,104 +845,6 @@ p.snd.accept(awriter); } } - - void writeTypeAnnotation(Attribute.TypeCompound c) { - if (debugJSR308) - System.out.println("TA: writing " + c + " at " + c.position - + " in " + log.currentSourceFile()); - writeCompoundAttribute(c); - writePosition(c.position); - } - - void writePosition(TypeAnnotationPosition p) { - databuf.appendByte(p.type.targetTypeValue()); - switch (p.type) { - // type case - case TYPECAST: - case TYPECAST_GENERIC_OR_ARRAY: - // object creation - case INSTANCEOF: - case INSTANCEOF_GENERIC_OR_ARRAY: - // new expression - case NEW: - case NEW_GENERIC_OR_ARRAY: - databuf.appendChar(p.offset); - break; - // local variable - case LOCAL_VARIABLE: - case LOCAL_VARIABLE_GENERIC_OR_ARRAY: - databuf.appendChar(p.lvarOffset.length); // for table length - for (int i = 0; i < p.lvarOffset.length; ++i) { - databuf.appendChar(p.lvarOffset[i]); - databuf.appendChar(p.lvarLength[i]); - databuf.appendChar(p.lvarIndex[i]); - } - break; - // method receiver - case METHOD_RECEIVER: - // Do nothing - break; - // type parameters - case CLASS_TYPE_PARAMETER: - case METHOD_TYPE_PARAMETER: - databuf.appendByte(p.parameter_index); - break; - // type parameters bounds - case CLASS_TYPE_PARAMETER_BOUND: - case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - case METHOD_TYPE_PARAMETER_BOUND: - case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - databuf.appendByte(p.parameter_index); - databuf.appendByte(p.bound_index); - break; - // wildcards - case WILDCARD_BOUND: - case WILDCARD_BOUND_GENERIC_OR_ARRAY: - writePosition(p.wildcard_position); - break; - // Class extends and implements clauses - case CLASS_EXTENDS: - case CLASS_EXTENDS_GENERIC_OR_ARRAY: - databuf.appendChar(p.type_index); - break; - // throws - case THROWS: - databuf.appendChar(p.type_index); - break; - case CLASS_LITERAL: - case CLASS_LITERAL_GENERIC_OR_ARRAY: - databuf.appendChar(p.offset); - break; - // method parameter: not specified - case METHOD_PARAMETER_GENERIC_OR_ARRAY: - databuf.appendByte(p.parameter_index); - break; - // method type argument: wasn't specified - case NEW_TYPE_ARGUMENT: - case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - case METHOD_TYPE_ARGUMENT: - case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - databuf.appendChar(p.offset); - databuf.appendByte(p.type_index); - break; - // We don't need to worry abut these - case METHOD_RETURN_GENERIC_OR_ARRAY: - case FIELD_GENERIC_OR_ARRAY: - break; - case UNKNOWN: - break; - default: - throw new AssertionError("unknown position: " + p); - } - - // Append location data for generics/arrays. - if (p.type.hasLocation()) { - databuf.appendChar(p.location.size()); - for (int i : p.location) - databuf.appendByte((byte)i); - } - } - /********************************************************************** * Writing Objects **********************************************************************/ @@ -1159,11 +1018,11 @@ Code.LocalVar var = code.varBuffer[i]; // write variable info - assert var.start_pc >= 0; - assert var.start_pc <= code.cp; + Assert.check(var.start_pc >= 0 + && var.start_pc <= code.cp); databuf.appendChar(var.start_pc); - assert var.length >= 0; - assert (var.start_pc + var.length) <= code.cp; + Assert.check(var.length >= 0 + && (var.start_pc + var.length) <= code.cp); databuf.appendChar(var.length); VarSymbol sym = var.sym; databuf.appendChar(pool.put(sym.name)); @@ -1195,7 +1054,7 @@ databuf.appendChar(pool.put(typeSig(sym.type))); databuf.appendChar(var.reg); } - assert count == nGenericVars; + Assert.check(count == nGenericVars); endAttr(alenIdx); acount++; } @@ -1266,7 +1125,7 @@ } break; case JSR202: { - assert code.stackMapBuffer == null; + Assert.checkNull(code.stackMapBuffer); for (int i=0; i<nframes; i++) { if (debugstackmap) System.out.print(" " + i + ":"); StackMapTableFrame frame = code.stackMapTableBuffer[i]; @@ -1606,7 +1465,7 @@ */ public void writeClassFile(OutputStream out, ClassSymbol c) throws IOException, PoolOverflow, StringOverflow { - assert (c.flags() & COMPOUND) == 0; + Assert.check((c.flags() & COMPOUND) == 0); databuf.reset(); poolbuf.reset(); sigbuf.reset(); @@ -1643,7 +1502,7 @@ case MTH: if ((e.sym.flags() & HYPOTHETICAL) == 0) methodsCount++; break; case TYP: enterInner((ClassSymbol)e.sym); break; - default : assert false; + default : Assert.error(); } } databuf.appendChar(fieldsCount); @@ -1659,7 +1518,7 @@ for (List<Type> l = interfaces; !sigReq && l.nonEmpty(); l = l.tail) sigReq = l.head.allparams().length() != 0; if (sigReq) { - assert source.allowGenerics(); + Assert.check(source.allowGenerics()); int alenIdx = writeAttr(names.Signature); if (typarams.length() != 0) assembleParamsSig(typarams); assembleSig(supertype); @@ -1698,7 +1557,6 @@ acount += writeFlagAttrs(c.flags()); acount += writeJavaAnnotations(c.getAnnotationMirrors()); - acount += writeTypeAnnotations(c.typeAnnotations); acount += writeEnclosingMethodAttribute(c); poolbuf.appendInt(JAVA_MAGIC);
--- a/src/share/classes/com/sun/tools/javac/jvm/Code.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/jvm/Code.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -372,7 +372,7 @@ } void postop() { - assert alive || state.stacksize == 0; + Assert.check(alive || state.stacksize == 0); } /** Emit a multinewarray instruction. @@ -583,7 +583,7 @@ case areturn: case ireturn: case freturn: - assert state.nlocks == 0; + Assert.check(state.nlocks == 0); state.pop(1); markDead(); break; @@ -604,7 +604,7 @@ break; case lreturn: case dreturn: - assert state.nlocks == 0; + Assert.check(state.nlocks == 0); state.pop(2); markDead(); break; @@ -612,7 +612,7 @@ state.push(state.stack[state.stacksize-1]); break; case return_: - assert state.nlocks == 0; + Assert.check(state.nlocks == 0); markDead(); break; case arraylength: @@ -1147,7 +1147,7 @@ int pc = curPc(); alive = true; this.state = state.dup(); - assert state.stacksize <= max_stack; + Assert.check(state.stacksize <= max_stack); if (debugCode) System.err.println("entry point " + state); pendingStackMap = needStackMap; return pc; @@ -1160,7 +1160,7 @@ int pc = curPc(); alive = true; this.state = state.dup(); - assert state.stacksize <= max_stack; + Assert.check(state.stacksize <= max_stack); this.state.push(pushed); if (debugCode) System.err.println("entry point " + state); pendingStackMap = needStackMap; @@ -1289,7 +1289,7 @@ } frame.locals = new Type[localCount]; for (int i=0, j=0; i<localsSize; i++, j++) { - assert(j < localCount); + Assert.check(j < localCount); frame.locals[j] = locals[i]; if (width(locals[i]) > 1) i++; } @@ -1435,8 +1435,8 @@ boolean changed = false; State newState = state; for (; chain != null; chain = chain.next) { - assert state != chain.state; - assert target > chain.pc || state.stacksize == 0; + Assert.check(state != chain.state + && (target > chain.pc || state.stacksize == 0)); if (target >= cp) { target = cp; } else if (get1(target) == goto_) { @@ -1464,9 +1464,9 @@ fatcode = true; else put2(chain.pc + 1, target - chain.pc); - assert !alive || + Assert.check(!alive || chain.state.stacksize == newState.stacksize && - chain.state.nlocks == newState.nlocks; + chain.state.nlocks == newState.nlocks); } fixedPc = true; if (cp == target) { @@ -1481,7 +1481,7 @@ } } } - assert !changed || state != newState; + Assert.check(!changed || state != newState); if (state != newState) { setDefined(newState.defined); state = newState; @@ -1492,11 +1492,11 @@ /** Resolve chain to point to current code pointer. */ public void resolve(Chain chain) { - assert + Assert.check( !alive || chain==null || state.stacksize == chain.state.stacksize && - state.nlocks == chain.state.nlocks; + state.nlocks == chain.state.nlocks); pendingJumps = mergeChains(chain, pendingJumps); } @@ -1514,9 +1514,9 @@ // recursive merge sort if (chain2 == null) return chain1; if (chain1 == null) return chain2; - assert + Assert.check( chain1.state.stacksize == chain2.state.stacksize && - chain1.state.nlocks == chain2.state.nlocks; + chain1.state.nlocks == chain2.state.nlocks); if (chain1.pc < chain2.pc) return new Chain( chain2.pc, @@ -1631,7 +1631,7 @@ void unlock(int register) { nlocks--; - assert locks[nlocks] == register; + Assert.check(locks[nlocks] == register); locks[nlocks] = -1; } @@ -1673,7 +1673,7 @@ stacksize--; Type result = stack[stacksize]; stack[stacksize] = null; - assert result != null && width(result) == 1; + Assert.check(result != null && width(result) == 1); return result; } @@ -1686,8 +1686,8 @@ stacksize -= 2; Type result = stack[stacksize]; stack[stacksize] = null; - assert stack[stacksize+1] == null; - assert result != null && width(result) == 2; + Assert.check(stack[stacksize+1] == null + && result != null && width(result) == 2); return result; } @@ -1712,8 +1712,8 @@ case ARRAY: int width = width(t); Type old = stack[stacksize-width]; - assert types.isSubtype(types.erasure(old), - types.erasure(t)); + Assert.check(types.isSubtype(types.erasure(old), + types.erasure(t))); stack[stacksize-width] = t; break; default: @@ -1739,8 +1739,8 @@ State join(State other) { defined = defined.andSet(other.defined); - assert stacksize == other.stacksize; - assert nlocks == other.nlocks; + Assert.check(stacksize == other.stacksize + && nlocks == other.nlocks); for (int i=0; i<stacksize; ) { Type t = stack[i]; Type tother = other.stack[i]; @@ -1751,7 +1751,7 @@ error(); int w = width(result); stack[i] = result; - if (w == 2) assert stack[i+1] == null; + if (w == 2) Assert.checkNull(stack[i+1]); i += w; } return this; @@ -1847,7 +1847,7 @@ System.arraycopy(lvar, 0, new_lvar, 0, lvar.length); lvar = new_lvar; } - assert lvar[adr] == null; + Assert.checkNull(lvar[adr]); if (pendingJumps != null) resolvePending(); lvar[adr] = new LocalVar(v); state.defined.excl(adr); @@ -1912,29 +1912,12 @@ if (length < Character.MAX_VALUE) { v.length = length; putVar(v); - fillLocalVarPosition(v); } } } state.defined.excl(adr); } - private void fillLocalVarPosition(LocalVar lv) { - if (lv == null || lv.sym == null - || lv.sym.typeAnnotations == null) - return; - for (Attribute.TypeCompound ta : lv.sym.typeAnnotations) { - TypeAnnotationPosition p = ta.position; - while (p != null) { - p.lvarOffset = new int[] { (int)lv.start_pc }; - p.lvarLength = new int[] { (int)lv.length }; - p.lvarIndex = new int[] { (int)lv.reg }; - p.isValidOffset = true; - p = p.wildcard_position; - } - } - } - /** Put a live variable range into the buffer to be output to the * class file. */
--- a/src/share/classes/com/sun/tools/javac/jvm/Gen.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/jvm/Gen.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -500,7 +500,7 @@ } break; default: - assert false; + Assert.error(); } } // Insert any instance initializers into all constructors. @@ -857,7 +857,7 @@ pts = pts.tail; } // require lists be of same length - assert pts.isEmpty(); + Assert.check(pts.isEmpty()); } /* ************************************************************************ @@ -1111,7 +1111,7 @@ public void visitSwitch(JCSwitch tree) { int limit = code.nextreg; - assert tree.selector.type.tag != CLASS; + Assert.check(tree.selector.type.tag != CLASS); int startpcCrt = genCrt ? code.curPc() : 0; Item sel = genExpr(tree.selector, syms.intType); List<JCCase> cases = tree.cases; @@ -1148,7 +1148,7 @@ if (hi < val) hi = val; nlabels++; } else { - assert defaultIndex == -1; + Assert.check(defaultIndex == -1); defaultIndex = i; } l = l.tail; @@ -1290,7 +1290,7 @@ syncEnv.info.finalize = new GenFinalizer() { void gen() { genLast(); - assert syncEnv.info.gaps.length() % 2 == 0; + Assert.check(syncEnv.info.gaps.length() % 2 == 0); syncEnv.info.gaps.append(code.curPc()); } void genLast() { @@ -1329,10 +1329,10 @@ tryEnv.info.cont, jsrState); } - assert tryEnv.info.gaps.length() % 2 == 0; + Assert.check(tryEnv.info.gaps.length() % 2 == 0); tryEnv.info.gaps.append(code.curPc()); } else { - assert tryEnv.info.gaps.length() % 2 == 0; + Assert.check(tryEnv.info.gaps.length() % 2 == 0); tryEnv.info.gaps.append(code.curPc()); genLast(); } @@ -1640,14 +1640,14 @@ public void visitBreak(JCBreak tree) { Env<GenContext> targetEnv = unwind(tree.target, env); - assert code.state.stacksize == 0; + Assert.check(code.state.stacksize == 0); targetEnv.info.addExit(code.branch(goto_)); endFinalizerGaps(env, targetEnv); } public void visitContinue(JCContinue tree) { Env<GenContext> targetEnv = unwind(tree.target, env); - assert code.state.stacksize == 0; + Assert.check(code.state.stacksize == 0); targetEnv.info.addCont(code.branch(goto_)); endFinalizerGaps(env, targetEnv); } @@ -1682,7 +1682,6 @@ *************************************************************************/ public void visitApply(JCMethodInvocation tree) { - setTypeAnnotationPositions(tree.pos); // Generate code for method. Item m = genExpr(tree.meth, methodType); // Generate code for all arguments, where the expected types are @@ -1718,48 +1717,10 @@ result = items.makeStackItem(pt); } - private void setTypeAnnotationPositions(int treePos) { - MethodSymbol meth = code.meth; - - for (Attribute.TypeCompound ta : meth.typeAnnotations) { - if (ta.position.pos == treePos) { - ta.position.offset = code.cp; - ta.position.lvarOffset = new int[] { code.cp }; - ta.position.isValidOffset = true; - } - } - - if (code.meth.getKind() != ElementKind.CONSTRUCTOR - && code.meth.getKind() != ElementKind.STATIC_INIT) - return; - - for (Attribute.TypeCompound ta : meth.owner.typeAnnotations) { - if (ta.position.pos == treePos) { - ta.position.offset = code.cp; - ta.position.lvarOffset = new int[] { code.cp }; - ta.position.isValidOffset = true; - } - } - - ClassSymbol clazz = meth.enclClass(); - for (Symbol s : new com.sun.tools.javac.model.FilteredMemberList(clazz.members())) { - if (!s.getKind().isField()) - continue; - for (Attribute.TypeCompound ta : s.typeAnnotations) { - if (ta.position.pos == treePos) { - ta.position.offset = code.cp; - ta.position.lvarOffset = new int[] { code.cp }; - ta.position.isValidOffset = true; - } - } - } - } - public void visitNewClass(JCNewClass tree) { // Enclosing instances or anonymous classes should have been eliminated // by now. - assert tree.encl == null && tree.def == null; - setTypeAnnotationPositions(tree.pos); + Assert.check(tree.encl == null && tree.def == null); code.emitop2(new_, makeRef(tree.pos(), tree.type)); code.emitop0(dup); @@ -1774,7 +1735,6 @@ } public void visitNewArray(JCNewArray tree) { - setTypeAnnotationPositions(tree.pos); if (tree.elems != null) { Type elemtype = types.elemtype(tree.type); @@ -1942,7 +1902,7 @@ genNullCheck(tree.pos()); break; default: - assert false; + Assert.error(); } } } @@ -2017,7 +1977,7 @@ items.makeMemberItem(getStringBufferAppend(tree, t), false).invoke(); } Symbol getStringBufferAppend(JCTree tree, Type t) { - assert t.constValue() == null; + Assert.checkNull(t.constValue()); Symbol method = stringBufferAppend.get(t); if (method == null) { method = rs.resolveInternalMethod(tree.pos(), @@ -2104,7 +2064,6 @@ } public void visitTypeCast(JCTypeCast tree) { - setTypeAnnotationPositions(tree.pos); result = genExpr(tree.expr, tree.clazz.type).load(); // Additional code is only needed if we cast to a reference type // which is not statically a supertype of the expression's type. @@ -2121,8 +2080,6 @@ } public void visitTypeTest(JCInstanceOf tree) { - setTypeAnnotationPositions(tree.pos); - genExpr(tree.expr, tree.expr.type).load(); code.emitop2(instanceof_, makeRef(tree.pos(), tree.clazz.type)); result = items.makeStackItem(syms.booleanType); @@ -2163,16 +2120,10 @@ Symbol sym = tree.sym; if (tree.name == names._class) { - assert target.hasClassLiterals(); - setTypeAnnotationPositions(tree.pos); + Assert.check(target.hasClassLiterals()); code.emitop2(ldc2, makeRef(tree.pos(), tree.selected.type)); result = items.makeStackItem(pt); return; - } else if (tree.name == names.TYPE) { - // Set the annotation positions for primitive class literals - // (e.g. int.class) which have been converted to TYPE field - // access on the corresponding boxed type (e.g. Integer.TYPE). - setTypeAnnotationPositions(tree.pos); } Symbol ssym = TreeInfo.symbol(tree.selected); @@ -2202,9 +2153,6 @@ } result = items. makeImmediateItem(sym.type, ((VarSymbol) sym).getConstValue()); - } else if (allowInvokedynamic && sym.kind == MTH && ssym == syms.invokeDynamicType.tsym) { - base.drop(); - result = items.makeDynamicItem(sym); } else { if (!accessSuper) sym = binaryQualifier(sym, tree.selected.type);
--- a/src/share/classes/com/sun/tools/javac/jvm/Items.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/jvm/Items.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -26,11 +26,11 @@ package com.sun.tools.javac.jvm; import com.sun.tools.javac.code.*; - import com.sun.tools.javac.code.Symbol.*; import com.sun.tools.javac.code.Type.*; import com.sun.tools.javac.jvm.Code.*; import com.sun.tools.javac.tree.JCTree; +import com.sun.tools.javac.util.Assert; import static com.sun.tools.javac.jvm.ByteCodes.*; @@ -139,13 +139,6 @@ return new StaticItem(member); } - /** Make an item representing a dynamically invoked method. - * @param member The represented symbol. - */ - Item makeDynamicItem(Symbol member) { - return new DynamicItem(member); - } - /** Make an item representing an instance variable or method. * @param member The represented symbol. * @param nonvirtual Is the reference not virtual? (true for constructors @@ -387,7 +380,7 @@ LocalItem(Type type, int reg) { super(Code.typecode(type)); - assert reg >= 0; + Assert.check(reg >= 0); this.type = type; this.reg = reg; } @@ -464,38 +457,6 @@ } } - /** An item representing a dynamic call site. - */ - class DynamicItem extends StaticItem { - DynamicItem(Symbol member) { - super(member); - assert member.owner == syms.invokeDynamicType.tsym; - } - - Item load() { - assert false; - return null; - } - - void store() { - assert false; - } - - Item invoke() { - // assert target.hasNativeInvokeDynamic(); - MethodType mtype = (MethodType)member.erasure(types); - int rescode = Code.typecode(mtype.restype); - ClassFile.NameAndType descr = new ClassFile.NameAndType(member.name, mtype); - code.emitInvokedynamic(pool.put(descr), mtype); - return stackItem[rescode]; - } - - public String toString() { - return "dynamic(" + member + ")"; - } - } - - /** An item representing an instance variable or method. */ class MemberItem extends Item { @@ -620,7 +581,7 @@ ldc(); break; default: - assert false; + Assert.error(); } return stackItem[typecode]; } @@ -716,7 +677,7 @@ } void stash(int toscode) { - assert false; + Assert.error(); } int width() { @@ -784,7 +745,7 @@ } void stash(int toscode) { - assert false; + Assert.error(); } CondItem mkCond() {
--- a/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -848,7 +848,7 @@ break; default: - assert false: "unknown compile policy"; + Assert.error("unknown compile policy"); } } catch (Abort ex) { if (devVerbose) @@ -1066,7 +1066,7 @@ classSymbols = classSymbols.prepend((ClassSymbol)sym); continue; } - assert sym.kind == Kinds.PCK; + Assert.check(sym.kind == Kinds.PCK); log.warning("proc.package.does.not.exist", nameStr); pckSymbols = pckSymbols.prepend((PackageSymbol)sym); } catch (CompletionFailure e) { @@ -1086,8 +1086,8 @@ if (c != this) annotationProcessingOccurred = c.annotationProcessingOccurred = true; // doProcessing will have handled deferred diagnostics - assert c.log.deferDiagnostics == false; - assert c.log.deferredDiagnostics.size() == 0; + Assert.check(c.log.deferDiagnostics == false + && c.log.deferredDiagnostics.size() == 0); return c; } finally { procEnvImpl.close(); @@ -1324,7 +1324,7 @@ return; List<JCTree> pdef = lower.translateTopLevelClass(env, env.tree, localMake); if (pdef.head != null) { - assert pdef.tail.isEmpty(); + Assert.check(pdef.tail.isEmpty()); results.add(new Pair<Env<AttrContext>, JCClassDecl>(env, (JCClassDecl)pdef.head)); } }
--- a/src/share/classes/com/sun/tools/javac/main/Main.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/main/Main.java Sat Apr 09 00:45:10 2011 +0100 @@ -284,13 +284,6 @@ } } - // phase this out with JSR 292 PFD - if ("no".equals(options.get("allowTransitionalJSR292"))) { - options.put("allowTransitionalJSR292", null); - } else if (target.hasInvokedynamic() && options.isUnset("allowTransitionalJSR292")) { - options.put("allowTransitionalJSR292", "allowTransitionalJSR292"); - } - // handle this here so it works even if no other options given String showClass = options.get("showClass"); if (showClass != null) {
--- a/src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java Sat Apr 09 00:45:10 2011 +0100 @@ -39,7 +39,6 @@ import java.nio.file.FileVisitResult; import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; -import java.nio.file.attribute.Attributes; import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; import java.util.Arrays; @@ -223,9 +222,7 @@ Path path = pathIter.next(); if (pathIter.hasNext()) throw new IllegalArgumentException("path too long for directory"); - if (!path.exists()) - throw new FileNotFoundException(path + ": does not exist"); - else if (!isDirectory(path)) + if (!isDirectory(path)) throw new IOException(path + ": not a directory"); } @@ -326,7 +323,7 @@ private void list(Path path, String packageName, final Set<Kind> kinds, boolean recurse, final ListBuffer<JavaFileObject> results) throws IOException { - if (!path.exists()) + if (!Files.exists(path)) return; final Path pathDir; @@ -341,7 +338,7 @@ String sep = path.getFileSystem().getSeparator(); Path packageDir = packageName.isEmpty() ? pathDir : pathDir.resolve(packageName.replace(".", sep)); - if (!packageDir.exists()) + if (!Files.exists(packageDir)) return; /* Alternate impl of list, superceded by use of Files.walkFileTree */ @@ -353,7 +350,7 @@ // DirectoryStream<Path> ds = dir.newDirectoryStream(); // try { // for (Path p: ds) { -// String name = p.getName().toString(); +// String name = p.getFileName().toString(); // if (isDirectory(p)) { // if (recurse && SourceVersion.isIdentifier(name)) { // queue.add(p); @@ -376,7 +373,8 @@ new SimpleFileVisitor<Path>() { @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) { - if (SourceVersion.isIdentifier(dir.getName().toString())) // JSR 292? + Path name = dir.getFileName(); + if (name == null || SourceVersion.isIdentifier(name.toString())) // JSR 292? return FileVisitResult.CONTINUE; else return FileVisitResult.SKIP_SUBTREE; @@ -384,7 +382,7 @@ @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { - if (attrs.isRegularFile() && kinds.contains(getKind(file.getName().toString()))) { + if (attrs.isRegularFile() && kinds.contains(getKind(file.getFileName().toString()))) { JavaFileObject fe = PathFileObject.createDirectoryPathFileObject( JavacPathFileManager.this, file, pathDir); @@ -430,13 +428,13 @@ for (Path p: getLocation(location)) { if (isDirectory(p)) { Path f = resolve(p, relativePath); - if (f.exists()) + if (Files.exists(f)) return PathFileObject.createDirectoryPathFileObject(this, f, p); } else { FileSystem fs = getFileSystem(p); if (fs != null) { Path file = getPath(fs, relativePath); - if (file.exists()) + if (Files.exists(file)) return PathFileObject.createJarPathFileObject(this, file); } } @@ -503,7 +501,7 @@ private FileSystem getFileSystem(Path p) throws IOException { FileSystem fs = fileSystems.get(p); if (fs == null) { - fs = FileSystems.newFileSystem(p, Collections.<String,Void>emptyMap(), null); + fs = FileSystems.newFileSystem(p, null); fileSystems.put(p, fs); } return fs; @@ -529,7 +527,7 @@ } private static boolean isDirectory(Path path) throws IOException { - BasicFileAttributes attrs = Attributes.readBasicFileAttributes(path); + BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class); return attrs.isDirectory(); }
--- a/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java Sat Apr 09 00:45:10 2011 +0100 @@ -38,7 +38,6 @@ import java.nio.charset.CharsetDecoder; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.attribute.Attributes; import java.nio.file.attribute.BasicFileAttributes; import javax.lang.model.element.Modifier; import javax.lang.model.element.NestingKind; @@ -153,7 +152,7 @@ @Override public Kind getKind() { - return BaseFileManager.getKind(path.getName().toString()); + return BaseFileManager.getKind(path.getFileName().toString()); } @Override @@ -164,14 +163,14 @@ return false; } String sn = simpleName + kind.extension; - String pn = path.getName().toString(); + String pn = path.getFileName().toString(); if (pn.equals(sn)) { return true; } if (pn.equalsIgnoreCase(sn)) { try { // allow for Windows - return path.toRealPath(false).getName().toString().equals(sn); + return path.toRealPath(false).getFileName().toString().equals(sn); } catch (IOException e) { } } @@ -200,13 +199,13 @@ @Override public InputStream openInputStream() throws IOException { - return path.newInputStream(); + return Files.newInputStream(path); } @Override public OutputStream openOutputStream() throws IOException { ensureParentDirectoriesExist(); - return path.newOutputStream(); + return Files.newOutputStream(path); } @Override @@ -242,14 +241,13 @@ @Override public Writer openWriter() throws IOException { ensureParentDirectoriesExist(); - return new OutputStreamWriter(path.newOutputStream(), fileManager.getEncodingName()); + return new OutputStreamWriter(Files.newOutputStream(path), fileManager.getEncodingName()); } @Override public long getLastModified() { try { - BasicFileAttributes attrs = Attributes.readBasicFileAttributes(path); - return attrs.lastModifiedTime().toMillis(); + return Files.getLastModifiedTime(path).toMillis(); } catch (IOException e) { return -1; } @@ -258,7 +256,7 @@ @Override public boolean delete() { try { - path.delete(); + Files.delete(path); return true; } catch (IOException e) { return false; @@ -267,7 +265,7 @@ public boolean isSameFile(PathFileObject other) { try { - return path.isSameFile(other.path); + return Files.isSameFile(path, other.path); } catch (IOException e) { return false; } @@ -296,8 +294,7 @@ private long size() { try { - BasicFileAttributes attrs = Attributes.readBasicFileAttributes(path); - return attrs.size(); + return Files.size(path); } catch (IOException e) { return -1; }
--- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -142,7 +142,7 @@ */ boolean allowAnnotations; - /** Switch: should we recognize automatic resource management? + /** Switch: should we recognize try-with-resources? */ boolean allowTWR; @@ -547,7 +547,7 @@ null); break; default: - assert false; + Assert.error(); } if (t == errorTree) t = F.at(pos).Erroneous(); @@ -724,7 +724,7 @@ topOpPos = posStack[top]; } } - assert top == 0; + Assert.check(top == 0); t = odStack[0]; if (t.getTag() == JCTree.PLUS) { @@ -1639,7 +1639,7 @@ * | WHILE ParExpression Statement * | DO Statement WHILE ParExpression ";" * | TRY Block ( Catches | [Catches] FinallyPart ) - * | TRY "(" ResourceSpecification ")" Block [Catches] [FinallyPart] + * | TRY "(" ResourceSpecification ";"opt ")" Block [Catches] [FinallyPart] * | SWITCH ParExpression "{" SwitchBlockStatementGroups "}" * | SYNCHRONIZED ParExpression Block * | RETURN [Expression] ";" @@ -2168,8 +2168,11 @@ JCVariableDecl variableDeclaratorId(JCModifiers mods, JCExpression type) { int pos = S.pos(); Name name = ident(); - if ((mods.flags & Flags.VARARGS) == 0) - type = bracketsOpt(type); + if ((mods.flags & Flags.VARARGS) != 0 && + S.token() == LBRACKET) { + log.error(S.pos(), "varargs.and.old.array.syntax"); + } + type = bracketsOpt(type); return toP(F.at(pos).VarDef(mods, name, type, null)); } @@ -2179,31 +2182,24 @@ ListBuffer<JCTree> defs = new ListBuffer<JCTree>(); defs.append(resource()); while (S.token() == SEMI) { - // All but last of multiple declarators subsume a semicolon + // All but last of multiple declarators must subsume a semicolon storeEnd(defs.elems.last(), S.endPos()); + int semiColonPos = S.pos(); S.nextToken(); + if (S.token() == RPAREN) { // Optional trailing semicolon + // after last resource + break; + } defs.append(resource()); } return defs.toList(); } - /** Resource = - * VariableModifiers Type VariableDeclaratorId = Expression - * | Expression + /** Resource = VariableModifiersOpt Type VariableDeclaratorId = Expression */ JCTree resource() { - int pos = S.pos(); - if (S.token() == FINAL || S.token() == MONKEYS_AT) { - return variableDeclaratorRest(pos, optFinal(0), parseType(), - ident(), true, null); - } else { - JCExpression t = term(EXPR | TYPE); - if ((lastmode & TYPE) != 0 && S.token() == IDENTIFIER) - return variableDeclaratorRest(pos, toP(F.at(pos).Modifiers(Flags.FINAL)), t, - ident(), true, null); - else - return t; - } + return variableDeclaratorRest(S.pos(), optFinal(Flags.FINAL), + parseType(), ident(), true, null); } /** CompilationUnit = [ { "@" Annotation } PACKAGE Qualident ";"] {ImportDeclaration} {TypeDeclaration} @@ -2569,6 +2565,12 @@ } else { pos = S.pos(); List<JCTypeParameter> typarams = typeParametersOpt(); + // if there are type parameters but no modifiers, save the start + // position of the method in the modifiers. + if (typarams.nonEmpty() && mods.pos == Position.NOPOS) { + mods.pos = pos; + storeEnd(mods, pos); + } Name name = S.name(); pos = S.pos(); JCExpression type;
--- a/src/share/classes/com/sun/tools/javac/parser/Scanner.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/parser/Scanner.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -138,7 +138,7 @@ source = fac.source; allowBinaryLiterals = source.allowBinaryLiterals(); allowHexFloats = source.allowHexFloats(); - allowUnderscoresInLiterals = source.allowBinaryLiterals(); + allowUnderscoresInLiterals = source.allowUnderscoresInLiterals(); } private static final boolean hexFloatsWork = hexFloatsWork(); @@ -445,7 +445,7 @@ */ private void scanHexFractionAndSuffix(boolean seendigit) { this.radix = 16; - assert ch == '.'; + Assert.check(ch == '.'); putChar(ch); scanChar(); skipIllegalUnderscores();
--- a/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -49,7 +49,6 @@ import javax.tools.JavaFileObject; import javax.tools.DiagnosticListener; -//308 import com.sun.source.util.AbstractTypeProcessor; import com.sun.source.util.TaskEvent; import com.sun.source.util.TaskListener; import com.sun.tools.javac.api.JavacTaskImpl; @@ -66,6 +65,7 @@ import com.sun.tools.javac.tree.*; import com.sun.tools.javac.tree.JCTree.*; import com.sun.tools.javac.util.Abort; +import com.sun.tools.javac.util.Assert; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Convert; import com.sun.tools.javac.util.FatalError; @@ -712,7 +712,6 @@ } if (matchedNames.size() > 0 || ps.contributed) { -//308 foundTypeProcessors = foundTypeProcessors || (ps.processor instanceof AbstractTypeProcessor); boolean processingResult = callProcessor(ps.processor, typeElements, renv); ps.contributed = true; ps.removeSupportedOptions(unmatchedProcessorOptions); @@ -1048,17 +1047,17 @@ Context next = new Context(); Options options = Options.instance(context); - assert options != null; + Assert.checkNonNull(options); next.put(Options.optionsKey, options); PrintWriter out = context.get(Log.outKey); - assert out != null; + Assert.checkNonNull(out); next.put(Log.outKey, out); final boolean shareNames = true; if (shareNames) { Names names = Names.instance(context); - assert names != null; + Assert.checkNonNull(names); next.put(Names.namesKey, names); } @@ -1071,18 +1070,18 @@ next.put(TaskListener.class, tl); JavaFileManager jfm = context.get(JavaFileManager.class); - assert jfm != null; + Assert.checkNonNull(jfm); next.put(JavaFileManager.class, jfm); if (jfm instanceof JavacFileManager) { ((JavacFileManager)jfm).setContext(next); } Names names = Names.instance(context); - assert names != null; + Assert.checkNonNull(names); next.put(Names.namesKey, names); Keywords keywords = Keywords.instance(context); - assert(keywords != null); + Assert.checkNonNull(keywords); next.put(Keywords.keywordsKey, keywords); JavaCompiler oldCompiler = JavaCompiler.instance(context); @@ -1241,7 +1240,7 @@ for (JCTree node : unit.defs) { if (node.getTag() == JCTree.CLASSDEF) { ClassSymbol sym = ((JCClassDecl) node).sym; - assert sym != null; + Assert.checkNonNull(sym); classes = classes.prepend(sym); } }
--- a/src/share/classes/com/sun/tools/javac/resources/compiler.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/resources/compiler.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2011, 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 @@ -23,257 +23,437 @@ # questions. # +# Messages in this file which use "placeholders" for values (e.g. {0}, {1}) +# are preceded by a stylized comment describing the type of the corresponding +# values. +# The types currently in use are +# +# boolean true or false +# file name the name of an input file; e.g. MyFile.java +# message segment a sub-message; see compiler.misc.* +# modifier a Java modifier; e.g. public, private, protected +# name a name, typically a Java identifier +# number an integer +# option name the name of a command line option +# source version a source version number, such as 1.5, 1.6, 1.7 +# string a general string +# symbol the name of a declared type +# symbol kind a description of the kind of a declaration; see compiler.misc.kindname.* +# token the name of a non-terminal in source code; see compiler.misc.token.* +# type a Java type; e.g. int, X, X<T> +# unused the value is not used in this message +# +# list of X a comma-separated list of items; e.g. list of type +# X or Y alternation; e.g. message segment or type +# set of X a comma-separated collection of items; e.g. set of modifier +# +# These may be composed: e.g. list of type or message segment +# +# These comments are verified by the jtreg test test/tools/javac/diags/MessageInfo, +# using info derived from the collected set of examples in test/tools/javac/diags/examples. +# MessageInfo can also be run as a standalone utility providing more facilities +# for manipulating this file. For more details, see MessageInfo.java. + ## ## errors ## +# 0: symbol compiler.err.abstract.cant.be.instantiated=\ {0} is abstract; cannot be instantiated + compiler.err.abstract.meth.cant.have.body=\ abstract methods cannot have a body + compiler.err.already.annotated=\ {0} {1} has already been annotated + +# 0: symbol, 1: symbol compiler.err.already.defined=\ {0} is already defined in {1} + +# 0: string compiler.err.already.defined.single.import=\ {0} is already defined in a single-type import + +# 0: string compiler.err.already.defined.static.single.import=\ {0} is already defined in a static single-type import + compiler.err.already.defined.this.unit=\ {0} is already defined in this compilation unit + +# 0: type, 1: list of name compiler.err.annotation.missing.default.value=\ annotation {0} is missing value for the attribute {1} + +# 0: type, 1: list of name compiler.err.annotation.missing.default.value.1=\ annotation {0} is missing values for attributes {1} + +# 0: type compiler.err.annotation.not.valid.for.type=\ annotation not valid for a value of type {0} + compiler.err.annotation.type.not.applicable=\ annotation type not applicable to this kind of declaration + compiler.err.annotation.value.must.be.annotation=\ annotation value must be an annotation + compiler.err.annotation.value.must.be.class.literal=\ annotation value must be a class literal + compiler.err.annotation.value.must.be.name.value=\ annotation values must be of the form ''name=value'' + compiler.err.annotation.value.not.allowable.type=\ annotation value not of an allowable type + compiler.err.anon.class.impl.intf.no.args=\ anonymous class implements interface; cannot have arguments + compiler.err.anon.class.impl.intf.no.typeargs=\ anonymous class implements interface; cannot have type arguments + compiler.err.anon.class.impl.intf.no.qual.for.new=\ anonymous class implements interface; cannot have qualifier for new + +# 0: symbol, 1: symbol, 2: symbol compiler.err.array.and.varargs=\ cannot declare both {0} and {1} in {2} + compiler.err.array.dimension.missing=\ array dimension missing + +# 0: type compiler.err.array.req.but.found=\ array required, but {0} found compiler.err.assignment.from.super-bound=\ assigning from wildcard {0} + compiler.err.assignment.to.extends-bound=\ assigning to wildcard {0} + compiler.err.attribute.value.must.be.constant=\ attribute value must be constant compiler.err.break.outside.switch.loop=\ break outside switch or loop +# 0: name compiler.err.call.must.be.first.stmt.in.ctor=\ call to {0} must be first statement in constructor + compiler.err.cant.apply.symbol=\ {0} {1} in {4} {5} cannot be applied to given types\n\ required: {2}\n\ found: {3} + +# 0: symbol kind, 1: name, 2: list of type or message segment, 3: list of type or message segment, 4: symbol kind, 5: type, 6: message segment compiler.err.cant.apply.symbol.1=\ {0} {1} in {4} {5} cannot be applied to given types;\n\ required: {2}\n\ found: {3}\n\ reason: {6} + +# 0: symbol kind, 1: name, 2: list of type compiler.err.cant.apply.symbols=\ no suitable {0} found for {1}({2}) + +# 0: symbol compiler.err.cant.assign.val.to.final.var=\ cannot assign a value to final variable {0} + +# 0: type compiler.err.cant.deref=\ {0} cannot be dereferenced + compiler.err.cant.extend.intf.annotation=\ ''extends'' not allowed for @interfaces + +# 0: symbol compiler.err.cant.inherit.from.final=\ cannot inherit from final {0} + +# 0: symbol compiler.err.cant.ref.before.ctor.called=\ cannot reference {0} before supertype constructor has been called + compiler.err.cant.ret.val.from.meth.decl.void=\ cannot return a value from method whose result type is void + compiler.err.cant.select.static.class.from.param.type=\ cannot select a static class from a parameterized type + +# 0: symbol, 1: string, 2: string compiler.err.cant.inherit.diff.arg=\ {0} cannot be inherited with different arguments: <{1}> and <{2}> + compiler.err.catch.without.try=\ ''catch'' without ''try'' + +# 0: symbol kind, 1: symbol compiler.err.clash.with.pkg.of.same.name=\ - {0} clashes with package of same name + {0} {1} clashes with package of same name + compiler.err.const.expr.req=\ constant expression required -compiler.err.enum.const.req=\ - unqualified enumeration constant name required + compiler.err.cont.outside.loop=\ continue outside of loop + +# 0: symbol compiler.err.cyclic.inheritance=\ cyclic inheritance involving {0} + compiler.err.cyclic.annotation.element=\ cyclic annotation element type + +# 0: unused compiler.err.call.to.super.not.allowed.in.enum.ctor=\ call to super not allowed in enum constructor + +# 0: type compiler.err.no.superclass=\ {0} has no superclass -compiler.warn.type.parameter.on.polymorphic.signature=\ - change obsolete notation for MethodHandle invocations from x.<T>invoke(y) to (T)x.invoke(y) -compiler.warn.wrong.target.for.polymorphic.signature.definition=\ +compiler.err.wrong.target.for.polymorphic.signature.definition=\ MethodHandle API building requires -target 7 runtimes or better; current is -target {0} +# 0: symbol, 1: type, 2: symbol, 3: type, 4: unused compiler.err.concrete.inheritance.conflict=\ methods {0} from {1} and {2} from {3} are inherited with the same signature compiler.err.default.allowed.in.intf.annotation.member=\ default value only allowed in an @interface member + +# 0: symbol compiler.err.doesnt.exist=\ package {0} does not exist + compiler.err.duplicate.annotation=\ duplicate annotation + +# 0: name, 1: type compiler.err.duplicate.annotation.member.value=\ duplicate annotation member value {0} in {1} + +# 0: name compiler.err.duplicate.class=\ duplicate class: {0} + compiler.err.duplicate.case.label=\ duplicate case label + compiler.err.duplicate.default.label=\ duplicate default label compiler.err.else.without.if=\ ''else'' without ''if'' + compiler.err.empty.char.lit=\ empty character literal + +# 0: symbol compiler.err.encl.class.required=\ an enclosing instance that contains {0} is required + compiler.err.enum.annotation.must.be.enum.constant=\ an enum annotation value must be an enum constant compiler.err.enum.cant.be.instantiated=\ enum types may not be instantiated + compiler.err.enum.label.must.be.unqualified.enum=\ an enum switch case label must be the unqualified name of an enumeration constant + compiler.err.enum.no.subclassing=\ classes cannot directly extend java.lang.Enum + compiler.err.enum.types.not.extensible=\ enum types are not extensible + compiler.err.enum.no.finalize=\ enums cannot have finalize methods + +# 0: file name, 1: string compiler.err.error.reading.file=\ error reading {0}; {1} + +# 0: type compiler.err.except.already.caught=\ exception {0} has already been caught + +# 0: type compiler.err.except.never.thrown.in.try=\ exception {0} is never thrown in body of corresponding try statement +# 0: symbol compiler.err.final.parameter.may.not.be.assigned=\ final parameter {0} may not be assigned + +# 0: symbol compiler.err.try.resource.may.not.be.assigned=\ auto-closeable resource {0} may not be assigned + +# 0: symbol compiler.err.multicatch.parameter.may.not.be.assigned=\ multi-catch parameter {0} may not be assigned + compiler.err.finally.without.try=\ ''finally'' without ''try'' + +# 0: type, 1: message segment compiler.err.foreach.not.applicable.to.type=\ - foreach not applicable to expression type + for-each not applicable to expression type\n\ + required: {1}\n\ + found: {0} + compiler.err.fp.number.too.large=\ floating point number too large + compiler.err.fp.number.too.small=\ floating point number too small compiler.err.generic.array.creation=\ generic array creation + compiler.err.generic.throwable=\ a generic class may not extend java.lang.Throwable +# 0: symbol compiler.err.icls.cant.have.static.decl=\ - inner classes cannot have static declarations + Illegal static declaration in inner class {0}\n\ + modifier \''static\'' is only allowed in constant variable declarations + +# 0: string compiler.err.illegal.char=\ illegal character: \\{0} + compiler.err.illegal.char.for.encoding=\ unmappable character for encoding {0} + +# 0: set of modifier, 1: set of modifier compiler.err.illegal.combination.of.modifiers=\ illegal combination of modifiers: {0} and {1} + compiler.err.illegal.enum.static.ref=\ illegal reference to static field from initializer + compiler.err.illegal.esc.char=\ illegal escape character + compiler.err.illegal.forward.ref=\ illegal forward reference + +# 0: symbol compiler.warn.forward.ref=\ reference to variable ''{0}'' before it has been initialized + compiler.err.illegal.self.ref=\ self-reference in initializer + +# 0: symbol compiler.warn.self.ref=\ self-reference in initializer of variable ''{0}'' + compiler.err.illegal.generic.type.for.instof=\ illegal generic type for instanceof + +# 0: type compiler.err.illegal.initializer.for.type=\ illegal initializer for {0} + compiler.err.illegal.line.end.in.char.lit=\ illegal line end in character literal + compiler.err.illegal.nonascii.digit=\ illegal non-ASCII digit + compiler.err.illegal.underscore=\ illegal underscore + +# 0: symbol compiler.err.illegal.qual.not.icls=\ illegal qualifier; {0} is not an inner class + compiler.err.illegal.start.of.expr=\ illegal start of expression + compiler.err.illegal.start.of.type=\ illegal start of type + compiler.err.illegal.unicode.esc=\ illegal unicode escape + +# 0: symbol compiler.err.import.requires.canonical=\ import requires canonical name for {0} + compiler.err.improperly.formed.type.param.missing=\ improperly formed type, some parameters are missing + compiler.err.improperly.formed.type.inner.raw.param=\ - improperly formed type, type parameters given on a raw type + improperly formed type, type arguments given on a raw type + +# 0: type, 1: type compiler.err.incomparable.types=\ incomparable types: {0} and {1} + +# 0: number compiler.err.int.number.too.large=\ integer number too large: {0} + compiler.err.internal.error.cant.instantiate=\ internal error; cannot instantiate {0} at {1} to ({2}) + compiler.err.intf.annotation.members.cant.have.params=\ @interface members may not have parameters + compiler.err.intf.annotation.cant.have.type.params=\ @interface may not have type parameters + compiler.err.intf.annotation.members.cant.have.type.params=\ @interface members may not have type parameters + +# 0: symbol, 1: type compiler.err.intf.annotation.member.clash=\ @interface member clashes with method ''{0}'' in {1} + compiler.err.intf.expected.here=\ interface expected here + compiler.err.intf.meth.cant.have.body=\ interface methods cannot have body + compiler.err.invalid.annotation.member.type=\ invalid type for annotation member + compiler.err.invalid.binary.number=\ binary numbers must contain at least one binary digit + compiler.err.invalid.hex.number=\ hexadecimal numbers must contain at least one hexadecimal digit + compiler.err.invalid.meth.decl.ret.type.req=\ invalid method declaration; return type required +compiler.err.varargs.and.old.array.syntax=\ + legacy array notation not allowed on variable-arity parameter + +# 0: name compiler.err.label.already.in.use=\ label {0} already in use + +# 0: symbol compiler.err.local.var.accessed.from.icls.needs.final=\ local variable {0} is accessed from within inner class; needs to be declared final + compiler.err.local.enum=\ enum types must not be local + compiler.err.cannot.create.array.with.type.arguments=\ cannot create array with type arguments @@ -284,82 +464,140 @@ # compiler.err.limit.code=\ code too large + compiler.err.limit.code.too.large.for.try.stmt=\ code too large for try statement + compiler.err.limit.dimensions=\ array type has too many dimensions + compiler.err.limit.locals=\ too many local variables + compiler.err.limit.parameters=\ too many parameters + compiler.err.limit.pool=\ too many constants + compiler.err.limit.pool.in.class=\ too many constants in class {0} + compiler.err.limit.stack=\ code requires too much stack + compiler.err.limit.string=\ constant string too long + compiler.err.limit.string.overflow=\ UTF8 representation for string \"{0}...\" is too long for the constant pool compiler.err.malformed.fp.lit=\ malformed floating point literal + compiler.err.method.does.not.override.superclass=\ method does not override or implement a method from a supertype + compiler.err.missing.meth.body.or.decl.abstract=\ missing method body, or declare abstract + compiler.err.missing.ret.stmt=\ missing return statement + compiler.err.missing.ret.val=\ missing return value + +# 0: set of modifier compiler.err.mod.not.allowed.here=\ modifier {0} not allowed here + compiler.err.intf.not.allowed.here=\ interface not allowed here + compiler.err.enums.must.be.static=\ enum declarations allowed only in static contexts +# 0: symbol, 1: symbol compiler.err.name.clash.same.erasure=\ name clash: {0} and {1} have the same erasure + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol, 4: unused, 5: unused compiler.err.name.clash.same.erasure.no.override=\ name clash: {0} in {1} and {2} in {3} have the same erasure, yet neither overrides the other + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol, 4: symbol, 5: symbol +compiler.err.name.clash.same.erasure.no.override.1=\ + name clash: {0} in {1} overrides a method whose erasure is the same as another method, yet neither overrides the other\n\ + first method: {2} in {3}\n\ + second method: {4} in {5} + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol +compiler.err.name.clash.same.erasure.no.hide=\ + name clash: {0} in {1} and {2} in {3} have the same erasure, yet neither hides the other + compiler.err.name.reserved.for.internal.use=\ {0} is reserved for internal use + compiler.err.native.meth.cant.have.body=\ native methods cannot have a body + +# 0: type, 1: type compiler.err.neither.conditional.subtype=\ -incompatible types for ?: neither is a subtype of the other\n\ -second operand: {0}\n\ -third operand : {1} + incompatible types for ?: neither is a subtype of the other\n\ + second operand: {0}\n\ + third operand : {1} + compiler.err.new.not.allowed.in.annotation=\ ''new'' not allowed in an annotation + compiler.err.no.annotation.member=\ no annotation member {0} in {1} + compiler.err.no.encl.instance.of.type.in.scope=\ no enclosing instance of type {0} is in scope + compiler.err.no.intf.expected.here=\ no interface expected here + compiler.err.no.match.entry=\ {0} has no match in entry in {1}; required {2} + compiler.err.not.annotation.type=\ {0} is not an annotation type + +# 0: symbol, 1: symbol compiler.err.not.def.access.class.intf.cant.access=\ {0} in {1} is defined in an inaccessible class or interface + +# 0: symbol, 1: symbol compiler.err.not.def.public.cant.access=\ {0} is not public in {1}; cannot be accessed from outside package + +# 0: name compiler.err.not.loop.label=\ not a loop label: {0} + compiler.err.not.stmt=\ not a statement + +# 0: symbol compiler.err.not.encl.class=\ not an enclosing class: {0} +# 0: name, 1: type, 2: unused compiler.err.operator.cant.be.applied=\ - operator {0} cannot be applied to {1} + bad operand type {1} for unary operator ''{0}'' + +# 0: name, 1: type, 2: type +compiler.err.operator.cant.be.applied.1=\ + bad operand types for binary operator ''{0}''\n\ + first type: {1}\n\ + second type: {2} compiler.err.pkg.annotations.sb.in.package-info.java=\ package annotations should be in file package-info.java + +# 0: symbol compiler.err.pkg.clashes.with.class.of.same.name=\ package {0} clashes with class of same name @@ -369,18 +607,21 @@ # Errors related to annotation processing compiler.err.proc.cant.access=\ -cannot access {0}\n\ -{1}\n\ -Consult the following stack trace for details.\n\ -{2} - + cannot access {0}\n\ + {1}\n\ + Consult the following stack trace for details.\n\ + {2} + +# 0: string compiler.err.proc.cant.find.class=\ Could not find class file for ''{0}''. # Print a client-generated error message; assumed to be localized, no translation required +# 0: string compiler.err.proc.messager=\ {0} +# 0: list of string compiler.err.proc.no.explicit.annotation.processing.requested=\ Class names, ''{0}'', are only accepted if annotation processing is explicitly requested @@ -391,15 +632,18 @@ compiler.err.proc.processor.bad.option.name=\ Bad option name ''{0}'' provided by processor ''{1}'' +# 0: string compiler.err.proc.processor.cant.instantiate=\ Could not instantiate an instance of processor ''{0}'' compiler.err.proc.processor.constructor.error=\ Exception thrown while constructing Processor object: {0} +# 0: string compiler.err.proc.processor.not.found=\ Annotation processor ''{0}'' not found +# 0: string compiler.err.proc.processor.wrong.type=\ Annotation processor ''{0}'' does not implement javax.annotation.processing.Processor @@ -412,126 +656,201 @@ compiler.err.proc.cant.create.loader=\ Could not create class loader for annotation processors: {0} +# 0: unused compiler.err.qualified.new.of.static.class=\ qualified new of static class compiler.err.recursive.ctor.invocation=\ recursive constructor invocation + +# 0: name, 1: symbol kind, 2: symbol, 3: symbol, 4: symbol kind, 5: symbol, 6: symbol compiler.err.ref.ambiguous=\ reference to {0} is ambiguous, both {1} {2} in {3} and {4} {5} in {6} match + compiler.err.repeated.annotation.target=\ repeated annotation target + compiler.err.repeated.interface=\ repeated interface + compiler.err.repeated.modifier=\ repeated modifier + +# 0: symbol, 1: set of modifier, 2: symbol compiler.err.report.access=\ {0} has {1} access in {2} + compiler.err.ret.outside.meth=\ return outside method compiler.err.signature.doesnt.match.supertype=\ signature does not match {0}; incompatible supertype + compiler.err.signature.doesnt.match.intf=\ signature does not match {0}; incompatible interfaces + +# 0: symbol, 1: symbol, 2: symbol compiler.err.does.not.override.abstract=\ {0} is not abstract and does not override abstract method {1} in {2} + compiler.err.source.cant.overwrite.input.file=\ error writing source; cannot overwrite input file {0} + compiler.err.stack.sim.error=\ Internal error: stack sim error on {0} + compiler.err.static.imp.only.classes.and.interfaces=\ static import only from classes and interfaces + compiler.err.string.const.req=\ constant string expression required + +# 0: symbol, 1: symbol compiler.err.synthetic.name.conflict=\ the symbol {0} conflicts with a compiler-synthesized symbol in {1} + +# 0: symbol, 1: symbol compiler.warn.synthetic.name.conflict=\ the symbol {0} conflicts with a compiler-synthesized symbol in {1} compiler.err.throws.not.allowed.in.intf.annotation=\ throws clause not allowed in @interface members + compiler.err.try.without.catch.or.finally=\ ''try'' without ''catch'' or ''finally'' + compiler.err.try.without.catch.finally.or.resource.decls=\ ''try'' without ''catch'', ''finally'' or resource declarations + +# 0: symbol compiler.err.type.doesnt.take.params=\ type {0} does not take parameters + compiler.err.type.var.cant.be.deref=\ cannot select from a type variable + compiler.err.type.var.may.not.be.followed.by.other.bounds=\ a type variable may not be followed by other bounds + compiler.err.type.var.more.than.once=\ type variable {0} occurs more than once in result type of {1}; cannot be left uninstantiated + compiler.err.type.var.more.than.once.in.result=\ type variable {0} occurs more than once in type of {1}; cannot be left uninstantiated + +# 0: type, 1: type, 2: string compiler.err.types.incompatible.diff.ret=\ types {0} and {1} are incompatible; both define {2}, but with unrelated return types compiler.err.unclosed.char.lit=\ unclosed character literal + compiler.err.unclosed.comment=\ unclosed comment + compiler.err.unclosed.str.lit=\ unclosed string literal + compiler.err.unknown.enum.constant=\ in class file {0}: unknown enum constant {1}.{2} + +# 0: name compiler.err.unsupported.encoding=\ unsupported encoding: {0} + compiler.err.io.exception=\ error reading source file: {0} + +# 0: name compiler.err.undef.label=\ undefined label: {0} + compiler.err.undetermined.type=\ - type parameters of {0} cannot be determined + cannot infer type arguments for {0} + +# 0: type, 1: message segment compiler.err.undetermined.type.1=\ - type parameters of {0} cannot be determined; {1} + cannot infer type arguments for {0};\n\ + reason: {1} + +# 0: list of type, 1: message segment compiler.err.invalid.inferred.types=\ invalid inferred types for {0}; {1} + +# 0: message segment, 1: unused compiler.err.cant.apply.diamond=\ cannot infer type arguments for {0} + +# 0: message segment, 1: message segment compiler.err.cant.apply.diamond.1=\ cannot infer type arguments for {0};\n\ reason: {1} + compiler.err.unreachable.stmt=\ unreachable statement + compiler.err.initializer.must.be.able.to.complete.normally=\ initializer must be able to complete normally + +# 0: type compiler.err.unreported.exception.need.to.catch.or.throw=\ unreported exception {0}; must be caught or declared to be thrown + +# 0: type compiler.err.unreported.exception.default.constructor=\ unreported exception {0} in default constructor + compiler.err.unsupported.cross.fp.lit=\ hexadecimal floating-point literals are not supported on this VM + compiler.err.void.not.allowed.here=\ ''void'' type not allowed here +# 0: string compiler.err.wrong.number.type.args=\ wrong number of type arguments; required {0} +# 0: symbol compiler.err.var.might.already.be.assigned=\ variable {0} might already have been assigned + +# 0: symbol compiler.err.var.might.not.have.been.initialized=\ variable {0} might not have been initialized + +# 0: symbol compiler.err.var.might.be.assigned.in.loop=\ variable {0} might be assigned in loop +# 0: symbol, 1: message segment compiler.err.varargs.invalid.trustme.anno=\ Invalid {0} annotation. {1} + +# 0: type compiler.misc.varargs.trustme.on.reifiable.varargs=\ Varargs element type {0} is reifiable. + +# 0: symbol compiler.misc.varargs.trustme.on.non.varargs.meth=\ Method {0} is not a varargs method. + +# 0: symbol compiler.misc.varargs.trustme.on.virtual.varargs=\ Instance method {0} is not final. +# 0: type, 1: kind, 2: symbol +compiler.misc.inaccessible.varargs.type=\ + formal varargs element type {0} is not accessible from {1} {2} + # In the following string, {1} will always be the detail message from # java.io.IOException. +# 0: symbol, 1: string compiler.err.class.cant.write=\ error while writing {0}: {1} # In the following string, {0} is the name of the class in the Java source. # It really should be used two times.. +# 0: name compiler.err.class.public.should.be.in.file=\ class {0} is public, should be declared in a file named {0}.java @@ -550,12 +869,16 @@ compiler.misc.fatal.err.no.java.lang=\ Fatal Error: Unable to find package java.lang in classpath or bootclasspath + compiler.misc.fatal.err.cant.locate.meth=\ Fatal Error: Unable to find method {0} + compiler.misc.fatal.err.cant.locate.field=\ Fatal Error: Unable to find field {0} + compiler.misc.fatal.err.cant.locate.ctor=\ Fatal Error: Unable to find constructor for {0} + compiler.misc.fatal.err.cant.close.loader=\ Fatal Error: Cannot close class loader for annotation processors @@ -567,10 +890,15 @@ compiler.misc.source.unavailable=\ (source unavailable) + compiler.misc.base.membership=\ all your base class are belong to us + +# 0: string, 1: string, 2: boolean compiler.misc.x.print.processor.info=\ Processor {0} matches {1} and returns {2}. + +# 0: number, 1: string, 2: set of symbol, 3: boolean compiler.misc.x.print.rounds=\ Round {0}:\n\tinput files: {1}\n\tannotations: {2}\n\tlast round: {3} @@ -581,61 +909,84 @@ compiler.note.note=\ Note:\u0020 +# 0: file name compiler.note.deprecated.filename=\ {0} uses or overrides a deprecated API. + compiler.note.deprecated.plural=\ Some input files use or override a deprecated API. + # The following string may appear after one of the above deprecation # messages. compiler.note.deprecated.recompile=\ Recompile with -Xlint:deprecation for details. +# 0: file name compiler.note.deprecated.filename.additional=\ {0} has additional uses or overrides of a deprecated API. + compiler.note.deprecated.plural.additional=\ Some input files additionally use or override a deprecated API. +# 0: file name compiler.note.unchecked.filename=\ {0} uses unchecked or unsafe operations. + compiler.note.unchecked.plural=\ Some input files use unchecked or unsafe operations. + # The following string may appear after one of the above deprecation # messages. compiler.note.unchecked.recompile=\ Recompile with -Xlint:unchecked for details. +# 0: file name compiler.note.unchecked.filename.additional=\ {0} has additional unchecked or unsafe operations. + compiler.note.unchecked.plural.additional=\ Some input files additionally use unchecked or unsafe operations. +# 0: file name compiler.note.sunapi.filename=\ {0} uses internal proprietary API that may be removed in a future release. + compiler.note.sunapi.plural=\ Some input files use internal proprietary API that may be removed in a future release. + # The following string may appear after one of the above sunapi messages. compiler.note.sunapi.recompile=\ Recompile with -Xlint:sunapi for details. +# 0: file name compiler.note.sunapi.filename.additional=\ {0} uses additional internal proprietary API that may be removed in a future release. + compiler.note.sunapi.plural.additional=\ Some input files additionally use internal proprietary API that may be removed in a future release. # Notes related to annotation processing # Print a client-generated note; assumed to be localized, no translation required +# 0: string compiler.note.proc.messager=\ {0} ##### +# 0: number compiler.misc.count.error=\ {0} error + +# 0: number compiler.misc.count.error.plural=\ {0} errors + +# 0: number compiler.misc.count.warn=\ {0} warning + +# 0: number compiler.misc.count.warn.plural=\ {0} warnings @@ -644,38 +995,53 @@ ## extra output when using -verbose (JavaCompiler) +# 0: symbol compiler.misc.verbose.checking.attribution=\ [checking {0}] + +# 0: string compiler.misc.verbose.parsing.done=\ [parsing completed {0}ms] + +# 0: file name compiler.misc.verbose.parsing.started=\ [parsing started {0}] + +# 0: string compiler.misc.verbose.total=\ [total {0}ms] + +# 0: file name compiler.misc.verbose.wrote.file=\ [wrote {0}] ## extra output when using -verbose (Retro) compiler.misc.verbose.retro=\ [retrofitting {0}] + compiler.misc.verbose.retro.with=\ \tretrofitting {0} with {1} + compiler.misc.verbose.retro.with.list=\ \tretrofitting {0} with type parameters {1}, supertype {2}, interfaces {3} ## extra output when using -verbose (code/ClassReader) +# 0: string compiler.misc.verbose.loading=\ [loading {0}] +# 0: string compiler.misc.verbose.sourcepath=\ [search path for source files: {0}] +# 0: string compiler.misc.verbose.classpath=\ [search path for class files: {0}] ## extra output when using -checkclassfile (code/ClassReader) compiler.misc.ccf.found.later.version=\ class file has later version than expected: {0} + compiler.misc.ccf.unrecognized.attribute=\ unrecognized attribute: {0} @@ -695,103 +1061,135 @@ ## Warning messages may also include the following prefix to identify a ## lint option +# 0: option name compiler.warn.lintOption=\ [{0}]\u0020 +# 0: symbol compiler.warn.constant.SVUID=\ serialVersionUID must be constant in class {0} +# 0: file name compiler.warn.dir.path.element.not.found=\ bad path element "{0}": no such directory compiler.warn.finally.cannot.complete=\ finally clause cannot complete normally +# 0: symbol, 1: symbol compiler.warn.has.been.deprecated=\ {0} in {1} has been deprecated +# 0: symbol compiler.warn.sun.proprietary=\ {0} is internal proprietary API and may be removed in a future release compiler.warn.illegal.char.for.encoding=\ unmappable character for encoding {0} +# 0: symbol compiler.warn.improper.SVUID=\ serialVersionUID must be declared static final in class {0} +# 0: type, 1: type compiler.warn.inexact.non-varargs.call=\ -non-varargs call of varargs method with inexact argument type for last parameter;\n\ -cast to {0} for a varargs call\n\ -cast to {1} for a non-varargs call and to suppress this warning - + non-varargs call of varargs method with inexact argument type for last parameter;\n\ + cast to {0} for a varargs call\n\ + cast to {1} for a non-varargs call and to suppress this warning + +# 0: symbol compiler.warn.long.SVUID=\ serialVersionUID must be of type long in class {0} +# 0: symbol compiler.warn.missing.SVUID=\ serializable class {0} has no definition of serialVersionUID +# 0: message segment compiler.warn.override.varargs.missing=\ {0}; overridden method has no ''...'' + +# 0: message segment compiler.warn.override.varargs.extra=\ {0}; overriding method is missing ''...'' + compiler.warn.override.bridge=\ {0}; overridden method is a bridge method +# 0: symbol compiler.warn.pkg-info.already.seen=\ a package-info.java file has already been seen for package {0} +# 0: file name compiler.warn.path.element.not.found=\ bad path element "{0}": no such file or directory compiler.warn.possible.fall-through.into.case=\ possible fall-through into case +# 0: type compiler.warn.redundant.cast=\ redundant cast to {0} +# 0: number compiler.warn.position.overflow=\ Position encoding overflows at line {0} +# 0: file name, 1: number, 2: number compiler.warn.big.major.version=\ {0}: major version {1} is newer than {2}, the highest major version supported by this compiler.\n\ It is recommended that the compiler be upgraded. +# 0: symbol kind, 1: symbol compiler.warn.static.not.qualified.by.type=\ static {0} should be qualified by type name, {1}, instead of by an expression +# 0: string compiler.warn.source.no.bootclasspath=\ bootstrap class path not set in conjunction with -source {0} +# 0: name, 1: number, 2: number, 3: number, 4: number compiler.warn.future.attr=\ {0} attribute introduced in version {1}.{2} class files is ignored in version {3}.{4} class files # Warnings related to annotation processing +# 0: name compiler.warn.proc.package.does.not.exist=\ package {0} does not exist + +# 0: name compiler.warn.proc.file.reopening=\ Attempt to create a file for ''{0}'' multiple times +# 0: name compiler.warn.proc.type.already.exists=\ A file for type ''{0}'' already exists on the sourcepath or classpath +# 0: name compiler.warn.proc.type.recreate=\ Attempt to create a file for type ''{0}'' multiple times +# 0: string compiler.warn.proc.illegal.file.name=\ Cannot create file for illegal name ''{0}''. +# 0: string, 1: string compiler.warn.proc.suspicious.class.name=\ Creating file for a type whose name ends in {1}: ''{0}'' +# 0: name compiler.warn.proc.file.create.last.round=\ File for type ''{0}'' created in the last round will not be subject to annotation processing. +# 0: string, 1: string compiler.warn.proc.malformed.supported.string=\ Malformed string ''{0}'' for a supported annotation type returned by processor ''{1}'' +# 0: set of string compiler.warn.proc.annotations.without.processors=\ No processor claimed any of these annotations: {0} +# 0: source version, 1: string, 2: string compiler.warn.proc.processor.incompatible.source.version=\ Supported source version ''{0}'' from annotation processor ''{1}'' less than -source ''{2}'' @@ -799,46 +1197,62 @@ Annotation processing without compilation requested but no processors were found. compiler.warn.proc.use.implicit=\ -Implicitly compiled files were not subject to annotation processing.\n\ -Use -implicit to specify a policy for implicit compilation. + Implicitly compiled files were not subject to annotation processing.\n\ + Use -implicit to specify a policy for implicit compilation. compiler.warn.proc.use.proc.or.implicit=\ -Implicitly compiled files were not subject to annotation processing.\n\ -Use -proc:none to disable annotation processing or -implicit to specify a policy for implicit compilation. + Implicitly compiled files were not subject to annotation processing.\n\ + Use -proc:none to disable annotation processing or -implicit to specify a policy for implicit compilation. # Print a client-generated warning; assumed to be localized, no translation required +# 0: string compiler.warn.proc.messager=\ {0} +# 0: set of name compiler.warn.proc.unclosed.type.files=\ Unclosed files for the types ''{0}''; these types will not undergo annotation processing +# 0: string compiler.warn.proc.unmatched.processor.options=\ The following options were not recognized by any processor: ''{0}'' compiler.warn.try.explicit.close.call=\ explicit call to close() on an auto-closeable resource + +# 0: symbol compiler.warn.try.resource.not.referenced=\ auto-closeable resource {0} is never referenced in body of corresponding try statement + compiler.warn.unchecked.assign=\ unchecked assignment: {0} to {1} + +# 0: symbol, 1: type compiler.warn.unchecked.assign.to.var=\ unchecked assignment to variable {0} as member of raw type {1} + +# 0: symbol, 1: type compiler.warn.unchecked.call.mbr.of.raw.type=\ unchecked call to {0} as a member of the raw type {1} + compiler.warn.unchecked.cast.to.type=\ unchecked cast to type {0} + +# 0: symbol kind, 1: name, 2: list of type, 3: list of type, 4: symbol kind, 5: symbol compiler.warn.unchecked.meth.invocation.applied=\ unchecked method invocation: {0} {1} in {4} {5} is applied to given types\n\ required: {2}\n\ found: {3} +# 0: type compiler.warn.unchecked.generic.array.creation=\ unchecked generic array creation for varargs parameter of type {0} +# 0: type compiler.warn.unchecked.varargs.non.reifiable.type=\ Possible heap pollution from parameterized vararg type {0} +# 0: symbol compiler.warn.varargs.unsafe.use.varargs.param=\ Varargs method could cause heap pollution from non-reifiable varargs parameter {0} @@ -863,17 +1277,22 @@ compiler.warn.annotation.method.not.found.reason=\ Cannot find annotation method ''{1}()'' in type ''{0}'': {2} +# 0: type, 1: type compiler.warn.raw.class.use=\ found raw type: {0}\n\ - missing type parameters for generic class {1} - + missing type arguments for generic class {1} + +# 0: unused, 1: unused compiler.warn.diamond.redundant.args=\ redundant type arguments in new expression (use diamond operator instead). + +# 0: type, 1: type compiler.warn.diamond.redundant.args.1=\ redundant type arguments in new expression (use diamond operator instead).\n\ explicit: {0}\n\ inferred: {1} +# 0: symbol, 1: message segment compiler.warn.varargs.redundant.trustme.anno=\ Redundant {0} annotation. {1} @@ -883,20 +1302,28 @@ ## be named as JLS3 calls them when translated to the appropriate language. compiler.misc.token.identifier=\ <identifier> + compiler.misc.token.character=\ <character> + compiler.misc.token.string=\ <string> + compiler.misc.token.integer=\ <integer> + compiler.misc.token.long-integer=\ <long integer> + compiler.misc.token.float=\ <float> + compiler.misc.token.double=\ <double> + compiler.misc.token.bad-symbol=\ <bad symbol> + compiler.misc.token.end-of-input=\ <end of input> @@ -909,10 +1336,15 @@ ## 6. an operator (JLS3.12) ## ## This is the only place these tokens will be used. +# 0: token compiler.err.expected=\ {0} expected + +# 0: token, 1: token compiler.err.expected2=\ {0} or {1} expected + +# 0: token, 1: token, 2: token compiler.err.expected3=\ {0}, {1}, or {2} expected @@ -924,12 +1356,15 @@ ''.class'' expected ## The argument to this string will always be either 'case' or 'default'. +# 0: token compiler.err.orphaned=\ orphaned {0} +# 0: name compiler.misc.anonymous.class=\ <anonymous {0}> +# 0: name, 1: type compiler.misc.type.captureof=\ capture#{0} of {1} @@ -944,61 +1379,75 @@ ##### +# 0: symbol, 1: message segment compiler.err.cant.access=\ -cannot access {0}\n\ -{1} + cannot access {0}\n\ + {1} compiler.misc.bad.class.file.header=\ -bad class file: {0}\n\ -{1}\n\ -Please remove or make sure it appears in the correct subdirectory of the classpath. + bad class file: {0}\n\ + {1}\n\ + Please remove or make sure it appears in the correct subdirectory of the classpath. + +# 0: file name, 1: message segment compiler.misc.bad.source.file.header=\ -bad source file: {0}\n\ -{1}\n\ -Please remove or make sure it appears in the correct subdirectory of the sourcepath. + bad source file: {0}\n\ + {1}\n\ + Please remove or make sure it appears in the correct subdirectory of the sourcepath. ## The following are all possible strings for the second argument ({1}) of the ## above strings. compiler.misc.bad.class.signature=\ bad class signature: {0} + compiler.misc.bad.enclosing.method=\ bad enclosing method attribute: {0} + compiler.misc.bad.runtime.invisible.param.annotations=\ bad RuntimeInvisibleParameterAnnotations attribute: {0} + compiler.misc.bad.const.pool.tag=\ bad constant pool tag: {0} + compiler.misc.bad.const.pool.tag.at=\ bad constant pool tag: {0} at {1} + compiler.misc.bad.signature=\ bad signature: {0} -compiler.misc.bad.type.annotation.value=\ - bad type annotation target type value: {0} + compiler.misc.class.file.wrong.class=\ class file contains wrong class: {0} + compiler.misc.class.file.not.found=\ class file for {0} not found + +# 0: name compiler.misc.file.doesnt.contain.class=\ file does not contain class {0} + compiler.misc.file.does.not.contain.package=\ file does not contain package {0} + compiler.misc.illegal.start.of.class.file=\ illegal start of class file + compiler.misc.unable.to.access.file=\ unable to access file: {0} + compiler.misc.unicode.str.not.supported=\ unicode string in class file not supported + compiler.misc.undecl.type.var=\ undeclared type variable: {0} + compiler.misc.wrong.version=\ class file has wrong version {0}.{1}, should be {2}.{3} ##### +# 0: type, 1: type or symbol compiler.err.not.within.bounds=\ - type parameter {0} is not within its bound - -compiler.err.not.within.bounds.explain=\ - type parameter {0} is not within its bound; {1} + type argument {0} is not within bounds of type-variable {1} ## The following are all possible strings for the second argument ({1}) of the ## above string. @@ -1007,32 +1456,41 @@ ##### +# 0: message segment, 1: type, 2: type compiler.err.prob.found.req=\ -{0}\n\ -required: {2}\n\ -found: {1} + {0}\n\ + required: {2}\n\ + found: {1} + +# 0: message segment, 1: type, 2: type compiler.warn.prob.found.req=\ -{0}\n\ -required: {2}\n\ -found: {1} + {0}\n\ + required: {2}\n\ + found: {1} + compiler.err.prob.found.req.1=\ -{0} {3}\n\ -required: {2}\n\ -found: {1} + {0} {3}\n\ + required: {2}\n\ + found: {1} ## The following are all possible strings for the first argument ({0}) of the ## above strings. compiler.misc.incompatible.types=\ incompatible types + +# 0: message segment compiler.misc.incompatible.types.1=\ incompatible types; {0} + compiler.misc.inconvertible.types=\ inconvertible types + compiler.misc.possible.loss.of.precision=\ possible loss of precision compiler.misc.unchecked.assign=\ unchecked conversion + # compiler.misc.storecheck=\ # assignment might cause later store checks to fail # compiler.misc.unchecked=\ @@ -1042,8 +1500,10 @@ compiler.misc.assignment.from.super-bound=\ assignment from super-bound type {0} + compiler.misc.assignment.to.extends-bound=\ assignment to extends-bound type {0} + # compiler.err.star.expected=\ # ''*'' expected # compiler.err.no.elem.type=\ @@ -1054,21 +1514,30 @@ ##### +# 0: message segment or type, 1: message segment compiler.err.type.found.req=\ -unexpected type\n\ -required: {1}\n\ -found: {0} + unexpected type\n\ + required: {1}\n\ + found: {0} ## The following are all possible strings for the first argument ({0}) of the ## above string. compiler.misc.type.req.class=\ class + compiler.misc.type.req.class.array=\ class or array + +compiler.misc.type.req.array.or.iterable=\ + array or java.lang.Iterable + compiler.misc.type.req.ref=\ reference + compiler.misc.type.req.exact=\ class or interface without bounds + +# 0: type compiler.misc.type.parameter=\ type parameter {0} @@ -1078,92 +1547,131 @@ ## diagnostics whose key ends in ".1" compiler.misc.undetermined.type=\ undetermined type + compiler.misc.type.variable.has.undetermined.type=\ type variable {0} has undetermined type + +# 0: type, 1: list of type compiler.misc.no.unique.maximal.instance.exists=\ no unique maximal instance exists for type variable {0} with upper bounds {1} + compiler.misc.no.unique.minimal.instance.exists=\ no unique minimal instance exists for type variable {0} with lower bounds {1} + +# 0: list of type, 1: type, 2: type compiler.misc.infer.no.conforming.instance.exists=\ no instance(s) of type variable(s) {0} exist so that {1} conforms to {2} + +# 0: list of type, 1: type, 2: type compiler.misc.infer.no.conforming.assignment.exists=\ no instance(s) of type variable(s) {0} exist so that argument type {1} conforms to formal parameter type {2} + compiler.misc.infer.arg.length.mismatch=\ cannot instantiate from arguments because actual and formal argument lists differ in length + +# 0: type, 1: list of type compiler.misc.inferred.do.not.conform.to.bounds=\ inferred type does not conform to declared bound(s)\n\ inferred: {0}\n\ bound(s): {1} -compiler.misc.inferred.do.not.conform.to.params=\ - actual arguments do not conform to inferred formal arguments\n\ - required: {0}\n\ - found: {1} + +# 0: symbol compiler.misc.diamond=\ {0}<> + +# 0: list of type, 1: message segment compiler.misc.diamond.invalid.arg=\ type argument {0} inferred for {1} is not allowed in this context + +# 0: list of type, 1: message segment compiler.misc.diamond.invalid.args=\ type arguments {0} inferred for {1} are not allowed in this context +# 0: type, 1: list of type compiler.misc.explicit.param.do.not.conform.to.bounds=\ explicit type argument {0} does not conform to declared bound(s) {1} compiler.misc.arg.length.mismatch=\ actual and formal argument lists differ in length + +# 0: type, 1: type compiler.misc.no.conforming.assignment.exists=\ actual argument {0} cannot be converted to {1} by method invocation conversion + +# 0: type, 1: type compiler.misc.varargs.argument.mismatch=\ argument type {0} does not conform to vararg element type {1} + ##### ## The first argument ({0}) is a "kindname". +# 0: symbol kind, 1: symbol, 2: symbol compiler.err.abstract.cant.be.accessed.directly=\ abstract {0} {1} in {2} cannot be accessed directly ## The first argument ({0}) is a "kindname". +# 0: symbol kind, 1: symbol compiler.err.non-static.cant.be.ref=\ non-static {0} {1} cannot be referenced from a static context ## Both arguments ({0}, {1}) are "kindname"s. {0} is a comma-separated list ## of kindnames (the list should be identical to that provided in source. compiler.err.unexpected.type=\ -unexpected type\n\ -required: {0}\n\ -found: {1} + unexpected type\n\ + required: {0}\n\ + found: {1} ## The first argument {0} is a "kindname" (e.g. 'constructor', 'field', etc.) ## The second argument {1} is the non-resolved symbol ## The third argument {2} is a list of type parameters (non-empty if {1} is a method) ## The fourth argument {3} is a list of argument types (non-empty if {1} is a method) +# 0: symbol kind, 1: name, 2: unused, 3: unused compiler.err.cant.resolve=\ cannot find symbol\n\ symbol: {0} {1} +# 0: symbol kind, 1: name, 2: unused, 3: list of type compiler.err.cant.resolve.args=\ cannot find symbol\n\ symbol: {0} {1}({3}) +# 0: symbol kind, 1: name, 2: list of type, 3: list of type compiler.err.cant.resolve.args.params=\ cannot find symbol\n\ symbol: {0} <{2}>{1}({3}) ## arguments from {0} to {3} have the same meaning as above -## The fifth argument {4} is the location "kindname" (e.g. 'constructor', 'field', etc.) -## The sixth argument {5} is the location type +## The fifth argument {4} is a location subdiagnostic (see below) +# 0: symbol kind, 1: name, 2: unused, 3: unused, 4: message segment compiler.err.cant.resolve.location=\ cannot find symbol\n\ symbol: {0} {1}\n\ - location: {4} {5} - + location: {4} + +# 0: symbol kind, 1: name, 2: unused, 3: list of type, 4: message segment compiler.err.cant.resolve.location.args=\ cannot find symbol\n\ symbol: {0} {1}({3})\n\ - location: {4} {5} - + location: {4} + +# 0: symbol kind, 1: name, 2: list of type, 3: list, 4: message segment compiler.err.cant.resolve.location.args.params=\ cannot find symbol\n\ symbol: {0} <{2}>{1}({3})\n\ - location: {4} {5} + location: {4} + +##a location subdiagnostic is composed as follows: +## The first argument {0} is the location "kindname" (e.g. 'constructor', 'field', etc.) +## The second argument {1} is the location name +## The third argument {2} is the location type (only when {1} is a variable name) + +# 0: symbol kind, 1: symbol, 2: unused +compiler.misc.location=\ + {0} {1} + +# 0: symbol kind, 1: symbol, 2: type +compiler.misc.location.1=\ + {0} {1} of type {2} ## The following are all possible string for "kindname". ## They should be called whatever the JLS calls them after it been translated @@ -1172,85 +1680,124 @@ # static member compiler.misc.kindname.annotation=\ @interface + compiler.misc.kindname.constructor=\ constructor + compiler.misc.kindname.enum=\ enum + compiler.misc.kindname.interface=\ interface + compiler.misc.kindname.static=\ static + compiler.misc.kindname.type.variable=\ type variable + compiler.misc.kindname.type.variable.bound=\ bound of type variable + compiler.misc.kindname.variable=\ variable + compiler.misc.kindname.value=\ value + compiler.misc.kindname.method=\ method + compiler.misc.kindname.class=\ class + compiler.misc.kindname.package=\ package + ##### compiler.misc.no.args=\ no arguments +# 0: message segment compiler.err.override.static=\ {0}\n\ overriding method is static + +# 0: message segment, 1: set of modifier compiler.err.override.meth=\ {0}\n\ overridden method is {1} +# 0: message segment, 1: type compiler.err.override.meth.doesnt.throw=\ {0}\n\ overridden method does not throw {1} # In the following string {1} is a space separated list of Java Keywords, as # they would have been declared in the source code +# 0: message segment, 1: set of modifier compiler.err.override.weaker.access=\ {0}\n\ attempting to assign weaker access privileges; was {1} +# 0: message segment, 1: type, 2: type compiler.err.override.incompatible.ret=\ {0}\n\ return type {1} is not compatible with {2} +# 0: message segment, 1: type, 2: type compiler.warn.override.unchecked.ret=\ {0}\n\ return type requires unchecked conversion from {1} to {2} +# 0: message segment, 1: type compiler.warn.override.unchecked.thrown=\ {0}\n\ overridden method does not throw {1} ## The following are all possible strings for the first argument ({0}) of the ## above strings. +# 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.cant.override=\ {0} in {1} cannot override {2} in {3} + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.cant.implement=\ {0} in {1} cannot implement {2} in {3} + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.clashes.with=\ {0} in {1} clashes with {2} in {3} + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.unchecked.override=\ {0} in {1} overrides {2} in {3} + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.unchecked.implement=\ {0} in {1} implements {2} in {3} + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.unchecked.clash.with=\ {0} in {1} overrides {2} in {3} + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.varargs.override=\ {0} in {1} overrides {2} in {3} + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.varargs.implement=\ {0} in {1} implements {2} in {3} + +# 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.varargs.clash.with=\ {0} in {1} overrides {2} in {3} + compiler.misc.non.denotable.type=\ Non-denotable type {0} not allowed here +# 0: symbol kind, 1: symbol, 2: symbol, 3: message segment compiler.misc.inapplicable.method=\ {0} {1}.{2} is not applicable\n\ ({3}) @@ -1258,77 +1805,90 @@ ######################################## # Diagnostics for language feature changes ######################################## +# 0: string compiler.err.unsupported.fp.lit=\ hexadecimal floating point literals are not supported in -source {0}\n\ -(use -source 5 or higher to enable hexadecimal floating point literals) - + (use -source 5 or higher to enable hexadecimal floating point literals) + +# 0: string compiler.err.unsupported.binary.lit=\ binary literals are not supported in -source {0}\n\ -(use -source 7 or higher to enable binary literals) - + (use -source 7 or higher to enable binary literals) + +# 0: string compiler.err.unsupported.underscore.lit=\ underscores in literals are not supported in -source {0}\n\ -(use -source 7 or higher to enable underscores in literals) - + (use -source 7 or higher to enable underscores in literals) + +# 0: string compiler.err.try.with.resources.not.supported.in.source=\ try-with-resources is not supported in -source {0}\n\ -(use -source 7 or higher to enable try-with-resources) + (use -source 7 or higher to enable try-with-resources) compiler.warn.enum.as.identifier=\ as of release 5, ''enum'' is a keyword, and may not be used as an identifier\n\ -(use -source 5 or higher to use ''enum'' as a keyword) + (use -source 5 or higher to use ''enum'' as a keyword) compiler.warn.assert.as.identifier=\ as of release 1.4, ''assert'' is a keyword, and may not be used as an identifier\n\ -(use -source 1.4 or higher to use ''assert'' as a keyword) + (use -source 1.4 or higher to use ''assert'' as a keyword) compiler.err.enum.as.identifier=\ as of release 5, ''enum'' is a keyword, and may not be used as an identifier\n\ -(use -source 1.4 or lower to use ''enum'' as an identifier) + (use -source 1.4 or lower to use ''enum'' as an identifier) compiler.err.assert.as.identifier=\ as of release 1.4, ''assert'' is a keyword, and may not be used as an identifier\n\ -(use -source 1.3 or lower to use ''assert'' as an identifier) - + (use -source 1.3 or lower to use ''assert'' as an identifier) + +# 0: string compiler.err.generics.not.supported.in.source=\ generics are not supported in -source {0}\n\ -(use -source 5 or higher to enable generics) - + (use -source 5 or higher to enable generics) + +# 0: string compiler.err.varargs.not.supported.in.source=\ variable-arity methods are not supported in -source {0}\n\ -(use -source 5 or higher to enable variable-arity methods) - + (use -source 5 or higher to enable variable-arity methods) + +# 0: string compiler.err.annotations.not.supported.in.source=\ annotations are not supported in -source {0}\n\ -(use -source 5 or higher to enable annotations) + (use -source 5 or higher to enable annotations) #308 compiler.err.type.annotations.not.supported.in.source=\ #308 type annotations are not supported in -source {0}\n\ #308 (use -source 7 or higher to enable type annotations) +# 0: string compiler.err.foreach.not.supported.in.source=\ for-each loops are not supported in -source {0}\n\ -(use -source 5 or higher to enable for-each loops) - + (use -source 5 or higher to enable for-each loops) + +# 0: string compiler.err.static.import.not.supported.in.source=\ static import declarations are not supported in -source {0}\n\ -(use -source 5 or higher to enable static import declarations) - + (use -source 5 or higher to enable static import declarations) + +# 0: string compiler.err.enums.not.supported.in.source=\ enums are not supported in -source {0}\n\ -(use -source 5 or higher to enable enums) - + (use -source 5 or higher to enable enums) + +# 0: string compiler.err.diamond.not.supported.in.source=\ diamond operator is not supported in -source {0}\n\ -(use -source 7 or higher to enable diamond operator) - + (use -source 7 or higher to enable diamond operator) + +# 0: string compiler.err.multicatch.not.supported.in.source=\ multi-catch statement is not supported in -source {0}\n\ -(use -source 7 or higher to enable multi-catch statement) - + (use -source 7 or higher to enable multi-catch statement) + +# 0: string compiler.err.string.switch.not.supported.in.source=\ strings in switch are not supported in -source {0}\n\ -(use -source 7 or higher to enable strings in switch) + (use -source 7 or higher to enable strings in switch) ######################################## # Diagnostics for where clause implementation @@ -1339,29 +1899,35 @@ <null> # X#n (where n is an int id) is disambiguated tvar name +# 0: name, 1: number compiler.misc.type.var=\ {0}#{1} # CAP#n (where n is an int id) is an abbreviation for 'captured type' +# 0: number compiler.misc.captured.type=\ CAP#{0} # <INT#n> (where n is an int id) is an abbreviation for 'intersection type' +# 0: number compiler.misc.intersection.type=\ INT#{0} # where clause for captured type: contains upper ('extends {1}') and lower # ('super {2}') bound along with the wildcard that generated this captured type ({3}) +# 0: type, 1: type, 2: type, 3: type compiler.misc.where.captured=\ {0} extends {1} super: {2} from capture of {3} # compact where clause for captured type: contains upper ('extends {1}') along # with the wildcard that generated this captured type ({3}) +# 0: type, 1: type, 2: unused, 3: type compiler.misc.where.captured.1=\ {0} extends {1} from capture of {3} # where clause for type variable: contains upper bound(s) ('extends {1}') along with # the kindname ({2}) and location ({3}) in which the typevar has been declared +# 0: type, 1: list of type, 2: symbol kind, 3: symbol compiler.misc.where.typevar=\ {0} extends {1} declared in {2} {3} @@ -1372,20 +1938,30 @@ # where clause for type variable: contains all the upper bound(s) ('extends {1}') # of this intersection type +# 0: type, 1: list of type compiler.misc.where.intersection=\ {0} extends {1} ### Where clause headers ### compiler.misc.where.description.captured=\ where {0} is a fresh type-variable: + +# 0: set of type compiler.misc.where.description.typevar=\ where {0} is a type-variable: + +# 0: set of type compiler.misc.where.description.intersection=\ where {0} is an intersection type: + +# 0: set of type compiler.misc.where.description.captured.1=\ where {0} are fresh type-variables: + +# 0: set of type compiler.misc.where.description.typevar.1=\ where {0} are type-variables: + compiler.misc.where.description.intersection.1=\ where {0} are intersection types:
--- a/src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2009, 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 @@ -27,284 +27,292 @@ ## errors ## -compiler.err.abstract.cant.be.instantiated={0} \u306f abstract \u3067\u3059\u3002\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.abstract.meth.cant.have.body=abstract \u30e1\u30bd\u30c3\u30c9\u304c\u672c\u4f53\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.already.annotated={0} {1} \u306f\u6ce8\u91c8\u304c\u4ed8\u3044\u3066\u3044\u307e\u3059\u3002 -compiler.err.already.defined={0} \u306f {1} \u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.already.defined.single.import={0} \u306f\u5358\u4e00\u306e\u578b\u30a4\u30f3\u30dd\u30fc\u30c8\u5ba3\u8a00\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.already.defined.static.single.import={0} \u306f static \u306e\u5358\u4e00\u306e\u578b\u30a4\u30f3\u30dd\u30fc\u30c8\u5ba3\u8a00\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.already.defined.this.unit={0} \u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u5358\u4f4d\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.annotation.missing.default.value=\u6ce8\u91c8 {0} \u306b {1} \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.annotation.not.valid.for.type=\u6ce8\u91c8\u306f\u30bf\u30a4\u30d7 {0} \u306e\u5024\u306b\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.annotation.type.not.applicable=\u6ce8\u91c8\u578b\u306f\u3053\u306e\u7a2e\u985e\u306e\u5ba3\u8a00\u306b\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.annotation.value.must.be.annotation=\u6ce8\u91c8\u306e\u5024\u306f\u6ce8\u91c8\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -compiler.err.annotation.value.must.be.class.literal=\u6ce8\u91c8\u306e\u5024\u306f\u30af\u30e9\u30b9\u30ea\u30c6\u30e9\u30eb\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -compiler.err.annotation.value.must.be.name.value=\u6ce8\u91c8\u306e\u5024\u306f ''name=value'' \u3068\u3044\u3046\u5f62\u5f0f\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093 -compiler.err.annotation.value.not.allowable.type=\u4f7f\u7528\u3067\u304d\u306a\u3044\u30bf\u30a4\u30d7\u306e\u6ce8\u91c8\u306e\u5024\u3067\u3059\u3002 -compiler.err.anon.class.impl.intf.no.args=\u540d\u524d\u306e\u306a\u3044\u30af\u30e9\u30b9\u304c\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u5b9f\u88c5\u3057\u3066\u3044\u307e\u3059\u3002\u5f15\u6570\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.anon.class.impl.intf.no.typeargs=\u540d\u524d\u306e\u306a\u3044\u30af\u30e9\u30b9\u304c\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u5b9f\u88c5\u3057\u3066\u3044\u307e\u3059\u3002\u578b\u5f15\u6570\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093 -compiler.err.anon.class.impl.intf.no.qual.for.new=\u540d\u524d\u306e\u306a\u3044\u30af\u30e9\u30b9\u304c\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u5b9f\u88c5\u3057\u3066\u3044\u307e\u3059\u3002new \u306b\u4fee\u98fe\u5b50\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.array.and.varargs={2} \u3067 {0} \u3068 {1} \u306e\u4e21\u65b9\u3092\u5ba3\u8a00\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093 -compiler.err.array.dimension.missing=\u914d\u5217\u306e\u5927\u304d\u3055\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.err.array.req.but.found=\u914d\u5217\u304c\u8981\u6c42\u3055\u308c\u307e\u3057\u305f\u304c\u3001{0} \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002 +compiler.err.abstract.cant.be.instantiated={0}\u306Fabstract\u3067\u3059\u3002\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u751F\u6210\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.abstract.meth.cant.have.body=abstract\u30E1\u30BD\u30C3\u30C9\u304C\u672C\u4F53\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.already.annotated={0} {1}\u306F\u6CE8\u91C8\u304C\u4ED8\u3044\u3066\u3044\u307E\u3059 +compiler.err.already.defined={0}\u306F{1}\u3067\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.already.defined.single.import={0}\u306F\u5358\u4E00\u306E\u578B\u30A4\u30F3\u30DD\u30FC\u30C8\u5BA3\u8A00\u3067\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.already.defined.static.single.import={0}\u306Fstatic\u306E\u5358\u4E00\u306E\u578B\u30A4\u30F3\u30DD\u30FC\u30C8\u5BA3\u8A00\u3067\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.already.defined.this.unit={0}\u306F\u30B3\u30F3\u30D1\u30A4\u30EB\u5358\u4F4D\u3067\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.annotation.missing.default.value=\u6CE8\u91C8{0}\u306B\u306F\u5C5E\u6027{1}\u306E\u5024\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.annotation.missing.default.value.1=\u6CE8\u91C8{0}\u306B\u306F\u5C5E\u6027{1}\u306E\u5024\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.annotation.not.valid.for.type=\u6CE8\u91C8\u306F\u578B{0}\u306E\u5024\u306B\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +compiler.err.annotation.type.not.applicable=\u6CE8\u91C8\u578B\u306F\u3053\u306E\u7A2E\u985E\u306E\u5BA3\u8A00\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 +compiler.err.annotation.value.must.be.annotation=\u6CE8\u91C8\u306E\u5024\u306F\u6CE8\u91C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.annotation.value.must.be.class.literal=\u6CE8\u91C8\u306E\u5024\u306F\u30AF\u30E9\u30B9\u30FB\u30EA\u30C6\u30E9\u30EB\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.annotation.value.must.be.name.value=\u6CE8\u91C8\u306E\u5024\u306F''name=value''\u3068\u3044\u3046\u5F62\u5F0F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.annotation.value.not.allowable.type=\u4F7F\u7528\u3067\u304D\u306A\u3044\u578B\u306E\u6CE8\u91C8\u306E\u5024\u3067\u3059 +compiler.err.anon.class.impl.intf.no.args=\u540D\u524D\u306E\u306A\u3044\u30AF\u30E9\u30B9\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002\u5F15\u6570\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.anon.class.impl.intf.no.typeargs=\u540D\u524D\u306E\u306A\u3044\u30AF\u30E9\u30B9\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002\u578B\u5F15\u6570\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.anon.class.impl.intf.no.qual.for.new=\u540D\u524D\u306E\u306A\u3044\u30AF\u30E9\u30B9\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002new\u306B\u4FEE\u98FE\u5B50\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +compiler.err.array.and.varargs={2}\u3067{0}\u3068{1}\u306E\u4E21\u65B9\u3092\u5BA3\u8A00\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.array.dimension.missing=\u914D\u5217\u306E\u5927\u304D\u3055\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.err.array.req.but.found=\u914D\u5217\u304C\u8981\u6C42\u3055\u308C\u307E\u3057\u305F\u304C\u3001{0}\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F -compiler.err.assignment.from.super-bound=\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9 {0} \u304b\u3089\u4ee3\u5165\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.err.assignment.to.extends-bound=\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9 {0} \u3078\u4ee3\u5165\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.err.attribute.value.must.be.constant=\u5c5e\u6027\u306e\u5024\u306f\u5b9a\u6570\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 +compiler.err.assignment.from.super-bound=\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9{0}\u304B\u3089\u4EE3\u5165\u3057\u3066\u3044\u307E\u3059 +compiler.err.assignment.to.extends-bound=\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9{0}\u3078\u4EE3\u5165\u3057\u3066\u3044\u307E\u3059 +compiler.err.attribute.value.must.be.constant=\u5C5E\u6027\u306E\u5024\u306F\u5B9A\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 -compiler.err.break.outside.switch.loop=break \u304c switch \u6587\u307e\u305f\u306f\u30eb\u30fc\u30d7\u306e\u5916\u306b\u3042\u308a\u307e\u3059\u3002 +compiler.err.break.outside.switch.loop=break\u304Cswitch\u6587\u307E\u305F\u306F\u30EB\u30FC\u30D7\u306E\u5916\u306B\u3042\u308A\u307E\u3059 -compiler.err.call.must.be.first.stmt.in.ctor={0} \u306e\u547c\u3073\u51fa\u3057\u306f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u5148\u982d\u6587\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -compiler.err.cant.apply.symbol={0} ({1} \u5185) \u3092 {2}({3}) \u306b\u9069\u7528\u3067\u304d\u307e\u305b\u3093 -compiler.err.cant.apply.symbol.1={0} {1} ({4} {5} \u5185) \u306f\u4e0e\u3048\u3089\u308c\u305f\u578b\u306b\u9069\u7528\u3067\u304d\u307e\u305b\u3093\n\u671f\u5f85\u5024: {2}\n\u691c\u51fa\u5024: {3}\n\u7406\u7531: {6} -compiler.err.cant.assign.val.to.final.var=final \u5909\u6570 {0} \u306b\u5024\u3092\u4ee3\u5165\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.cant.deref={0} \u306f\u9593\u63a5\u53c2\u7167\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.cant.extend.intf.annotation=@interfaces \u3067\u306f ''extends'' \u306f\u8a31\u53ef\u3055\u308c\u307e\u305b\u3093 -compiler.err.cant.inherit.from.final=final {0} \u304b\u3089\u306f\u7d99\u627f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.cant.ref.before.ctor.called=\u30b9\u30fc\u30d1\u30fc\u30bf\u30a4\u30d7\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u547c\u3073\u51fa\u3057\u524d\u306f {0} \u3092\u53c2\u7167\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.cant.ret.val.from.meth.decl.void=\u623b\u308a\u5024\u306e\u578b\u304c void \u306e\u30e1\u30bd\u30c3\u30c9\u304b\u3089\u306f\u5024\u3092\u8fd4\u305b\u307e\u305b\u3093\u3002 -compiler.err.cant.select.static.class.from.param.type=\u30d1\u30e9\u30e1\u30fc\u30bf\u306b\u3055\u308c\u305f\u578b\u304b\u3089 static \u30af\u30e9\u30b9\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.cant.inherit.diff.arg={0} \u3092\u7570\u306a\u308b\u5f15\u6570 <{1}> \u3068 <{2}> \u3067\u7d99\u627f\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.catch.without.try=''catch'' \u3078\u306e ''try'' \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.clash.with.pkg.of.same.name={0} \u306f\u540c\u540d\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u7af6\u5408\u3057\u307e\u3059\u3002 -compiler.err.const.expr.req=\u5b9a\u6570\u5f0f\u304c\u5fc5\u8981\u3067\u3059\u3002 -compiler.err.enum.const.req=\u4fee\u98fe\u3055\u308c\u3066\u3044\u306a\u3044\u5217\u6319\u578b\u5b9a\u6570\u306e\u540d\u524d\u304c\u5fc5\u8981\u3067\u3059\u3002 -compiler.err.cont.outside.loop=continue \u304c\u30eb\u30fc\u30d7\u306e\u5916\u306b\u3042\u308a\u307e\u3059\u3002 -compiler.err.cyclic.inheritance={0} \u3092\u542b\u3080\u7d99\u627f\u304c\u30eb\u30fc\u30d7\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.err.cyclic.annotation.element=\u6ce8\u91c8\u306e\u8981\u7d20\u30bf\u30a4\u30d7\u304c\u30eb\u30fc\u30d7\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.err.call.to.super.not.allowed.in.enum.ctor=\u5217\u6319\u578b\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u306f\u3001\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u306e\u547c\u3073\u51fa\u3057\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.no.superclass={0} \u306b\u306f\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u304c\u3042\u308a\u307e\u305b\u3093\u3002 +compiler.err.call.must.be.first.stmt.in.ctor={0}\u306E\u547C\u51FA\u3057\u306F\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u5148\u982D\u6587\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.cant.apply.symbol={4} {5}\u306E{0} {1}\u306F\u6307\u5B9A\u3055\u308C\u305F\u578B\u306B\u9069\u7528\u3067\u304D\u307E\u305B\u3093\n\u671F\u5F85\u5024: {2}\n\u691C\u51FA\u5024: {3} +compiler.err.cant.apply.symbol.1={4} {5}\u306E{0} {1}\u306F\u6307\u5B9A\u3055\u308C\u305F\u578B\u306B\u9069\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\u671F\u5F85\u5024: {2}\n\u691C\u51FA\u5024: {3}\n\u7406\u7531: {6} +compiler.err.cant.apply.symbols={1}\u306B\u9069\u5207\u306A{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093({2}) +compiler.err.cant.assign.val.to.final.var=final\u5909\u6570{0}\u306B\u5024\u3092\u4EE3\u5165\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.cant.deref={0}\u306F\u9593\u63A5\u53C2\u7167\u3067\u304D\u307E\u305B\u3093 +compiler.err.cant.extend.intf.annotation=@interfaces\u3067\u306F''extends''\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093 +compiler.err.cant.inherit.from.final=final {0}\u304B\u3089\u306F\u7D99\u627F\u3067\u304D\u307E\u305B\u3093 +compiler.err.cant.ref.before.ctor.called=\u30B9\u30FC\u30D1\u30FC\u30BF\u30A4\u30D7\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u547C\u51FA\u3057\u524D\u306F{0}\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093 +compiler.err.cant.ret.val.from.meth.decl.void=\u623B\u308A\u5024\u306E\u578B\u304Cvoid\u306E\u30E1\u30BD\u30C3\u30C9\u304B\u3089\u306F\u5024\u3092\u8FD4\u305B\u307E\u305B\u3093 +compiler.err.cant.select.static.class.from.param.type=\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u3055\u308C\u305F\u578B\u304B\u3089static\u30AF\u30E9\u30B9\u3092\u9078\u629E\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.cant.inherit.diff.arg={0}\u3092\u7570\u306A\u308B\u5F15\u6570<{1}>\u3068<{2}>\u3067\u7D99\u627F\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.catch.without.try=''catch''\u3078\u306E''try''\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.clash.with.pkg.of.same.name={0}\u306F\u540C\u540D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u3068\u7AF6\u5408\u3057\u307E\u3059 +compiler.err.const.expr.req=\u5B9A\u6570\u5F0F\u304C\u5FC5\u8981\u3067\u3059 +compiler.err.enum.const.req=\u4FEE\u98FE\u3055\u308C\u3066\u3044\u306A\u3044\u5217\u6319\u578B\u5B9A\u6570\u306E\u540D\u524D\u304C\u5FC5\u8981\u3067\u3059 +compiler.err.cont.outside.loop=continue\u304C\u30EB\u30FC\u30D7\u306E\u5916\u306B\u3042\u308A\u307E\u3059 +compiler.err.cyclic.inheritance={0}\u3092\u542B\u3080\u7D99\u627F\u304C\u30EB\u30FC\u30D7\u3057\u3066\u3044\u307E\u3059 +compiler.err.cyclic.annotation.element=\u6CE8\u91C8\u306E\u8981\u7D20\u30BF\u30A4\u30D7\u304C\u30EB\u30FC\u30D7\u3057\u3066\u3044\u307E\u3059 +compiler.err.call.to.super.not.allowed.in.enum.ctor=\u5217\u6319\u578B\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u3067\u306F\u3001\u30B9\u30FC\u30D1\u30FC\u30AF\u30E9\u30B9\u306E\u547C\u51FA\u3057\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.no.superclass={0}\u306B\u306F\u30B9\u30FC\u30D1\u30FC\u30AF\u30E9\u30B9\u304C\u3042\u308A\u307E\u305B\u3093 -compiler.err.concrete.inheritance.conflict={1} \u306e\u30e1\u30bd\u30c3\u30c9 {0} \u3068 {3} \u306e {2} \u306f\u540c\u3058\u30b7\u30b0\u30cb\u30c1\u30e3\u30fc\u304b\u3089\u7d99\u627f\u3055\u308c\u3066\u3044\u307e\u3059\u3002 +compiler.warn.type.parameter.on.polymorphic.signature=MethodHandle\u547C\u51FA\u3057\u306E\u53E4\u3044\u8868\u8A18\u6CD5\u3092x.<T>invoke(y)\u304B\u3089(T)x.invoke(y)\u306B\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044 +compiler.warn.wrong.target.for.polymorphic.signature.definition=MethodHandle API\u306E\u4F5C\u6210\u306B\u306F-target 7\u30E9\u30F3\u30BF\u30A4\u30E0\u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\u3002\u73FE\u5728\u306F-target {0}\u3067\u3059 + +compiler.err.concrete.inheritance.conflict={1}\u306E\u30E1\u30BD\u30C3\u30C9{0}\u3068{3}\u306E{2}\u306F\u540C\u3058\u30B7\u30B0\u30CB\u30C1\u30E3\u304B\u3089\u7D99\u627F\u3055\u308C\u3066\u3044\u307E\u3059 -compiler.err.default.allowed.in.intf.annotation.member=\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u306f @interface \u30e1\u30f3\u30d0\u5185\u3067\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 -compiler.err.doesnt.exist=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 -compiler.err.duplicate.annotation=\u6ce8\u91c8\u304c\u91cd\u8907\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.err.duplicate.annotation.member.value={1} \u306e\u6ce8\u91c8\u30e1\u30f3\u30d0\u306e\u5024 {0} \u304c\u91cd\u8907\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.err.duplicate.class=\u30af\u30e9\u30b9 {0} \u304c\u91cd\u8907\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.err.duplicate.case.label=case \u30e9\u30d9\u30eb\u304c\u91cd\u8907\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.err.duplicate.default.label=default \u30e9\u30d9\u30eb\u304c\u91cd\u8907\u3057\u3066\u3044\u307e\u3059\u3002 +compiler.err.default.allowed.in.intf.annotation.member=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u306F@interface\u30E1\u30F3\u30D0\u30FC\u5185\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059 +compiler.err.doesnt.exist=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306F\u5B58\u5728\u3057\u307E\u305B\u3093 +compiler.err.duplicate.annotation=\u6CE8\u91C8\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059 +compiler.err.duplicate.annotation.member.value={1}\u306E\u6CE8\u91C8\u30E1\u30F3\u30D0\u30FC\u306E\u5024{0}\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059 +compiler.err.duplicate.class=\u30AF\u30E9\u30B9{0}\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059 +compiler.err.duplicate.case.label=case\u30E9\u30D9\u30EB\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059 +compiler.err.duplicate.default.label=default\u30E9\u30D9\u30EB\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059 -compiler.err.else.without.if=''else'' \u3078\u306e ''if'' \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.empty.bytecode.ident=\u7a7a\u306e\u30d0\u30a4\u30c8\u30b3\u30fc\u30c9\u8b58\u5225\u5b50\u3067\u3059\u3002 -compiler.err.empty.char.lit=\u7a7a\u306e\u6587\u5b57\u30ea\u30c6\u30e9\u30eb\u3067\u3059\u3002 -compiler.err.encl.class.required={0} \u3092\u542b\u3080\u56f2\u3046\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u5fc5\u8981\u3067\u3059\u3002 -compiler.err.enum.annotation.must.be.enum.constant=\u5217\u6319\u578b\u6ce8\u91c8\u5024\u306f\u3001\u5217\u6319\u578b\u5b9a\u6570\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 +compiler.err.else.without.if=''else''\u3078\u306E''if''\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.empty.char.lit=\u7A7A\u306E\u6587\u5B57\u30EA\u30C6\u30E9\u30EB\u3067\u3059 +compiler.err.encl.class.required={0}\u3092\u542B\u3080\u56F2\u3046\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5FC5\u8981\u3067\u3059 +compiler.err.enum.annotation.must.be.enum.constant=\u5217\u6319\u578B\u6CE8\u91C8\u5024\u306F\u3001\u5217\u6319\u578B\u5B9A\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 -compiler.err.enum.cant.be.instantiated=\u5217\u6319\u578b\u30bf\u30a4\u30d7\u306f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.enum.label.must.be.unqualified.enum=\u5217\u6319\u578b\u306e switch case \u30e9\u30d9\u30eb\u306f\u5217\u6319\u578b\u5b9a\u6570\u306e\u975e\u4fee\u98fe\u540d\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -compiler.err.enum.no.subclassing=\u30af\u30e9\u30b9\u306f\u76f4\u63a5 java.lang.Enum \u3092\u62e1\u5f35\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.enum.types.not.extensible=\u5217\u6319\u578b\u30bf\u30a4\u30d7\u306f\u62e1\u5f35\u53ef\u80fd\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.enum.no.finalize=\u5217\u6319\u578b\u30bf\u30a4\u30d7\u306f finalize \u30e1\u30bd\u30c3\u30c9\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093 -compiler.err.error.reading.file={0} \u306e\u8aad\u307f\u8fbc\u307f\u30a8\u30e9\u30fc\u3067\u3059\u3002{1} -compiler.err.except.already.caught=\u4f8b\u5916 {0} \u306f\u3059\u3067\u306b\u30ad\u30e3\u30c3\u30c1\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.except.never.thrown.in.try=\u4f8b\u5916 {0} \u306f\u5bfe\u5fdc\u3059\u308b try \u6587\u306e\u672c\u4f53\u3067\u306f\u30b9\u30ed\u30fc\u3055\u308c\u307e\u305b\u3093\u3002 +compiler.err.enum.cant.be.instantiated=\u5217\u6319\u578B\u306F\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093 +compiler.err.enum.label.must.be.unqualified.enum=\u5217\u6319\u578B\u306Eswitch case\u30E9\u30D9\u30EB\u306F\u5217\u6319\u578B\u5B9A\u6570\u306E\u975E\u4FEE\u98FE\u540D\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.enum.no.subclassing=\u30AF\u30E9\u30B9\u306F\u76F4\u63A5java.lang.Enum\u3092\u62E1\u5F35\u3067\u304D\u307E\u305B\u3093 +compiler.err.enum.types.not.extensible=\u5217\u6319\u578B\u306F\u62E1\u5F35\u53EF\u80FD\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +compiler.err.enum.no.finalize=\u5217\u6319\u578B\u306Ffinalize\u30E1\u30BD\u30C3\u30C9\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.error.reading.file={0}\u306E\u8AAD\u8FBC\u307F\u30A8\u30E9\u30FC\u3067\u3059\u3002{1} +compiler.err.except.already.caught=\u4F8B\u5916{0}\u306F\u3059\u3067\u306B\u6355\u6349\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.except.never.thrown.in.try=\u4F8B\u5916{0}\u306F\u5BFE\u5FDC\u3059\u308Btry\u6587\u306E\u672C\u4F53\u3067\u306F\u30B9\u30ED\u30FC\u3055\u308C\u307E\u305B\u3093 -compiler.err.final.parameter.may.not.be.assigned=final \u30d1\u30e9\u30e1\u30fc\u30bf {0} \u306b\u5024\u3092\u4ee3\u5165\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.finally.without.try=''finally'' \u3078\u306e ''try'' \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.foreach.not.applicable.to.type=foreach \u306f\u5f0f\u306e\u30bf\u30a4\u30d7\u306b\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.fp.number.too.large=\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u304c\u5927\u304d\u904e\u304e\u307e\u3059\u3002 -compiler.err.fp.number.too.small=\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u304c\u5c0f\u3055\u904e\u304e\u307e\u3059\u3002 +compiler.err.final.parameter.may.not.be.assigned=final\u30D1\u30E9\u30E1\u30FC\u30BF{0}\u306B\u5024\u3092\u4EE3\u5165\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.try.resource.may.not.be.assigned=\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u53EF\u80FD\u306A\u30EA\u30BD\u30FC\u30B9{0}\u306B\u5024\u3092\u4EE3\u5165\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.multicatch.parameter.may.not.be.assigned=\u8907\u6570catch\u30D1\u30E9\u30E1\u30FC\u30BF{0}\u306B\u5024\u3092\u4EE3\u5165\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.finally.without.try=''finally''\u3078\u306E''try''\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.foreach.not.applicable.to.type=foreach\u306F\u5F0F\u306E\u30BF\u30A4\u30D7\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 +compiler.err.fp.number.too.large=\u6D6E\u52D5\u5C0F\u6570\u70B9\u6570\u304C\u5927\u304D\u3059\u304E\u307E\u3059 +compiler.err.fp.number.too.small=\u6D6E\u52D5\u5C0F\u6570\u70B9\u6570\u304C\u5C0F\u3055\u3059\u304E\u307E\u3059 -compiler.err.generic.array.creation=\u6c4e\u7528\u914d\u5217\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 -compiler.err.generic.throwable=\u6c4e\u7528\u30af\u30e9\u30b9\u306f java.lang.Throwable \u3092\u62e1\u5f35\u3067\u304d\u307e\u305b\u3093\u3002 +compiler.err.generic.array.creation=\u6C4E\u7528\u914D\u5217\u3092\u4F5C\u6210\u3057\u307E\u3059 +compiler.err.generic.throwable=\u6C4E\u7528\u30AF\u30E9\u30B9\u306Fjava.lang.Throwable\u3092\u62E1\u5F35\u3067\u304D\u307E\u305B\u3093 -compiler.err.icls.cant.have.static.decl=\u5185\u90e8\u30af\u30e9\u30b9\u304c static \u5ba3\u8a00\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.illegal.bytecode.ident.char=\u4e0d\u6b63\u306a\u30d0\u30a4\u30c8\u30b3\u30fc\u30c9\u8b58\u5225\u5b50\u3067\u3059: \\{0} -compiler.err.illegal.char=\\{0} \u306f\u4e0d\u6b63\u306a\u6587\u5b57\u3067\u3059\u3002 -compiler.err.illegal.char.for.encoding=\u3053\u306e\u6587\u5b57\u306f\u3001\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0 {0} \u306b\u30de\u30c3\u30d7\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.illegal.combination.of.modifiers=\u4fee\u98fe\u5b50 {0} \u3068 {1} \u306e\u7d44\u307f\u5408\u308f\u305b\u306f\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.illegal.enum.static.ref=\u521d\u671f\u5316\u5b50\u304b\u3089 static \u30d5\u30a3\u30fc\u30eb\u30c9\u3078\u306e\u53c2\u7167\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.illegal.esc.char=\u30a8\u30b9\u30b1\u30fc\u30d7\u6587\u5b57\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.illegal.forward.ref=\u9806\u65b9\u5411\u53c2\u7167\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.warn.forward.ref=\u521d\u671f\u5316\u3055\u308c\u308b\u524d\u306e\u5909\u6570 ''{0}'' \u3092\u53c2\u7167\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\u3002 -compiler.err.illegal.self.ref=\u521d\u671f\u5316\u5b50\u5185\u306b\u81ea\u5df1\u53c2\u7167\u304c\u3042\u308a\u307e\u3059\u3002 -compiler.warn.self.ref=\u521d\u671f\u5316\u5b50\u5185\u306b\u5909\u6570 ''{0}'' \u306e\u81ea\u5df1\u53c2\u7167\u304c\u3042\u308a\u307e\u3059\u3002 -compiler.err.illegal.generic.type.for.instof=instanceof \u306e\u7dcf\u79f0\u578b\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.illegal.initializer.for.type={0} \u306e\u521d\u671f\u5316\u5b50\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.illegal.line.end.in.char.lit=\u6587\u5b57\u30ea\u30c6\u30e9\u30eb\u306e\u884c\u672b\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.illegal.nonascii.digit=\u4e0d\u6b63\u306a\u975e ASCII \u6570\u5b57\u3067\u3059\u3002 -compiler.err.illegal.underscore=\u4e0b\u7dda\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.illegal.qual.not.icls=\u4fee\u98fe\u5b50\u304c\u4e0d\u6b63\u3067\u3059\u3002{0} \u306f\u5185\u90e8\u30af\u30e9\u30b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.illegal.start.of.expr=\u5f0f\u306e\u958b\u59cb\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.illegal.start.of.type=\u578b\u306e\u958b\u59cb\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.illegal.unicode.esc=Unicode \u30a8\u30b9\u30b1\u30fc\u30d7\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.import.requires.canonical=\u30a4\u30f3\u30dd\u30fc\u30c8\u306b\u306f {0} \u306e\u6a19\u6e96\u540d\u304c\u5fc5\u8981\u3067\u3059\u3002 -compiler.err.improperly.formed.type.param.missing=\u578b\u306e\u5f62\u5f0f\u304c\u4e0d\u9069\u5207\u3067\u3059\u3002\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u4e0d\u8db3\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.err.improperly.formed.type.inner.raw.param=\u578b\u306e\u5f62\u5f0f\u304c\u4e0d\u9069\u5207\u3067\u3059\u3002raw \u578b\u306b\u6307\u5b9a\u3055\u308c\u305f\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3067\u3059\u3002 -compiler.err.incomparable.types=\u578b {0} \u3068 {1} \u306f\u6bd4\u8f03\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.int.number.too.large=\u6574\u6570 {0} \u304c\u5927\u304d\u904e\u304e\u307e\u3059\u3002 -compiler.err.internal.error.cant.instantiate=\u5185\u90e8\u30a8\u30e9\u30fc\u3067\u3059\u3002{0} \u3092 {1} \u3067 ({2}) \u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u751f\u6210\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.intf.annotation.members.cant.have.params=@interface \u30e1\u30f3\u30d0\u304c\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.intf.annotation.cant.have.type.params=@interface \u304c\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.intf.annotation.members.cant.have.type.params=@interface \u30e1\u30f3\u30d0\u304c\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.intf.annotation.member.clash=@interface \u30e1\u30f3\u30d0\u30fc\u306f {1} \u306e\u30e1\u30bd\u30c3\u30c9 ''{0}'' \u3068\u7af6\u5408\u3057\u307e\u3059 -compiler.err.intf.expected.here=\u3053\u3053\u306b\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u304c\u5fc5\u8981\u3067\u3059\u3002 -compiler.err.intf.meth.cant.have.body=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u30e1\u30bd\u30c3\u30c9\u304c\u672c\u4f53\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.invalid.annotation.member.type=\u6ce8\u91c8\u30e1\u30f3\u30d0\u306e\u578b\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.invalid.binary.number=2 \u9032\u6570\u306b\u306f 2 \u9032\u6570\u5b57\u304c\u6700\u4f4e 1 \u3064\u306f\u542b\u307e\u308c\u3066\u3044\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -compiler.err.invalid.hex.number=16 \u9032\u6570\u306b\u306f 16 \u9032\u6570\u5b57\u304c\u6700\u4f4e 1 \u3064\u306f\u542b\u307e\u308c\u3066\u3044\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -compiler.err.invalid.meth.decl.ret.type.req=\u30e1\u30bd\u30c3\u30c9\u306e\u5ba3\u8a00\u304c\u4e0d\u6b63\u3067\u3059\u3002\u623b\u308a\u5024\u306e\u578b\u304c\u5fc5\u8981\u3067\u3059\u3002 +compiler.err.icls.cant.have.static.decl=\u5185\u90E8\u30AF\u30E9\u30B9\u304Cstatic\u5BA3\u8A00\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.illegal.char=\\{0}\u306F\u4E0D\u6B63\u306A\u6587\u5B57\u3067\u3059 +compiler.err.illegal.char.for.encoding=\u3053\u306E\u6587\u5B57\u306F\u3001\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0{0}\u306B\u30DE\u30C3\u30D7\u3067\u304D\u307E\u305B\u3093 +compiler.err.illegal.combination.of.modifiers=\u4FEE\u98FE\u5B50{0}\u3068{1}\u306E\u7D44\u5408\u305B\u306F\u4E0D\u6B63\u3067\u3059 +compiler.err.illegal.enum.static.ref=\u521D\u671F\u5316\u5B50\u304B\u3089static\u30D5\u30A3\u30FC\u30EB\u30C9\u3078\u306E\u53C2\u7167\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.illegal.esc.char=\u30A8\u30B9\u30B1\u30FC\u30D7\u6587\u5B57\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.illegal.forward.ref=\u524D\u65B9\u53C2\u7167\u304C\u4E0D\u6B63\u3067\u3059 +compiler.warn.forward.ref=\u521D\u671F\u5316\u3055\u308C\u308B\u524D\u306E\u5909\u6570''{0}''\u3092\u53C2\u7167\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F +compiler.err.illegal.self.ref=\u521D\u671F\u5316\u5B50\u5185\u306E\u81EA\u5DF1\u53C2\u7167 +compiler.warn.self.ref=\u521D\u671F\u5316\u5B50\u5185\u306E\u5909\u6570''{0}''\u306E\u81EA\u5DF1\u53C2\u7167 +compiler.err.illegal.generic.type.for.instof=instanceof\u306E\u7DCF\u79F0\u578B\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.illegal.initializer.for.type={0}\u306E\u521D\u671F\u5316\u5B50\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.illegal.line.end.in.char.lit=\u6587\u5B57\u30EA\u30C6\u30E9\u30EB\u306E\u884C\u672B\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.illegal.nonascii.digit=\u4E0D\u6B63\u306A\u975EASCII\u6570\u5B57\u3067\u3059 +compiler.err.illegal.underscore=\u4E0D\u6B63\u306A\u30A2\u30F3\u30C0\u30FC\u30B9\u30B3\u30A2\u3067\u3059 +compiler.err.illegal.qual.not.icls=\u4FEE\u98FE\u5B50\u304C\u4E0D\u6B63\u3067\u3059\u3002{0}\u306F\u5185\u90E8\u30AF\u30E9\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +compiler.err.illegal.start.of.expr=\u5F0F\u306E\u958B\u59CB\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.illegal.start.of.type=\u578B\u306E\u958B\u59CB\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.illegal.unicode.esc=Unicode\u30A8\u30B9\u30B1\u30FC\u30D7\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.import.requires.canonical=\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u306F{0}\u306E\u6A19\u6E96\u540D\u304C\u5FC5\u8981\u3067\u3059 +compiler.err.improperly.formed.type.param.missing=\u578B\u306E\u5F62\u5F0F\u304C\u4E0D\u9069\u5207\u3067\u3059\u3002\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059 +compiler.err.improperly.formed.type.inner.raw.param=\u578B\u306E\u5F62\u5F0F\u304C\u4E0D\u9069\u5207\u3067\u3059\u3002raw\u578B\u306B\u6307\u5B9A\u3055\u308C\u305F\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3067\u3059 +compiler.err.incomparable.types=\u578B{0}\u3068{1}\u306F\u6BD4\u8F03\u3067\u304D\u307E\u305B\u3093 +compiler.err.int.number.too.large=\u6574\u6570{0}\u304C\u5927\u304D\u3059\u304E\u307E\u3059 +compiler.err.internal.error.cant.instantiate=\u5185\u90E8\u30A8\u30E9\u30FC\u3067\u3059\u3002{0}\u3092{1}\u3067({2})\u306B\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u751F\u6210\u3067\u304D\u307E\u305B\u3093 +compiler.err.intf.annotation.members.cant.have.params=@interface\u30E1\u30F3\u30D0\u30FC\u304C\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.intf.annotation.cant.have.type.params=@interface\u304C\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.intf.annotation.members.cant.have.type.params=@interface\u30E1\u30F3\u30D0\u30FC\u304C\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.intf.annotation.member.clash=@interface\u30E1\u30F3\u30D0\u30FC\u306F{1}\u306E\u30E1\u30BD\u30C3\u30C9''{0}''\u3068\u7AF6\u5408\u3057\u307E\u3059 +compiler.err.intf.expected.here=\u3053\u3053\u306B\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u304C\u5FC5\u8981\u3067\u3059 +compiler.err.intf.meth.cant.have.body=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u30FB\u30E1\u30BD\u30C3\u30C9\u304C\u672C\u4F53\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.invalid.annotation.member.type=\u6CE8\u91C8\u30E1\u30F3\u30D0\u30FC\u306E\u578B\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.invalid.binary.number=2\u9032\u6570\u5B57\u306F\u5C11\u306A\u304F\u3068\u30821\u6841\u306E2\u9032\u6570\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.invalid.hex.number=16\u9032\u6570\u5B57\u306F\u5C11\u306A\u304F\u3068\u30821\u6841\u306E16\u9032\u6570\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.invalid.meth.decl.ret.type.req=\u7121\u52B9\u306A\u30E1\u30BD\u30C3\u30C9\u5BA3\u8A00\u3067\u3059\u3002\u623B\u308A\u5024\u306E\u578B\u304C\u5FC5\u8981\u3067\u3059\u3002 -compiler.err.label.already.in.use=\u30e9\u30d9\u30eb {0} \u306f\u3059\u3067\u306b\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.local.var.accessed.from.icls.needs.final=\u30ed\u30fc\u30ab\u30eb\u5909\u6570 {0} \u306f\u5185\u90e8\u30af\u30e9\u30b9\u304b\u3089\u30a2\u30af\u30bb\u30b9\u3055\u308c\u307e\u3059\u3002final \u3067\u5ba3\u8a00\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 -compiler.err.local.enum=\u5217\u6319\u578b\u306f\u30ed\u30fc\u30ab\u30eb\u3067\u306f\u3044\u3051\u307e\u305b\u3093\u3002 -compiler.err.cannot.create.array.with.type.arguments=\u578b\u5f15\u6570\u3092\u4f7f\u3063\u3066\u914d\u5217\u3092\u751f\u6210\u3067\u304d\u307e\u305b\u3093\u3002 +compiler.err.label.already.in.use=\u30E9\u30D9\u30EB{0}\u306F\u3059\u3067\u306B\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.local.var.accessed.from.icls.needs.final=\u30ED\u30FC\u30AB\u30EB\u5909\u6570{0}\u306F\u5185\u90E8\u30AF\u30E9\u30B9\u304B\u3089\u30A2\u30AF\u30BB\u30B9\u3055\u308C\u307E\u3059\u3002final\u3067\u5BA3\u8A00\u3055\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.local.enum=\u5217\u6319\u578B\u306F\u30ED\u30FC\u30AB\u30EB\u306B\u3067\u304D\u307E\u305B\u3093 +compiler.err.cannot.create.array.with.type.arguments=\u578B\u5F15\u6570\u3092\u6301\u3064\u914D\u5217\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093 # # limits. We don't give the limits in the diagnostic because we expect # them to change, yet we want to use the same diagnostic. These are all # detected during code generation. # -compiler.err.limit.code=\u30b3\u30fc\u30c9\u304c\u5927\u304d\u3059\u304e\u307e\u3059\u3002 -compiler.err.limit.code.too.large.for.try.stmt=try \u6587\u306e\u30b3\u30fc\u30c9\u304c\u5927\u304d\u3059\u304e\u307e\u3059\u3002 -compiler.err.limit.dimensions=\u914d\u5217\u578b\u306e\u6b21\u5143\u304c\u591a\u3059\u304e\u307e\u3059\u3002 -compiler.err.limit.locals=\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u304c\u591a\u3059\u304e\u307e\u3059\u3002 -compiler.err.limit.parameters=\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u591a\u3059\u304e\u307e\u3059\u3002 -compiler.err.limit.pool=\u5b9a\u6570\u304c\u591a\u3059\u304e\u307e\u3059\u3002 -compiler.err.limit.pool.in.class=\u30af\u30e9\u30b9 {0} \u5185\u306e\u5b9a\u6570\u304c\u591a\u3059\u304e\u307e\u3059\u3002 -compiler.err.limit.stack=\u30b3\u30fc\u30c9\u304c\u8981\u6c42\u3059\u308b\u30b9\u30bf\u30c3\u30af\u304c\u591a\u3059\u304e\u307e\u3059\u3002 -compiler.err.limit.string=\u5b9a\u6570\u6587\u5b57\u5217\u304c\u9577\u3059\u304e\u307e\u3059\u3002 -compiler.err.limit.string.overflow=\u6587\u5b57\u5217 \"{0}...\" \u306e UTF8 \u8868\u73fe\u304c\u3001\u5b9a\u6570\u30d7\u30fc\u30eb\u306b\u5bfe\u3057\u3066\u9577\u3059\u304e\u307e\u3059\u3002 +compiler.err.limit.code=\u30B3\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059 +compiler.err.limit.code.too.large.for.try.stmt=try\u6587\u306E\u30B3\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059 +compiler.err.limit.dimensions=\u914D\u5217\u578B\u306E\u6B21\u5143\u304C\u591A\u3059\u304E\u307E\u3059 +compiler.err.limit.locals=\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u304C\u591A\u3059\u304E\u307E\u3059 +compiler.err.limit.parameters=\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u591A\u3059\u304E\u307E\u3059 +compiler.err.limit.pool=\u5B9A\u6570\u304C\u591A\u3059\u304E\u307E\u3059 +compiler.err.limit.pool.in.class=\u30AF\u30E9\u30B9{0}\u5185\u306E\u5B9A\u6570\u304C\u591A\u3059\u304E\u307E\u3059 +compiler.err.limit.stack=\u30B3\u30FC\u30C9\u304C\u8981\u6C42\u3059\u308B\u30B9\u30BF\u30C3\u30AF\u304C\u591A\u3059\u304E\u307E\u3059 +compiler.err.limit.string=\u5B9A\u6570\u6587\u5B57\u5217\u304C\u9577\u3059\u304E\u307E\u3059 +compiler.err.limit.string.overflow=\u6587\u5B57\u5217\"{0}...\"\u306EUTF8\u8868\u73FE\u304C\u3001\u5B9A\u6570\u30D7\u30FC\u30EB\u306B\u5BFE\u3057\u3066\u9577\u3059\u304E\u307E\u3059 -compiler.err.malformed.fp.lit=\u6d6e\u52d5\u5c0f\u6570\u70b9\u30ea\u30c6\u30e9\u30eb\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.err.method.does.not.override.superclass=\u30e1\u30bd\u30c3\u30c9\u306f\u30b9\u30fc\u30d1\u30fc\u30bf\u30a4\u30d7\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u307e\u305f\u306f\u5b9f\u88c5\u3057\u307e\u305b\u3093 -compiler.err.missing.meth.body.or.decl.abstract=\u30e1\u30bd\u30c3\u30c9\u672c\u4f53\u304c\u306a\u3044\u304b\u3001abstract \u3068\u3057\u3066\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.missing.ret.stmt=return \u6587\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.err.missing.ret.val=\u623b\u308a\u5024\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.mod.not.allowed.here=\u4fee\u98fe\u5b50 {0} \u3092\u3053\u3053\u3067\u4f7f\u3046\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.intf.not.allowed.here=\u3053\u3053\u3067\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306f\u8a31\u53ef\u3055\u308c\u307e\u305b\u3093 -compiler.err.enums.must.be.static=\u5217\u6319\u578b\u306e\u5ba3\u8a00\u306f static \u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3067\u3057\u304b\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093 +compiler.err.malformed.fp.lit=\u6D6E\u52D5\u5C0F\u6570\u70B9\u30EA\u30C6\u30E9\u30EB\u304C\u4E0D\u6B63\u3067\u3059 +compiler.err.method.does.not.override.superclass=\u30E1\u30BD\u30C3\u30C9\u306F\u30B9\u30FC\u30D1\u30FC\u30BF\u30A4\u30D7\u306E\u30E1\u30BD\u30C3\u30C9\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u307E\u305F\u306F\u5B9F\u88C5\u3057\u307E\u305B\u3093 +compiler.err.missing.meth.body.or.decl.abstract=\u30E1\u30BD\u30C3\u30C9\u672C\u4F53\u304C\u306A\u3044\u304B\u3001abstract\u3068\u3057\u3066\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.missing.ret.stmt=return\u6587\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.err.missing.ret.val=\u623B\u308A\u5024\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.mod.not.allowed.here=\u4FEE\u98FE\u5B50{0}\u3092\u3053\u3053\u3067\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.intf.not.allowed.here=\u3053\u3053\u3067\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093 +compiler.err.enums.must.be.static=\u5217\u6319\u578B\u306E\u5BA3\u8A00\u306Fstatic\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059 -compiler.err.name.clash.same.erasure=\u540d\u524d\u304c\u7af6\u5408\u3057\u3066\u3044\u307e\u3059\u3002{0} \u3068 {1} \u306f\u524a\u9664\u5f8c\u306e\u540d\u524d\u304c\u540c\u3058\u3067\u3059\u3002 -compiler.err.name.clash.same.erasure.no.override=\u540d\u524d\u304c\u7af6\u5408\u3057\u3066\u3044\u307e\u3059\u3002{1} \u306e {0} \u3068 {3} \u306e {2} \u306f\u307e\u3060\u4ed6\u65b9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u3066\u3044\u307e\u305b\u3093\u304c\u3001\u524a\u9664\u5f8c\u306e\u540d\u524d\u304c\u540c\u3058\u3067\u3059\u3002 -compiler.err.name.reserved.for.internal.use={0} \u306f\u5185\u90e8\u3067\u306e\u4f7f\u7528\u306e\u305f\u3081\u4e88\u7d04\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.native.meth.cant.have.body=native \u30e1\u30bd\u30c3\u30c9\u304c\u672c\u4f53\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.neither.conditional.subtype=? \u306b\u5bfe\u3059\u308b\u4e92\u63db\u6027\u306e\u306a\u3044\u578b : \u3069\u3061\u3089\u3082\u4ed6\u65b9\u306e\u30b5\u30d6\u30bf\u30a4\u30d7\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n2 \u756a\u76ee\u306e\u30aa\u30da\u30e9\u30f3\u30c9 : {0}\n3 \u756a\u76ee\u306e\u30aa\u30da\u30e9\u30f3\u30c9 : {1} -compiler.err.new.not.allowed.in.annotation=''new'' \u306f\u6ce8\u91c8\u306b\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093 -compiler.err.no.annotation.member={1} \u306e\u6ce8\u91c8\u30e1\u30f3\u30d0 {0} \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.no.encl.instance.of.type.in.scope=\u578b {0} \u306e\u5185\u90e8\u30af\u30e9\u30b9\u3092\u56f2\u3080\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u30b9\u30b3\u30fc\u30d7\u5185\u306b\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.no.intf.expected.here=\u3053\u3053\u306b\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306f\u5fc5\u8981\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.no.match.entry={0} \u306f {1} \u306e\u30a8\u30f3\u30c8\u30ea\u306b\u9069\u5408\u3057\u307e\u305b\u3093\u3002{2} \u304c\u5fc5\u8981\u3067\u3059\u3002 -compiler.err.not.annotation.type={0} \u306f\u6ce8\u91c8\u578b\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.not.def.access.class.intf.cant.access={1} \u306e {0} \u304c\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u3044\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059 -compiler.err.not.def.public.cant.access={1} \u306e {0} \u306f public \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u30d1\u30c3\u30b1\u30fc\u30b8\u5916\u304b\u3089\u306f\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.not.loop.label={0} \u306f\u30eb\u30fc\u30d7\u30e9\u30d9\u30eb\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.not.stmt=\u6587\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.not.encl.class={0} \u306f\u5185\u90e8\u30af\u30e9\u30b9\u3092\u56f2\u307f\u307e\u305b\u3093\u3002 +compiler.err.name.clash.same.erasure=\u540D\u524D\u304C\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059\u3002{0}\u3068{1}\u306F\u524A\u9664\u5F8C\u306E\u540D\u524D\u304C\u540C\u3058\u3067\u3059 +compiler.err.name.clash.same.erasure.no.override=\u540D\u524D\u304C\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059\u3002{1}\u306E{0}\u3068{3}\u306E{2}\u306F\u307E\u3060\u4ED6\u65B9\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u3066\u3044\u307E\u305B\u3093\u304C\u3001\u524A\u9664\u5F8C\u306E\u540D\u524D\u304C\u540C\u3058\u3067\u3059 +compiler.err.name.reserved.for.internal.use={0}\u306F\u5185\u90E8\u3067\u306E\u4F7F\u7528\u306E\u305F\u3081\u4E88\u7D04\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.native.meth.cant.have.body=native\u30E1\u30BD\u30C3\u30C9\u304C\u672C\u4F53\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.neither.conditional.subtype=?\u306B\u5BFE\u3059\u308B\u4E92\u63DB\u6027\u306E\u306A\u3044\u578B : \u3069\u3061\u3089\u3082\u4ED6\u65B9\u306E\u30B5\u30D6\u30BF\u30A4\u30D7\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n2\u756A\u76EE\u306E\u30AA\u30DA\u30E9\u30F3\u30C9 : {0}\n3\u756A\u76EE\u306E\u30AA\u30DA\u30E9\u30F3\u30C9 : {1} +compiler.err.new.not.allowed.in.annotation=''new''\u306F\u6CE8\u91C8\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 +compiler.err.no.annotation.member={1}\u306E\u6CE8\u91C8\u30E1\u30F3\u30D0\u30FC{0}\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.no.encl.instance.of.type.in.scope=\u578B{0}\u306E\u5185\u90E8\u30AF\u30E9\u30B9\u3092\u56F2\u3080\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u30B9\u30B3\u30FC\u30D7\u5185\u306B\u3042\u308A\u307E\u305B\u3093 +compiler.err.no.intf.expected.here=\u3053\u3053\u306B\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306F\u5FC5\u8981\u3042\u308A\u307E\u305B\u3093 +compiler.err.no.match.entry={0}\u306F{1}\u306E\u30A8\u30F3\u30C8\u30EA\u306B\u9069\u5408\u3057\u307E\u305B\u3093\u3002{2}\u304C\u5FC5\u8981\u3067\u3059 +compiler.err.not.annotation.type={0}\u306F\u6CE8\u91C8\u578B\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +compiler.err.not.def.access.class.intf.cant.access={1}\u306E{0}\u304C\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u306A\u3044\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.not.def.public.cant.access={1}\u306E{0}\u306Fpublic\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30D1\u30C3\u30B1\u30FC\u30B8\u5916\u304B\u3089\u306F\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093 +compiler.err.not.loop.label={0}\u306F\u30EB\u30FC\u30D7\u30FB\u30E9\u30D9\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +compiler.err.not.stmt=\u6587\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +compiler.err.not.encl.class={0}\u306F\u5185\u90E8\u30AF\u30E9\u30B9\u3092\u56F2\u307F\u307E\u305B\u3093 -compiler.err.operator.cant.be.applied=\u6f14\u7b97\u5b50 {0} \u306f {1} \u306b\u9069\u7528\u3067\u304d\u307e\u305b\u3093\u3002 +compiler.err.operator.cant.be.applied=\u6F14\u7B97\u5B50{0}\u306F{1}\u306B\u9069\u7528\u3067\u304D\u307E\u305B\u3093 -compiler.err.pkg.annotations.sb.in.package-info.java=\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6ce8\u91c8\u306f\u30d5\u30a1\u30a4\u30eb package-info.java \u5185\u306b\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -compiler.err.pkg.clashes.with.class.of.same.name=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306f\u540c\u540d\u306e\u30af\u30e9\u30b9\u3068\u7af6\u5408\u3057\u3066\u3044\u307e\u3059\u3002 +compiler.err.pkg.annotations.sb.in.package-info.java=\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6CE8\u91C8\u306F\u30D5\u30A1\u30A4\u30EBpackage-info.java\u5185\u306B\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.pkg.clashes.with.class.of.same.name=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306F\u540C\u540D\u306E\u30AF\u30E9\u30B9\u3068\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059 -compiler.err.warnings.and.werror=\u8b66\u544a\u3092\u691c\u51fa\u3057 -Werror \u304c\u6307\u5b9a\u3055\u308c\u307e\u3057\u305f\u3002 +compiler.err.warnings.and.werror=\u8B66\u544A\u304C\u898B\u3064\u304B\u308A-Werror\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F # Errors related to annotation processing -compiler.err.proc.cant.access={0} \u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\n{1}\n\u8a73\u7d30\u306f\u6b21\u306e\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u3067\u8abf\u67fb\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n{2} +compiler.err.proc.cant.access={0}\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\n{1}\n\u8A73\u7D30\u306F\u6B21\u306E\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9\u3067\u8ABF\u67FB\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n{2} -compiler.err.proc.cant.find.class=''{0}'' \u306e\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 +compiler.err.proc.cant.find.class=''{0}''\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 # Print a client-generated error message; assumed to be localized, no translation required compiler.err.proc.messager={0} -compiler.err.proc.no.explicit.annotation.processing.requested=\u30af\u30e9\u30b9\u540d ''{0}'' \u304c\u53d7\u3051\u5165\u308c\u3089\u308c\u308b\u306e\u306f\u3001\u6ce8\u91c8\u51e6\u7406\u304c\u660e\u793a\u7684\u306b\u8981\u6c42\u3055\u308c\u305f\u5834\u5408\u3060\u3051\u3067\u3059 +compiler.err.proc.no.explicit.annotation.processing.requested=\u30AF\u30E9\u30B9\u540D''{0}''\u304C\u53D7\u3051\u5165\u308C\u3089\u308C\u308B\u306E\u306F\u3001\u6CE8\u91C8\u51E6\u7406\u304C\u660E\u793A\u7684\u306B\u30EA\u30AF\u30A8\u30B9\u30C8\u3055\u308C\u305F\u5834\u5408\u306E\u307F\u3067\u3059 -compiler.err.proc.no.service=\u30b5\u30fc\u30d3\u30b9\u30ed\u30fc\u30c0\u30fc\u30af\u30e9\u30b9\u304c\u307f\u3064\u304b\u308a\u307e\u305b\u3093\u3002\njava.util.ServiceLoader \u3082\u3057\u304f\u306f sun.misc.Service \u304c\u5229\u7528\u53ef\u80fd\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 +compiler.err.proc.no.service=\u30B5\u30FC\u30D3\u30B9\u30FB\u30ED\u30FC\u30C0\u30FC\u30FB\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\njava.util.ServiceLoader\u304Bsun.misc.Service\u304C\u4F7F\u7528\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 -compiler.err.proc.processor.bad.option.name=\u30d7\u30ed\u30bb\u30c3\u30b5 ''{1}'' \u306b\u3088\u3063\u3066\u6307\u5b9a\u3055\u308c\u305f\u30aa\u30d7\u30b7\u30e7\u30f3\u540d ''{0}'' \u304c\u4e0d\u6b63\u3067\u3059 +compiler.err.proc.processor.bad.option.name=\u30D7\u30ED\u30BB\u30C3\u30B5''{1}''\u306B\u3088\u3063\u3066\u6307\u5B9A\u3055\u308C\u305F\u30AA\u30D7\u30B7\u30E7\u30F3\u540D''{0}''\u304C\u4E0D\u6B63\u3067\u3059 -compiler.err.proc.processor.cant.instantiate=\u30d7\u30ed\u30bb\u30c3\u30b5 ''{0}'' \u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f +compiler.err.proc.processor.cant.instantiate=\u30D7\u30ED\u30BB\u30C3\u30B5''{0}''\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F -compiler.err.proc.processor.constructor.error=\u30d7\u30ed\u30bb\u30c3\u30b5\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u69cb\u7bc9\u4e2d\u306b\u4f8b\u5916\u304c\u30b9\u30ed\u30fc\u3055\u308c\u307e\u3057\u305f: {0} +compiler.err.proc.processor.constructor.error=\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u69CB\u7BC9\u4E2D\u306B\u4F8B\u5916\u304C\u30B9\u30ED\u30FC\u3055\u308C\u307E\u3057\u305F: {0} -compiler.err.proc.processor.not.found=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5 ''{0}'' \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 +compiler.err.proc.processor.not.found=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5''{0}''\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -compiler.err.proc.processor.wrong.type=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5 ''{0}'' \u304c javax.annotation.processing.Processor \u3092\u5b9f\u88c5\u3057\u3066\u3044\u307e\u305b\u3093 +compiler.err.proc.processor.wrong.type=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5''{0}''\u304Cjavax.annotation.processing.Processor\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u305B\u3093 -compiler.err.proc.service.problem=Processor \u3092\u30ed\u30fc\u30c9\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u30ed\u30fc\u30c0\u30fc\u306e\u751f\u6210\u6642\u306e\u30a8\u30e9\u30fc\u3067\u3059\u3002 +compiler.err.proc.service.problem=\u30D7\u30ED\u30BB\u30C3\u30B5\u3092\u30ED\u30FC\u30C9\u3059\u308B\u305F\u3081\u306E\u30B5\u30FC\u30D3\u30B9\u30FB\u30ED\u30FC\u30C0\u30FC\u3092\u4F5C\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 -compiler.err.proc.bad.config.file=\u30b5\u30fc\u30d3\u30b9\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u304c\u4e0d\u6b63\u3067\u3042\u308b\u304b\u3001\u30d7\u30ed\u30bb\u30c3\u30b5\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u69cb\u7bc9\u4e2d\u306b\u4f8b\u5916\u304c\u30b9\u30ed\u30fc\u3055\u308c\u307e\u3057\u305f: {0} +compiler.err.proc.bad.config.file=\u30B5\u30FC\u30D3\u30B9\u69CB\u6210\u30D5\u30A1\u30A4\u30EB\u304C\u4E0D\u6B63\u3067\u3042\u308B\u304B\u3001\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u69CB\u7BC9\u4E2D\u306B\u4F8B\u5916\u304C\u30B9\u30ED\u30FC\u3055\u308C\u307E\u3057\u305F: {0} -compiler.err.proc.cant.create.loader=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306e\u30af\u30e9\u30b9\u30ed\u30fc\u30c0\u30fc\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f: {0} +compiler.err.proc.cant.create.loader=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306E\u30AF\u30E9\u30B9\u30FB\u30ED\u30FC\u30C0\u30FC\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: {0} -compiler.err.qualified.new.of.static.class=static \u30af\u30e9\u30b9\u306e new \u304c\u4fee\u98fe\u3055\u308c\u3066\u3044\u307e\u3059\u3002 +compiler.err.qualified.new.of.static.class=static\u30AF\u30E9\u30B9\u306Enew\u304C\u4FEE\u98FE\u3055\u308C\u3066\u3044\u307E\u3059 -compiler.err.recursive.ctor.invocation=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u547c\u3073\u51fa\u3057\u304c\u518d\u5e30\u7684\u3067\u3059\u3002 -compiler.err.ref.ambiguous={0} \u306e\u53c2\u7167\u306f\u3042\u3044\u307e\u3044\u3067\u3059\u3002{3} \u306e {1} {2} \u3068 {6} \u306e {4} {5} \u304c\u4e21\u65b9\u9069\u5408\u3057\u307e\u3059\u3002 -compiler.err.repeated.annotation.target=\u6ce8\u91c8\u30bf\u30fc\u30b2\u30c3\u30c8\u304c\u7e70\u308a\u8fd4\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.repeated.interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u304c\u7e70\u308a\u8fd4\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.repeated.modifier=\u4fee\u98fe\u5b50\u304c\u7e70\u308a\u8fd4\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.err.report.access={0} \u306f {2} \u3067 {1} \u30a2\u30af\u30bb\u30b9\u3055\u308c\u307e\u3059\u3002 -compiler.err.ret.outside.meth=\u30e1\u30bd\u30c3\u30c9\u306e\u5916\u306e return \u6587\u3067\u3059\u3002 +compiler.err.recursive.ctor.invocation=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u547C\u51FA\u3057\u304C\u518D\u5E30\u7684\u3067\u3059 +compiler.err.ref.ambiguous={0}\u306E\u53C2\u7167\u306F\u3042\u3044\u307E\u3044\u3067\u3059\u3002{3}\u306E{1} {2}\u3068{6}\u306E{4} {5}\u304C\u4E21\u65B9\u9069\u5408\u3057\u307E\u3059 +compiler.err.repeated.annotation.target=\u6CE8\u91C8\u30BF\u30FC\u30B2\u30C3\u30C8\u304C\u7E70\u308A\u8FD4\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.repeated.interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u304C\u7E70\u308A\u8FD4\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.repeated.modifier=\u4FEE\u98FE\u5B50\u304C\u7E70\u308A\u8FD4\u3055\u308C\u3066\u3044\u307E\u3059 +compiler.err.report.access={0}\u306F{2}\u3067{1}\u30A2\u30AF\u30BB\u30B9\u3055\u308C\u307E\u3059 +compiler.err.ret.outside.meth=\u30E1\u30BD\u30C3\u30C9\u306E\u5916\u306Ereturn\u6587\u3067\u3059 -compiler.err.signature.doesnt.match.supertype=\u30b7\u30b0\u30cb\u30c1\u30e3\u30fc\u304c {0} \u306b\u9069\u5408\u3057\u307e\u305b\u3093\u3002\u4e92\u63db\u6027\u306e\u306a\u3044\u30b9\u30fc\u30d1\u30fc\u30bf\u30a4\u30d7\u3067\u3059\u3002 -compiler.err.signature.doesnt.match.intf=\u30b7\u30b0\u30cb\u30c1\u30e3\u30fc\u304c {0} \u306b\u9069\u5408\u3057\u307e\u305b\u3093\u3002\u4e92\u63db\u6027\u306e\u306a\u3044\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3067\u3059\u3002 -compiler.err.does.not.override.abstract={0} \u306f abstract \u3067\u306a\u304f\u3001{2} \u5185\u306e abstract \u30e1\u30bd\u30c3\u30c9 {1} \u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u307e\u305b\u3093\u3002 -compiler.err.source.cant.overwrite.input.file=\u30bd\u30fc\u30b9\u306e\u66f8\u304d\u8fbc\u307f\u30a8\u30e9\u30fc\u3067\u3059\u3002\u5165\u529b\u30d5\u30a1\u30a4\u30eb {0} \u3092\u4e0a\u66f8\u304d\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.stack.sim.error=\u5185\u90e8\u30a8\u30e9\u30fc: {0} \u3067\u306e\u30b9\u30bf\u30c3\u30af\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc -compiler.err.static.imp.only.classes.and.interfaces=static import \u306f\u30af\u30e9\u30b9\u3068\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u304b\u3089\u306e\u307f\u3068\u306a\u308a\u307e\u3059\u3002 -compiler.err.string.const.req=\u5b9a\u6570\u6587\u5b57\u5217\u5f0f\u304c\u5fc5\u8981\u3067\u3059\u3002 -compiler.err.synthetic.name.conflict=\u30b7\u30f3\u30dc\u30eb {0} \u304c\u3001{1} \u3067\u30b3\u30f3\u30d1\u30a4\u30e9\u304c\u5408\u6210\u3057\u305f\u30b7\u30f3\u30dc\u30eb\u3068\u7af6\u5408\u3057\u307e\u3059\u3002 -compiler.warn.synthetic.name.conflict=\u30b7\u30f3\u30dc\u30eb {0} \u304c\u3001{1} \u3067\u30b3\u30f3\u30d1\u30a4\u30e9\u304c\u5408\u6210\u3057\u305f\u30b7\u30f3\u30dc\u30eb\u3068\u7af6\u5408\u3057\u307e\u3059\u3002 +compiler.err.signature.doesnt.match.supertype=\u30B7\u30B0\u30CB\u30C1\u30E3\u304C{0}\u306B\u9069\u5408\u3057\u307E\u305B\u3093\u3002\u4E92\u63DB\u6027\u306E\u306A\u3044\u30B9\u30FC\u30D1\u30FC\u30BF\u30A4\u30D7\u3067\u3059 +compiler.err.signature.doesnt.match.intf=\u30B7\u30B0\u30CB\u30C1\u30E3\u304C{0}\u306B\u9069\u5408\u3057\u307E\u305B\u3093\u3002\u4E92\u63DB\u6027\u306E\u306A\u3044\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059 +compiler.err.does.not.override.abstract={0}\u306Fabstract\u3067\u306A\u304F\u3001{2}\u5185\u306Eabstract\u30E1\u30BD\u30C3\u30C9{1}\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u305B\u3093 +compiler.err.source.cant.overwrite.input.file=\u30BD\u30FC\u30B9\u306E\u66F8\u8FBC\u307F\u30A8\u30E9\u30FC\u3067\u3059\u3002\u5165\u529B\u30D5\u30A1\u30A4\u30EB{0}\u3092\u4E0A\u66F8\u304D\u3067\u304D\u307E\u305B\u3093 +compiler.err.stack.sim.error=\u5185\u90E8\u30A8\u30E9\u30FC: {0}\u3067\u306E\u30B9\u30BF\u30C3\u30AF\u30FB\u30B7\u30DF\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3\u30FB\u30A8\u30E9\u30FC +compiler.err.static.imp.only.classes.and.interfaces=static import\u306F\u30AF\u30E9\u30B9\u3068\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u304B\u3089\u306E\u307F\u3068\u306A\u308A\u307E\u3059 +compiler.err.string.const.req=\u5B9A\u6570\u306E\u6587\u5B57\u5217\u5F0F\u304C\u5FC5\u8981\u3067\u3059 +compiler.err.synthetic.name.conflict=\u30B7\u30F3\u30DC\u30EB{0}\u304C\u3001{1}\u3067\u30B3\u30F3\u30D1\u30A4\u30E9\u304C\u5408\u6210\u3057\u305F\u30B7\u30F3\u30DC\u30EB\u3068\u7AF6\u5408\u3057\u307E\u3059 +compiler.warn.synthetic.name.conflict=\u30B7\u30F3\u30DC\u30EB{0}\u304C\u3001{1}\u3067\u30B3\u30F3\u30D1\u30A4\u30E9\u304C\u5408\u6210\u3057\u305F\u30B7\u30F3\u30DC\u30EB\u3068\u7AF6\u5408\u3057\u307E\u3059 -compiler.err.throws.not.allowed.in.intf.annotation=throws \u7bc0\u3092 @interface \u30e1\u30f3\u30d0\u3067\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.try.without.catch.or.finally=''try'' \u3078\u306e ''catch'' \u307e\u305f\u306f ''finally'' \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.type.doesnt.take.params=\u578b {0} \u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3068\u308a\u307e\u305b\u3093\u3002 -compiler.err.type.var.cant.be.deref=\u578b\u5909\u6570\u304b\u3089\u9078\u629e\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.type.var.may.not.be.followed.by.other.bounds=\u3053\u306e\u578b\u5909\u6570\u306e\u5f8c\u308d\u306b\u4ed6\u306e\u5883\u754c\u3092\u914d\u7f6e\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.type.var.more.than.once=\u578b\u5909\u6570 {0} \u306f {1} \u306e\u623b\u308a\u5024\u306e\u578b\u3067 2 \u56de\u4ee5\u4e0a\u51fa\u73fe\u3057\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u751f\u6210\u3055\u308c\u306a\u3044\u307e\u307e\u306b\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.type.var.more.than.once.in.result=\u578b\u5909\u6570 {0} \u306f {1} \u306e\u578b\u3067 2 \u56de\u4ee5\u4e0a\u51fa\u73fe\u3057\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u751f\u6210\u3055\u308c\u306a\u3044\u307e\u307e\u306b\u306f\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.types.incompatible.diff.ret=\u578b {0} \u3068\u578b {1} \u306e\u4e92\u63db\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u4e21\u65b9\u3068\u3082 {2} \u3092\u5b9a\u7fa9\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u623b\u308a\u5024\u306e\u578b\u304c\u7121\u95a2\u4fc2\u3067\u3059\u3002 +compiler.err.throws.not.allowed.in.intf.annotation=throws\u7BC0\u3092@interface\u30E1\u30F3\u30D0\u30FC\u3067\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.try.without.catch.or.finally=''try''\u3078\u306E''catch''\u307E\u305F\u306F''finally''\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.try.without.catch.finally.or.resource.decls=''try''\u3078\u306E''catch''\u3001''finally''\u307E\u305F\u306F\u30EA\u30BD\u30FC\u30B9\u5BA3\u8A00\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.type.doesnt.take.params=\u578B{0}\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u3068\u308A\u307E\u305B\u3093 +compiler.err.type.var.cant.be.deref=\u578B\u5909\u6570\u304B\u3089\u9078\u629E\u3067\u304D\u307E\u305B\u3093 +compiler.err.type.var.may.not.be.followed.by.other.bounds=\u3053\u306E\u578B\u5909\u6570\u306E\u5F8C\u308D\u306B\u4ED6\u306E\u5883\u754C\u3092\u914D\u7F6E\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.type.var.more.than.once=\u578B\u5909\u6570{0}\u306F{1}\u306E\u623B\u308A\u5024\u306E\u578B\u30672\u56DE\u4EE5\u4E0A\u51FA\u73FE\u3057\u307E\u3059\u3002\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u751F\u6210\u3055\u308C\u306A\u3044\u307E\u307E\u306B\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.type.var.more.than.once.in.result=\u578B\u5909\u6570{0}\u306F{1}\u306E\u578B\u30672\u56DE\u4EE5\u4E0A\u51FA\u73FE\u3057\u307E\u3059\u3002\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u751F\u6210\u3055\u308C\u306A\u3044\u307E\u307E\u306B\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.err.types.incompatible.diff.ret=\u578B{0}\u3068\u578B{1}\u306E\u4E92\u63DB\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u4E21\u65B9\u3068\u3082{2}\u3092\u5B9A\u7FA9\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u623B\u308A\u5024\u306E\u578B\u304C\u7121\u95A2\u4FC2\u3067\u3059 -compiler.err.unclosed.bytecode.ident=\u30d0\u30a4\u30c8\u30b3\u30fc\u30c9\u8b58\u5225\u5b50\u304c\u9589\u3058\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.err.unclosed.char.lit=\u6587\u5b57\u30ea\u30c6\u30e9\u30eb\u304c\u9589\u3058\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.err.unclosed.comment=\u30b3\u30e1\u30f3\u30c8\u304c\u9589\u3058\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.err.unclosed.str.lit=\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u304c\u9589\u3058\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.err.unknown.enum.constant=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb {0} \u5185: \u4e0d\u660e\u306a\u5217\u6319\u578b\u5b9a\u6570\u3067\u3059 {1}.{2} -compiler.err.unsupported.encoding=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3067\u3059: {0} -compiler.err.io.exception=\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u53d6\u308a\u30a8\u30e9\u30fc\u3067\u3059: {0} -compiler.err.undef.label=\u30e9\u30d9\u30eb {0} \u306f\u672a\u5b9a\u7fa9\u3067\u3059\u3002 -compiler.err.undetermined.type={0} \u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u5224\u5225\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.err.undetermined.type.1=\u578b\u30d1\u30e9\u30e1\u30fc\u30bf {0} \u3092\u5224\u5225\u3067\u304d\u307e\u305b\u3093; {1} -compiler.err.invalid.inferred.types={0} \u306e\u63a8\u5b9a\u3055\u308c\u305f\u578b\u304c\u4e0d\u6b63\u3067\u3059; {1} -compiler.err.unreachable.stmt=\u3053\u306e\u6587\u306b\u5236\u5fa1\u304c\u79fb\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.initializer.must.be.able.to.complete.normally=\u521d\u671f\u5316\u5b50\u306f\u6b63\u5e38\u306b\u5b8c\u4e86\u3067\u304d\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -compiler.err.unreported.exception.need.to.catch.or.throw=\u4f8b\u5916 {0} \u306f\u5831\u544a\u3055\u308c\u307e\u305b\u3093\u3002\u30b9\u30ed\u30fc\u3059\u308b\u306b\u306f\u30ad\u30e3\u30c3\u30c1\u307e\u305f\u306f\u3001\u30b9\u30ed\u30fc\u5ba3\u8a00\u3092\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -compiler.err.unreported.exception.default.constructor=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u5185\u306b\u5831\u544a\u3055\u308c\u306a\u3044\u4f8b\u5916 {0} \u304c\u5b58\u5728\u3057\u307e\u3059\u3002 -compiler.err.unsupported.cross.fp.lit=16 \u9032\u6d6e\u52d5\u5c0f\u6570\u70b9\u30ea\u30c6\u30e9\u30eb\u306f\u3053\u306e VM \u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.err.void.not.allowed.here=\u3053\u3053\u3067 ''void'' \u578b\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 +compiler.err.unclosed.char.lit=\u6587\u5B57\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.err.unclosed.comment=\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.err.unclosed.str.lit=\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.err.unknown.enum.constant=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB{0}\u5185: \u4E0D\u660E\u306A\u5217\u6319\u578B\u5B9A\u6570\u3067\u3059{1}.{2} +compiler.err.unsupported.encoding=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3067\u3059: {0} +compiler.err.io.exception=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u53D6\u308A\u30A8\u30E9\u30FC\u3067\u3059: {0} +compiler.err.undef.label=\u30E9\u30D9\u30EB{0}\u306F\u672A\u5B9A\u7FA9\u3067\u3059 +compiler.err.undetermined.type={0}\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u5224\u5225\u3067\u304D\u307E\u305B\u3093 +compiler.err.undetermined.type.1=\u578B\u30D1\u30E9\u30E1\u30FC\u30BF{0}\u3092\u5224\u5225\u3067\u304D\u307E\u305B\u3093\u3002{1} +compiler.err.invalid.inferred.types={0}\u306E\u63A8\u5B9A\u578B\u304C\u7121\u52B9\u3067\u3059\u3002{1} +compiler.err.cant.apply.diamond={0}\u306E\u578B\u5F15\u6570\u3092\u63A8\u5B9A\u3067\u304D\u307E\u305B\u3093 +compiler.err.cant.apply.diamond.1={0}\u306E\u578B\u5F15\u6570\u3092\u63A8\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\n\u7406\u7531: {1} +compiler.err.unreachable.stmt=\u3053\u306E\u6587\u306B\u5236\u5FA1\u304C\u79FB\u308B\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093 +compiler.err.initializer.must.be.able.to.complete.normally=\u521D\u671F\u5316\u5B50\u306F\u6B63\u5E38\u306B\u5B8C\u4E86\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.unreported.exception.need.to.catch.or.throw=\u4F8B\u5916{0}\u306F\u5831\u544A\u3055\u308C\u307E\u305B\u3093\u3002\u30B9\u30ED\u30FC\u3059\u308B\u306B\u306F\u3001\u6355\u6349\u307E\u305F\u306F\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +compiler.err.unreported.exception.default.constructor=\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u5185\u306B\u5831\u544A\u3055\u308C\u306A\u3044\u4F8B\u5916{0}\u304C\u5B58\u5728\u3057\u307E\u3059 +compiler.err.unsupported.cross.fp.lit=16\u9032\u6D6E\u52D5\u5C0F\u6570\u70B9\u30EA\u30C6\u30E9\u30EB\u306F\u3053\u306EVM\u3067\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.err.void.not.allowed.here=\u3053\u3053\u3067''void''\u578B\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 -compiler.err.wrong.number.type.args=\u578b\u5f15\u6570\u306e\u6570\u304c\u4e0d\u6b63\u3067\u3059\u3002{0} \u500b\u5fc5\u8981\u3067\u3059\u3002 +compiler.err.wrong.number.type.args=\u578B\u5F15\u6570\u306E\u6570\u304C\u4E0D\u6B63\u3067\u3059\u3002{0}\u500B\u5FC5\u8981\u3067\u3059 -compiler.err.var.might.already.be.assigned=\u5909\u6570 {0} \u306f\u3059\u3067\u306b\u4ee3\u5165\u3055\u308c\u3066\u3044\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 -compiler.err.var.might.not.have.been.initialized=\u5909\u6570 {0} \u306f\u521d\u671f\u5316\u3055\u308c\u3066\u3044\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 -compiler.err.var.might.be.assigned.in.loop=\u5909\u6570 {0} \u306f\u30eb\u30fc\u30d7\u5185\u3067\u4ee3\u5165\u3055\u308c\u3066\u3044\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 +compiler.err.var.might.already.be.assigned=\u5909\u6570{0}\u306F\u3059\u3067\u306B\u4EE3\u5165\u3055\u308C\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 +compiler.err.var.might.not.have.been.initialized=\u5909\u6570{0}\u306F\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 +compiler.err.var.might.be.assigned.in.loop=\u5909\u6570{0}\u306F\u30EB\u30FC\u30D7\u5185\u3067\u4EE3\u5165\u3055\u308C\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 # In the following string, {1} will always be the detail message from # java.io.IOException. -compiler.err.class.cant.write={0} \u306e\u66f8\u304d\u8fbc\u307f\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002{1} +compiler.err.class.cant.write={0}\u306E\u66F8\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {1} # In the following string, {0} is the name of the class in the Java source. # It really should be used two times.. -compiler.err.class.public.should.be.in.file=\u30af\u30e9\u30b9 {0} \u306f public \u3067\u3042\u308a\u3001\u30d5\u30a1\u30a4\u30eb {0}.java \u3067\u5ba3\u8a00\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 +compiler.err.class.public.should.be.in.file=\u30AF\u30E9\u30B9{0}\u306Fpublic\u3067\u3042\u308A\u3001\u30D5\u30A1\u30A4\u30EB{0}.java\u3067\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 ## All errors which do not refer to a particular line in the source code are ## preceded by this string. -compiler.err.error=\u30a8\u30e9\u30fc: +compiler.err.error=\u30A8\u30E9\u30FC:\u0020 # The following error messages do not refer to a line in the source code. -compiler.err.cant.read.file={0} \u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3002 +compiler.err.cant.read.file={0}\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093 ##### # Fatal Errors -compiler.misc.fatal.err.no.java.lang=\u81f4\u547d\u7684\u30a8\u30e9\u30fc: \u30af\u30e9\u30b9\u30d1\u30b9\u307e\u305f\u306f\u30d6\u30fc\u30c8\u30af\u30e9\u30b9\u30d1\u30b9\u3067\u30d1\u30c3\u30b1\u30fc\u30b8 java.lang \u3092\u691c\u51fa\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.misc.fatal.err.cant.locate.meth=\u81f4\u547d\u7684\u30a8\u30e9\u30fc: \u30e1\u30bd\u30c3\u30c9 {0} \u3092\u691c\u51fa\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.misc.fatal.err.cant.locate.field=\u81f4\u547d\u7684\u30a8\u30e9\u30fc: \u30d5\u30a3\u30fc\u30eb\u30c9 {0} \u3092\u691c\u51fa\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.misc.fatal.err.cant.locate.ctor=\u81f4\u547d\u7684\u30a8\u30e9\u30fc: {0} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u691c\u51fa\u3067\u304d\u307e\u305b\u3093\u3002 +compiler.misc.fatal.err.no.java.lang=\u81F4\u547D\u7684\u30A8\u30E9\u30FC: \u30AF\u30E9\u30B9\u30D1\u30B9\u307E\u305F\u306F\u30D6\u30FC\u30C8\u30FB\u30AF\u30E9\u30B9\u30D1\u30B9\u3067\u30D1\u30C3\u30B1\u30FC\u30B8java.lang\u3092\u691C\u51FA\u3067\u304D\u307E\u305B\u3093 +compiler.misc.fatal.err.cant.locate.meth=\u81F4\u547D\u7684\u30A8\u30E9\u30FC: \u30E1\u30BD\u30C3\u30C9{0}\u3092\u691C\u51FA\u3067\u304D\u307E\u305B\u3093 +compiler.misc.fatal.err.cant.locate.field=\u81F4\u547D\u7684\u30A8\u30E9\u30FC: \u30D5\u30A3\u30FC\u30EB\u30C9{0}\u3092\u691C\u51FA\u3067\u304D\u307E\u305B\u3093 +compiler.misc.fatal.err.cant.locate.ctor=\u81F4\u547D\u7684\u30A8\u30E9\u30FC: {0}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u3092\u691C\u51FA\u3067\u304D\u307E\u305B\u3093 +compiler.misc.fatal.err.cant.close.loader=\u81F4\u547D\u7684\u30A8\u30E9\u30FC: \u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306E\u30AF\u30E9\u30B9\u30FB\u30ED\u30FC\u30C0\u30FC\u3092\u9589\u3058\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 ##### @@ -312,42 +320,51 @@ ## miscellaneous strings ## -compiler.misc.source.unavailable=(\u30bd\u30fc\u30b9\u304c\u5229\u7528\u4e0d\u53ef) -compiler.misc.base.membership=\u3059\u3079\u3066\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u304c\u3001\u30e1\u30f3\u30d0\u3067\u3059\u3002 -compiler.misc.x.print.processor.info=\u30d7\u30ed\u30bb\u30c3\u30b5 {0} \u306f {1} \u306b\u4e00\u81f4\u3057\u3001{2} \u3092\u8fd4\u3057\u307e\u3059\u3002 -compiler.misc.x.print.rounds=\u5f80\u5fa9 {0}:\n\t\u5165\u529b\u30d5\u30a1\u30a4\u30eb: {1}\n\t\u6ce8\u91c8: {2}\n\t\u6700\u5f8c\u306e\u5f80\u5fa9: {3} +compiler.misc.source.unavailable=(\u30BD\u30FC\u30B9\u304C\u5229\u7528\u4E0D\u53EF) +compiler.misc.base.membership=\u3059\u3079\u3066\u306E\u30D9\u30FC\u30B9\u30FB\u30AF\u30E9\u30B9\u304C\u30E1\u30F3\u30D0\u30FC\u3067\u3059 +compiler.misc.x.print.processor.info=\u30D7\u30ED\u30BB\u30C3\u30B5{0}\u306F{1}\u306B\u4E00\u81F4\u3057\u3001{2}\u3092\u8FD4\u3057\u307E\u3059\u3002 +compiler.misc.x.print.rounds=\u5F80\u5FA9{0}:\n\t\u5165\u529B\u30D5\u30A1\u30A4\u30EB: {1}\n\t\u6CE8\u91C8: {2}\n\t\u6700\u5F8C\u306E\u5F80\u5FA9: {3} ##### ## The following string will appear before all messages keyed as: ## "compiler.note". -compiler.note.note=\u6ce8: +compiler.note.note=\u6CE8\u610F: -compiler.note.deprecated.filename={0} \u306f\u63a8\u5968\u3055\u308c\u306a\u3044 API \u3092\u4f7f\u7528\u307e\u305f\u306f\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u3066\u3044\u307e\u3059\u3002 -compiler.note.deprecated.plural=\u4e00\u90e8\u306e\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u306f\u63a8\u5968\u3055\u308c\u306a\u3044 API \u3092\u4f7f\u7528\u307e\u305f\u306f\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u3066\u3044\u307e\u3059\u3002 +compiler.note.deprecated.filename={0}\u306F\u63A8\u5968\u3055\u308C\u306A\u3044API\u3092\u4F7F\u7528\u307E\u305F\u306F\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u3066\u3044\u307E\u3059\u3002 +compiler.note.deprecated.plural=\u4E00\u90E8\u306E\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306F\u63A8\u5968\u3055\u308C\u306A\u3044API\u3092\u4F7F\u7528\u307E\u305F\u306F\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u3066\u3044\u307E\u3059\u3002 +# The following string may appear after one of the above deprecation +# messages. +compiler.note.deprecated.recompile=\u8A73\u7D30\u306F\u3001-Xlint:deprecation\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002 + +compiler.note.deprecated.filename.additional={0}\u306B\u63A8\u5968\u3055\u308C\u306A\u3044API\u306E\u8FFD\u52A0\u4F7F\u7528\u307E\u305F\u306F\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u304C\u3042\u308A\u307E\u3059\u3002 +compiler.note.deprecated.plural.additional=\u4E00\u90E8\u306E\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306F\u63A8\u5968\u3055\u308C\u306A\u3044API\u3092\u8FFD\u52A0\u4F7F\u7528\u307E\u305F\u306F\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u3066\u3044\u307E\u3059\u3002 + +compiler.note.unchecked.filename={0}\u306E\u64CD\u4F5C\u306F\u3001\u672A\u30C1\u30A7\u30C3\u30AF\u307E\u305F\u306F\u5B89\u5168\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +compiler.note.unchecked.plural=\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u64CD\u4F5C\u306E\u3046\u3061\u3001\u672A\u30C1\u30A7\u30C3\u30AF\u307E\u305F\u306F\u5B89\u5168\u3067\u306F\u306A\u3044\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002 # The following string may appear after one of the above deprecation # messages. -compiler.note.deprecated.recompile=\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001-Xlint:deprecation \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3057\u3066\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +compiler.note.unchecked.recompile=\u8A73\u7D30\u306F\u3001-Xlint:unchecked\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -compiler.note.deprecated.filename.additional={0} \u306b\u63a8\u5968\u3055\u308c\u306a\u3044 API \u306e\u8ffd\u52a0\u4f7f\u7528\u307e\u305f\u306f\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u304c\u3042\u308a\u307e\u3059\u3002 -compiler.note.deprecated.plural.additional=\u4e00\u90e8\u306e\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u306f\u63a8\u5968\u3055\u308c\u306a\u3044 API \u3092\u8ffd\u52a0\u4f7f\u7528\u307e\u305f\u306f\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u3066\u3044\u307e\u3059\u3002 +compiler.note.unchecked.filename.additional={0}\u306B\u672A\u30C1\u30A7\u30C3\u30AF\u307E\u305F\u306F\u5B89\u5168\u3067\u306F\u306A\u3044\u64CD\u4F5C\u304C\u3055\u3089\u306B\u3042\u308A\u307E\u3059\u3002 +compiler.note.unchecked.plural.additional=\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u64CD\u4F5C\u306E\u3046\u3061\u3001\u672A\u30C1\u30A7\u30C3\u30AF\u307E\u305F\u306F\u5B89\u5168\u3067\u306F\u306A\u3044\u3082\u306E\u304C\u3055\u3089\u306B\u3042\u308A\u307E\u3059\u3002 -compiler.note.unchecked.filename={0} \u306e\u64cd\u4f5c\u306f\u3001\u672a\u30c1\u30a7\u30c3\u30af\u307e\u305f\u306f\u5b89\u5168\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.note.unchecked.plural=\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u306e\u64cd\u4f5c\u306e\u3046\u3061\u3001\u672a\u30c1\u30a7\u30c3\u30af\u307e\u305f\u306f\u5b89\u5168\u3067\u306f\u306a\u3044\u3082\u306e\u304c\u3042\u308a\u307e\u3059\u3002 -# The following string may appear after one of the above deprecation +compiler.note.varargs.filename={0}\u306F\u3001\u5B89\u5168\u3067\u306F\u306A\u3044\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u3092\u5BA3\u8A00\u3057\u3066\u3044\u307E\u3059\u3002 +compiler.note.varargs.plural=\u4E00\u90E8\u306E\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u5B89\u5168\u3067\u306F\u306A\u3044\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u3092\u5BA3\u8A00\u3057\u3066\u3044\u307E\u3059\u3002 +# The following string may appear after one of the above unsafe varargs # messages. -compiler.note.unchecked.recompile=\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001-Xlint:unchecked \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3057\u3066\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +compiler.note.varargs.recompile=\u8A73\u7D30\u306F\u3001-Xlint:varargs\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -compiler.note.unchecked.filename.additional={0} \u306b\u672a\u30c1\u30a7\u30c3\u30af\u307e\u305f\u306f\u5b89\u5168\u3067\u306f\u306a\u3044\u64cd\u4f5c\u304c\u3055\u3089\u306b\u3042\u308a\u307e\u3059\u3002 -compiler.note.unchecked.plural.additional=\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u306e\u64cd\u4f5c\u306e\u3046\u3061\u3001\u672a\u30c1\u30a7\u30c3\u30af\u307e\u305f\u306f\u5b89\u5168\u3067\u306f\u306a\u3044\u3082\u306e\u304c\u3055\u3089\u306b\u3042\u308a\u307e\u3059\u3002 +compiler.note.varargs.filename.additional={0}\u306F\u3001\u5B89\u5168\u3067\u306F\u306A\u3044\u8FFD\u52A0\u306E\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u3092\u5BA3\u8A00\u3057\u3066\u3044\u307E\u3059\u3002 +compiler.note.varargs.plural.additional=\u4E00\u90E8\u306E\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u5B89\u5168\u3067\u306F\u306A\u3044\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u3092\u8FFD\u52A0\u3067\u5BA3\u8A00\u3057\u3066\u3044\u307E\u3059\u3002 -compiler.note.sunapi.filename={0} \u306f\u4eca\u5f8c\u306e\u30ea\u30ea\u30fc\u30b9\u3067\u524a\u9664\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3001Sun \u304c\u6240\u6709\u3059\u308b API \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 -compiler.note.sunapi.plural=\u4e00\u90e8\u306e\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u306f\u4eca\u5f8c\u306e\u30ea\u30ea\u30fc\u30b9\u3067\u524a\u9664\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3001Sun \u304c\u6240\u6709\u3059\u308b API \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 +compiler.note.sunapi.filename={0}\u306F\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308B\u5185\u90E8\u6240\u6709\u306EAPI\u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002 +compiler.note.sunapi.plural=\u4E00\u90E8\u306E\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308B\u5185\u90E8\u6240\u6709\u306EAPI\u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002 # The following string may appear after one of the above sunapi messages. -compiler.note.sunapi.recompile=\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001-Xlint:sunapi \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3057\u3066\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +compiler.note.sunapi.recompile=\u8A73\u7D30\u306F\u3001-Xlint:sunapi\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -compiler.note.sunapi.filename.additional={0} \u306f\u4eca\u5f8c\u306e\u30ea\u30ea\u30fc\u30b9\u3067\u524a\u9664\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3001Sun \u304c\u6240\u6709\u3059\u308b API \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 -compiler.note.sunapi.plural.additional=\u4e00\u90e8\u306e\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u306f\u4eca\u5f8c\u306e\u30ea\u30ea\u30fc\u30b9\u3067\u524a\u9664\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3001Sun \u304c\u6240\u6709\u3059\u308b API \u3092\u8ffd\u52a0\u3067\u4f7f\u7528\u3057\u307e\u3059\u3002 +compiler.note.sunapi.filename.additional={0}\u306F\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308B\u8FFD\u52A0\u306E\u5185\u90E8\u6240\u6709\u306EAPI\u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002 +compiler.note.sunapi.plural.additional=\u4E00\u90E8\u306E\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308B\u5185\u90E8\u6240\u6709\u306EAPI\u3092\u8FFD\u52A0\u3067\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002 # Notes related to annotation processing @@ -356,37 +373,39 @@ ##### -compiler.misc.count.error=\u30a8\u30e9\u30fc {0} \u500b -compiler.misc.count.error.plural=\u30a8\u30e9\u30fc {0} \u500b -compiler.misc.count.warn=\u8b66\u544a {0} \u500b -compiler.misc.count.warn.plural=\u8b66\u544a {0} \u500b +compiler.misc.count.error=\u30A8\u30E9\u30FC{0}\u500B +compiler.misc.count.error.plural=\u30A8\u30E9\u30FC{0}\u500B +compiler.misc.count.warn=\u8B66\u544A{0}\u500B +compiler.misc.count.warn.plural=\u8B66\u544A{0}\u500B + +compiler.misc.version.not.available=(\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u304C\u3042\u308A\u307E\u305B\u3093) ## extra output when using -verbose (JavaCompiler) -compiler.misc.verbose.checking.attribution=[{0} \u3092\u78ba\u8a8d\u4e2d] -compiler.misc.verbose.parsing.done=[{0}ms \u3067\u69cb\u6587\u89e3\u6790\u5b8c\u4e86] -compiler.misc.verbose.parsing.started=[{0} \u3092\u69cb\u6587\u89e3\u6790\u958b\u59cb] -compiler.misc.verbose.total=[\u5408\u8a08 {0}ms] -compiler.misc.verbose.wrote.file=[{0} \u3092\u66f8\u304d\u8fbc\u307f\u5b8c\u4e86] +compiler.misc.verbose.checking.attribution=[{0}\u3092\u78BA\u8A8D\u4E2D] +compiler.misc.verbose.parsing.done=[{0}\u30DF\u30EA\u79D2\u3067\u69CB\u6587\u89E3\u6790\u5B8C\u4E86] +compiler.misc.verbose.parsing.started=[{0}\u3092\u69CB\u6587\u89E3\u6790\u958B\u59CB] +compiler.misc.verbose.total=[\u5408\u8A08{0}\u30DF\u30EA\u79D2] +compiler.misc.verbose.wrote.file=[{0}\u3092\u66F8\u8FBC\u307F\u5B8C\u4E86] ## extra output when using -verbose (Retro) -compiler.misc.verbose.retro=[{0} \u3092\u7d44\u307f\u66ff\u3048\u4e2d] -compiler.misc.verbose.retro.with=\{0} \u3092 {1} \u3067\u7d44\u307f\u66ff\u3048\u4e2d\u3067\u3059\u3002 -compiler.misc.verbose.retro.with.list=\{0} \u3092\u578b\u30d1\u30e9\u30e1\u30fc\u30bf {1}\u3001\u30b9\u30fc\u30d1\u30fc\u30bf\u30a4\u30d7 {2}\u3001\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {3} \u3067\u7d44\u307f\u66ff\u3048\u4e2d\u3067\u3059\u3002 +compiler.misc.verbose.retro=[{0}\u3092\u7D44\u66FF\u3048\u4E2D] +compiler.misc.verbose.retro.with=\t{0}\u3092{1}\u3067\u7D44\u66FF\u3048\u4E2D\u3067\u3059 +compiler.misc.verbose.retro.with.list=\t{0}\u3092\u578B\u30D1\u30E9\u30E1\u30FC\u30BF{1}\u3001\u30B9\u30FC\u30D1\u30FC\u30BF\u30A4\u30D7{2}\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{3}\u3067\u7D44\u66FF\u3048\u4E2D\u3067\u3059 ## extra output when using -verbose (code/ClassReader) -compiler.misc.verbose.loading=[{0} \u3092\u8aad\u307f\u8fbc\u307f\u4e2d] +compiler.misc.verbose.loading=[{0}\u3092\u8AAD\u8FBC\u307F\u4E2D] -compiler.misc.verbose.sourcepath=[\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u691c\u7d22\u30d1\u30b9: {0}] +compiler.misc.verbose.sourcepath=[\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u691C\u7D22\u30D1\u30B9: {0}] -compiler.misc.verbose.classpath=[\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u691c\u7d22\u30d1\u30b9: {0}] +compiler.misc.verbose.classpath=[\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u691C\u7D22\u30D1\u30B9: {0}] ## extra output when using -checkclassfile (code/ClassReader) -compiler.misc.ccf.found.later.version=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb {0} \u306b\u4e88\u60f3\u5916\u306e\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u3042\u308a\u307e\u3059\u3002 -compiler.misc.ccf.unrecognized.attribute={0} \u306f\u8a8d\u8b58\u3055\u308c\u306a\u3044\u5c5e\u6027\u3067\u3059\u3002 +compiler.misc.ccf.found.later.version=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB{0}\u306B\u4E88\u60F3\u5916\u306E\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059 +compiler.misc.ccf.unrecognized.attribute={0}\u306F\u8A8D\u8B58\u3055\u308C\u306A\u3044\u5C5E\u6027\u3067\u3059 ## extra output when using -prompt (util/Log) -compiler.misc.resume.abort=R)\u518d\u958b, A)\u4e2d\u6b62> +compiler.misc.resume.abort=R)\u518D\u958B,A)\u4E2D\u6B62> ##### @@ -395,95 +414,115 @@ ## ## All warning messages are preceded by the following string. -compiler.warn.warning=\u8b66\u544a: - -compiler.warn.constant.SVUID=[serial] serialVersionUID \u306f\u30af\u30e9\u30b9 {0} \u306e\u5b9a\u6570\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 +compiler.warn.warning=\u8B66\u544A: -compiler.warn.dir.path.element.not.found=[path] \u4e0d\u6b63\u306a\u30d1\u30b9\u8981\u7d20 "{0}": \u305d\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 +## Warning messages may also include the following prefix to identify a +## lint option +compiler.warn.lintOption=[{0}]\u0020 -compiler.warn.finally.cannot.complete=[finally] finally \u7bc0\u304c\u6b63\u5e38\u306b\u5b8c\u4e86\u3067\u304d\u307e\u305b\u3093\u3002 +compiler.warn.constant.SVUID=serialVersionUID\u306F\u30AF\u30E9\u30B9{0}\u306E\u5B9A\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 + +compiler.warn.dir.path.element.not.found=\u4E0D\u6B63\u306A\u30D1\u30B9\u8981\u7D20"{0}": \u305D\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u5B58\u5728\u3057\u307E\u305B\u3093 -compiler.warn.has.been.deprecated=[deprecation] {1} \u306e {0} \u306f\u63a8\u5968\u3055\u308c\u307e\u305b\u3093\u3002 +compiler.warn.finally.cannot.complete=finally\u7BC0\u304C\u6B63\u5E38\u306B\u5B8C\u4E86\u3067\u304D\u307E\u305B\u3093 -compiler.warn.sun.proprietary={0} \u306f Sun \u304c\u6240\u6709\u3059\u308b API \u3067\u3042\u308a\u3001\u4eca\u5f8c\u306e\u30ea\u30ea\u30fc\u30b9\u3067\u524a\u9664\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059 +compiler.warn.has.been.deprecated={1}\u306E{0}\u306F\u63A8\u5968\u3055\u308C\u307E\u305B\u3093 + +compiler.warn.sun.proprietary={0}\u306F\u5185\u90E8\u6240\u6709\u306EAPI\u3067\u3042\u308A\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 -compiler.warn.illegal.char.for.encoding=\u3053\u306e\u6587\u5b57\u306f\u3001\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0 {0} \u306b\u30de\u30c3\u30d7\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.warn.improper.SVUID=[serial] serialVersionUID \u306f\u3001\u30af\u30e9\u30b9 {0} \u306b static \u30d5\u30a1\u30a4\u30ca\u30eb\u3092\u5ba3\u8a00\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 +compiler.warn.illegal.char.for.encoding=\u3053\u306E\u6587\u5B57\u306F\u3001\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0{0}\u306B\u30DE\u30C3\u30D7\u3067\u304D\u307E\u305B\u3093 -compiler.warn.inexact.non-varargs.call=\u6700\u7d42\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u4e0d\u6b63\u78ba\u306a\u5f15\u6570\u578b\u3092\u6301\u3063\u305f\u53ef\u5909\u5f15\u6570\u30e1\u30bd\u30c3\u30c9\u306e\u975e\u53ef\u5909\u5f15\u6570\u547c\u3073\u51fa\u3057;\n\u53ef\u5909\u5f15\u6570\u547c\u3073\u51fa\u3057\u306b\u95a2\u3057\u3066\u306f {0} \u306b\u30ad\u30e3\u30b9\u30c8\u3057\u307e\u3059\u3002\n\u975e\u53ef\u5909\u5f15\u6570\u547c\u3073\u51fa\u3057\u306b\u95a2\u3057\u3066\u306f {1} \u306b\u30ad\u30e3\u30b9\u30c8\u3057\u3066\u3053\u306e\u8b66\u544a\u3092\u51fa\u3055\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3059\u3002 +compiler.warn.improper.SVUID=serialVersionUID\u306F\u3001\u30AF\u30E9\u30B9{0}\u306Bstatic final\u3092\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 + +compiler.warn.inexact.non-varargs.call=\u6700\u7D42\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u4E0D\u6B63\u78BA\u306A\u5F15\u6570\u578B\u3092\u6301\u3063\u305F\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u306E\u975E\u53EF\u5909\u5F15\u6570\u547C\u51FA\u3057\u3002\n\u53EF\u5909\u5F15\u6570\u547C\u51FA\u3057\u306B\u95A2\u3057\u3066\u306F{0}\u306B\u30AD\u30E3\u30B9\u30C8\u3057\u307E\u3059\u3002\n\u975E\u53EF\u5909\u5F15\u6570\u547C\u51FA\u3057\u306B\u95A2\u3057\u3066\u306F{1}\u306B\u30AD\u30E3\u30B9\u30C8\u3057\u3066\u3053\u306E\u8B66\u544A\u3092\u51FA\u3055\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059 -compiler.warn.long.SVUID=[serial] serialVersionUID \u306f\u3001\u30af\u30e9\u30b9 {0} \u306e long \u578b\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 +compiler.warn.long.SVUID=serialVersionUID\u306F\u3001\u30AF\u30E9\u30B9{0}\u306Elong\u578B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 -compiler.warn.missing.SVUID=[serial] \u76f4\u5217\u5316\u53ef\u80fd\u306a\u30af\u30e9\u30b9 {0} \u306b\u306f\u3001serialVersionUID \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 +compiler.warn.missing.SVUID=\u76F4\u5217\u5316\u53EF\u80FD\u306A\u30AF\u30E9\u30B9{0}\u306B\u306F\u3001serialVersionUID\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -compiler.warn.override.varargs.missing={0}; \u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3055\u308c\u305f\u30e1\u30bd\u30c3\u30c9\u306b\u306f ''...'' \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.warn.override.varargs.extra={0}; \u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u3066\u3044\u308b\u30e1\u30bd\u30c3\u30c9\u306b\u306f ''...'' \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.warn.override.bridge={0}; \u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3055\u308c\u305f\u30e1\u30bd\u30c3\u30c9\u306f\u30d6\u30ea\u30c3\u30b8\u30e1\u30bd\u30c3\u30c9\u3067\u3059\u3002 +compiler.warn.override.varargs.missing={0}\u3002\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9\u306B\u306F''...''\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.warn.override.varargs.extra={0}\u3002\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u3066\u3044\u308B\u30E1\u30BD\u30C3\u30C9\u306B\u306F''...''\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.warn.override.bridge={0}\u3002\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9\u306F\u30D6\u30EA\u30C3\u30B8\u30FB\u30E1\u30BD\u30C3\u30C9\u3067\u3059 + +compiler.warn.pkg-info.already.seen=package-info.java\u30D5\u30A1\u30A4\u30EB\u304C\u3059\u3067\u306B\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u7528\u306B\u8868\u793A\u3055\u308C\u3066\u3044\u307E\u3059 + +compiler.warn.path.element.not.found=\u4E0D\u6B63\u306A\u30D1\u30B9\u8981\u7D20"{0}": \u305D\u306E\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u3042\u308A\u307E\u305B\u3093 -compiler.warn.pkg-info.already.seen=[package-info] package-info.java \u30d5\u30a1\u30a4\u30eb\u304c\u3059\u3067\u306b\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u7528\u306b\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -compiler.warn.path.element.not.found=[path] \u4e0d\u6b63\u306a\u30d1\u30b9\u8981\u7d20 "{0}": \u305d\u306e\u30d5\u30a1\u30a4\u30eb\u307e\u305f\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.warn.possible.fall-through.into.case=[fallthrough] case \u306b fall-through \u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 +compiler.warn.possible.fall-through.into.case=case\u306Bfall-through\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 + +compiler.warn.redundant.cast={0}\u3078\u306E\u5197\u9577\u306A\u30AD\u30E3\u30B9\u30C8\u3067\u3059 + +compiler.warn.position.overflow=\u4F4D\u7F6E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u304C\u884C{0}\u3067\u30AA\u30FC\u30D0\u30FC\u30D5\u30ED\u30FC\u3057\u307E\u3059 -compiler.warn.redundant.cast=[cast] {0} \u3078\u306e\u5197\u9577\u306a\u30ad\u30e3\u30b9\u30c8\u3067\u3059 +compiler.warn.big.major.version={0}: \u30E1\u30B8\u30E3\u30FC\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3{1}\u306F\u3001\u3053\u306E\u30B3\u30F3\u30D1\u30A4\u30E9\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u6700\u65B0\u306E\u30E1\u30B8\u30E3\u30FC\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3{2}\u3088\u308A\u65B0\u3057\u3044\u3067\u3059\u3002\n\u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u3092\u304A\u85A6\u3081\u3057\u307E\u3059\u3002 -compiler.warn.position.overflow=\u4f4d\u7f6e\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u304c\u884c {0} \u3067\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3057\u307e\u3059 +compiler.warn.static.not.qualified.by.type=static {0}\u306F\u5F0F\u3067\u306F\u306A\u304F\u578B\u540D{1}\u3067\u4FEE\u98FE\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 -compiler.warn.big.major.version={0}: \u30e1\u30b8\u30e3\u30fc\u30d0\u30fc\u30b8\u30e7\u30f3 {1} \u306f\u3001\u3053\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u6700\u65b0\u306e\u30e1\u30b8\u30e3\u30fc\u30d0\u30fc\u30b8\u30e7\u30f3 {2} \u3088\u308a\u65b0\u3057\u3044\u3067\u3059\u3002\n\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002 +compiler.warn.source.no.bootclasspath=\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30D1\u30B9\u304C-source {0}\u3068\u4E00\u7DD2\u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093 # Warnings related to annotation processing -compiler.warn.proc.package.does.not.exist=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306f\u5b58\u5728\u3057\u307e\u305b\u3093 -compiler.warn.proc.file.reopening=''{0}'' \u7528\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u8907\u6570\u56de\u4f5c\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059 +compiler.warn.proc.package.does.not.exist=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306F\u5B58\u5728\u3057\u307E\u305B\u3093 +compiler.warn.proc.file.reopening=''{0}''\u7528\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8907\u6570\u56DE\u4F5C\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059 -compiler.warn.proc.type.already.exists=\u30bf\u30a4\u30d7 ''{0}'' \u306e\u30d5\u30a1\u30a4\u30eb\u306f\u65e2\u306b\u30bd\u30fc\u30b9\u30d1\u30b9\u3082\u3057\u304f\u306f\u30af\u30e9\u30b9\u30d1\u30b9\u306b\u5b58\u5728\u3057\u307e\u3059 +compiler.warn.proc.type.already.exists=\u30BF\u30A4\u30D7''{0}''\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u30BD\u30FC\u30B9\u30FB\u30D1\u30B9\u307E\u305F\u306F\u30AF\u30E9\u30B9\u30D1\u30B9\u306B\u5B58\u5728\u3057\u307E\u3059 -compiler.warn.proc.type.recreate=\u30bf\u30a4\u30d7 ''{0}'' \u306e\u30d5\u30a1\u30a4\u30eb\u3092\u8907\u6570\u56de\u4f5c\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059 +compiler.warn.proc.type.recreate=\u30BF\u30A4\u30D7''{0}''\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8907\u6570\u56DE\u4F5C\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059 -compiler.warn.proc.illegal.file.name=\u7121\u52b9\u306a\u540d\u524d ''{0}'' \u306e\u30d5\u30a1\u30a4\u30eb\u306f\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002 +compiler.warn.proc.illegal.file.name=\u7121\u52B9\u306A\u540D\u524D''{0}''\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002 -compiler.warn.proc.file.create.last.round=\u6700\u5f8c\u306b\u4f5c\u6210\u3055\u308c\u305f\u30bf\u30a4\u30d7 ''{0}'' \u306e\u30d5\u30a1\u30a4\u30eb\u306f\u6ce8\u91c8\u51e6\u7406\u306b\u6e21\u3055\u308c\u307e\u305b\u3093\u3002 +compiler.warn.proc.suspicious.class.name=\u540D\u524D\u304C{1}\u3067\u7D42\u308F\u308B\u578B\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059: ''{0}'' -compiler.warn.proc.malformed.supported.string=\u30d7\u30ed\u30bb\u30c3\u30b5 ''{1}'' \u304c\u8fd4\u3057\u305f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u308b\u6ce8\u91c8\u578b\u306e\u6587\u5b57\u5217 ''{0}'' \u304c\u4e0d\u6b63\u3067\u3059 +compiler.warn.proc.file.create.last.round=\u6700\u5F8C\u306B\u4F5C\u6210\u3055\u308C\u305F\u30BF\u30A4\u30D7''{0}''\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u6CE8\u91C8\u51E6\u7406\u306B\u6E21\u3055\u308C\u307E\u305B\u3093\u3002 -compiler.warn.proc.annotations.without.processors=\u3053\u308c\u3089\u306e\u6ce8\u91c8\u3092\u8981\u6c42\u3059\u308b\u30d7\u30ed\u30bb\u30c3\u30b5\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f: {0} +compiler.warn.proc.malformed.supported.string=\u30D7\u30ED\u30BB\u30C3\u30B5''{1}''\u304C\u8FD4\u3057\u305F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u308B\u6CE8\u91C8\u578B\u306E\u6587\u5B57\u5217''{0}''\u304C\u4E0D\u6B63\u3067\u3059 -compiler.warn.proc.processor.incompatible.source.version=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5 ''{1}'' \u304b\u3089 -source ''{2}'' \u3088\u308a\u5c0f\u3055\u3044\u30bd\u30fc\u30b9\u30d0\u30fc\u30b8\u30e7\u30f3 ''{0}'' \u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059 +compiler.warn.proc.annotations.without.processors=\u3053\u308C\u3089\u306E\u6CE8\u91C8\u3092\u8981\u6C42\u3059\u308B\u30D7\u30ED\u30BB\u30C3\u30B5\u306F\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F: {0} -compiler.warn.proc.proc-only.requested.no.procs=\u30b3\u30f3\u30d1\u30a4\u30eb\u306a\u3057\u306e\u6ce8\u91c8\u51e6\u7406\u304c\u8981\u6c42\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u30d7\u30ed\u30bb\u30c3\u30b5\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 +compiler.warn.proc.processor.incompatible.source.version=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5''{1}''\u304B\u3089-source ''{2}''\u3088\u308A\u5C0F\u3055\u3044\u30BD\u30FC\u30B9\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3''{0}''\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u3059 + +compiler.warn.proc.proc-only.requested.no.procs=\u30B3\u30F3\u30D1\u30A4\u30EB\u306A\u3057\u306E\u6CE8\u91C8\u51E6\u7406\u304C\u30EA\u30AF\u30A8\u30B9\u30C8\u3055\u308C\u307E\u3057\u305F\u304C\u3001\u30D7\u30ED\u30BB\u30C3\u30B5\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -compiler.warn.proc.use.implicit=\u6697\u9ed9\u7684\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306f\u6ce8\u91c8\u51e6\u7406\u306b\u6e21\u3055\u308c\u307e\u305b\u3093\u3002\n-implicit \u3092\u4f7f\u7528\u3057\u6697\u9ed9\u7684\u30b3\u30f3\u30d1\u30a4\u30eb\u306e\u30dd\u30ea\u30b7\u30fc\u3092\u6307\u5b9a\u3057\u3066\u4e0b\u3055\u3044\u3002 +compiler.warn.proc.use.implicit=\u6697\u9ED9\u7684\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u6CE8\u91C8\u51E6\u7406\u306B\u6E21\u3055\u308C\u307E\u305B\u3093\u3002\n-implicit\u3092\u4F7F\u7528\u3057\u6697\u9ED9\u7684\u30B3\u30F3\u30D1\u30A4\u30EB\u306E\u30DD\u30EA\u30B7\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -compiler.warn.proc.use.proc.or.implicit=\u6697\u9ed9\u7684\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306f\u6ce8\u91c8\u51e6\u7406\u306b\u6e21\u3055\u308c\u307e\u305b\u3093\u3002\n-proc:none \u3092\u4f7f\u7528\u3057\u6ce8\u91c8\u51e6\u7406\u3092\u7121\u52b9\u306b\u3059\u308b\u304b -implicit \u3092\u4f7f\u7528\u3057\u6697\u9ed9\u7684\u30b3\u30f3\u30d1\u30a4\u30eb\u306e\u30dd\u30ea\u30b7\u30fc\u3092\u6307\u5b9a\u3057\u3066\u4e0b\u3055\u3044\u3002 +compiler.warn.proc.use.proc.or.implicit=\u6697\u9ED9\u7684\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u6CE8\u91C8\u51E6\u7406\u306B\u6E21\u3055\u308C\u307E\u305B\u3093\u3002\n-proc:none\u3092\u4F7F\u7528\u3057\u6CE8\u91C8\u51E6\u7406\u3092\u7121\u52B9\u306B\u3059\u308B\u304B -implicit\u3092\u4F7F\u7528\u3057\u6697\u9ED9\u7684\u30B3\u30F3\u30D1\u30A4\u30EB\u306E\u30DD\u30EA\u30B7\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 # Print a client-generated warning; assumed to be localized, no translation required compiler.warn.proc.messager={0} -compiler.warn.proc.unclosed.type.files=\u30bf\u30a4\u30d7 ''{0}'' \u306e\u30d5\u30a1\u30a4\u30eb\u304c\u9589\u3058\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u3053\u308c\u3089\u306e\u30bf\u30a4\u30d7\u306f\u6ce8\u91c8\u51e6\u7406\u3055\u308c\u307e\u305b\u3093 +compiler.warn.proc.unclosed.type.files=\u30BF\u30A4\u30D7''{0}''\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u3053\u308C\u3089\u306E\u30BF\u30A4\u30D7\u306F\u6CE8\u91C8\u51E6\u7406\u3055\u308C\u307E\u305B\u3093 -compiler.warn.proc.unmatched.processor.options=\u6b21\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u3069\u306e\u30d7\u30ed\u30bb\u30c3\u30b5\u3067\u3082\u8a8d\u8b58\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f: ''{0}'' +compiler.warn.proc.unmatched.processor.options=\u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3069\u306E\u30D7\u30ED\u30BB\u30C3\u30B5\u3067\u3082\u8A8D\u8B58\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F: ''{0}'' -compiler.warn.unchecked.assign=[unchecked] {0} \u304b\u3089 {1} \u3078\u306e\u7121\u691c\u67fb\u4ee3\u5165\u3067\u3059\u3002 -compiler.warn.unchecked.assign.to.var=[unchecked] raw \u578b {1} \u306e\u30e1\u30f3\u30d0\u30fc\u3068\u3057\u3066\u5909\u6570 {0} \u3078\u306e\u7121\u691c\u67fb\u4ee3\u5165\u3067\u3059\u3002 -compiler.warn.unchecked.call.mbr.of.raw.type=[unchecked] raw \u578b {1} \u306e\u30e1\u30f3\u30d0\u3068\u3057\u3066\u306e {0} \u3078\u306e\u7121\u691c\u67fb\u547c\u3073\u51fa\u3057\u3067\u3059\u3002 -compiler.warn.unchecked.cast.to.type=[unchecked] \u578b {0} \u3078\u306e\u7121\u691c\u67fb\u30ad\u30e3\u30b9\u30c8\u3067\u3059\u3002 -compiler.warn.unchecked.meth.invocation.applied=[unchecked] \u7121\u691c\u67fb\u30e1\u30bd\u30c3\u30c9\u547c\u3073\u51fa\u3057: {0} {1} ({4} {5} \u5185) \u304c\u4e0e\u3048\u3089\u308c\u305f\u578b\u306b\u9069\u7528\u3055\u308c\u307e\u3057\u305f\n\u671f\u5f85\u5024: {2}\n\u691c\u51fa\u5024: {3} +compiler.warn.try.explicit.close.call=\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u53EF\u80FD\u306A\u30EA\u30BD\u30FC\u30B9\u306B\u304A\u3051\u308Bclose()\u306E\u660E\u793A\u7684\u547C\u51FA\u3057 +compiler.warn.try.resource.not.referenced=\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u53EF\u80FD\u306A\u30EA\u30BD\u30FC\u30B9{0}\u306F\u5BFE\u5FDC\u3059\u308Btry\u6587\u306E\u672C\u4F53\u3067\u306F\u53C2\u7167\u3055\u308C\u307E\u305B\u3093 +compiler.warn.unchecked.assign={0}\u304B\u3089{1}\u3078\u306E\u7121\u691C\u67FB\u4EE3\u5165\u3067\u3059 +compiler.warn.unchecked.assign.to.var=raw\u578B{1}\u306E\u30E1\u30F3\u30D0\u30FC\u3068\u3057\u3066\u5909\u6570{0}\u3078\u306E\u7121\u691C\u67FB\u4EE3\u5165\u3067\u3059 +compiler.warn.unchecked.call.mbr.of.raw.type=raw\u578B{1}\u306E\u30E1\u30F3\u30D0\u30FC\u3068\u3057\u3066\u306E{0}\u3078\u306E\u7121\u691C\u67FB\u547C\u51FA\u3057\u3067\u3059 +compiler.warn.unchecked.cast.to.type=\u578B{0}\u3078\u306E\u7121\u691C\u67FB\u30AD\u30E3\u30B9\u30C8\u3067\u3059 +compiler.warn.unchecked.meth.invocation.applied=\u7121\u691C\u67FB\u30E1\u30BD\u30C3\u30C9\u547C\u51FA\u3057: {4} {5}\u306E{0} {1}\u306F\u6307\u5B9A\u3055\u308C\u305F\u578B\u306B\u9069\u7528\u3055\u308C\u307E\u3059\n\u671F\u5F85\u5024: {2}\n\u691C\u51FA\u5024: {3} -compiler.warn.unchecked.generic.array.creation=[unchecked] \u30bf\u30a4\u30d7 {0} \u306e varargs \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u305f\u3081\u306e\u3001\u7121\u691c\u67fb\u6c4e\u7528\u914d\u5217\u306e\u4f5c\u6210 +compiler.warn.unchecked.generic.array.creation=\u578B{0}\u306E\u53EF\u5909\u5F15\u6570\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u5BFE\u3059\u308B\u7DCF\u79F0\u578B\u914D\u5217\u306E\u7121\u691C\u67FB\u4F5C\u6210\u3067\u3059 -compiler.warn.missing.deprecated.annotation=[dep-ann] \u63a8\u5968\u3055\u308c\u306a\u3044\u9805\u76ee\u306f @Deprecated \u3067\u6ce8\u91c8\u304c\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002 +compiler.warn.varargs.non.reifiable.type=\u30D1\u30E9\u30E1\u30FC\u30BF\u5316\u3055\u308C\u305F\u53EF\u5909\u5F15\u6570\u578B{0}\u304B\u3089\u306E\u30D2\u30FC\u30D7\u6C5A\u67D3\u306E\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 -compiler.warn.invalid.archive.file=[path] \u30d1\u30b9\u4e0a\u306e\u4e88\u671f\u3057\u306a\u3044\u30d5\u30a1\u30a4\u30eb: {0} +compiler.warn.missing.deprecated.annotation=\u63A8\u5968\u3055\u308C\u306A\u3044\u9805\u76EE\u306F@Deprecated\u3067\u6CE8\u91C8\u304C\u4ED8\u3051\u3089\u308C\u3066\u3044\u307E\u305B\u3093 + +compiler.warn.invalid.archive.file=\u30D1\u30B9\u4E0A\u306E\u4E88\u671F\u3057\u306A\u3044\u30D5\u30A1\u30A4\u30EB: {0} -compiler.warn.unexpected.archive.file=[path] \u30a2\u30fc\u30ab\u30a4\u30d6\u30d5\u30a1\u30a4\u30eb\u306e\u4e88\u671f\u3057\u306a\u3044\u62e1\u5f35\u5b50: {0} +compiler.warn.unexpected.archive.file=\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u4E88\u671F\u3057\u306A\u3044\u62E1\u5F35\u5B50: {0} -compiler.warn.div.zero=[divzero] \u30bc\u30ed\u3067\u9664\u7b97 +compiler.warn.div.zero=\u30BC\u30ED\u3067\u9664\u7B97 -compiler.warn.empty.if=[empty] if \u4ee5\u964d\u304c\u7a7a\u306e\u6587\u3067\u3059 +compiler.warn.empty.if=if\u4EE5\u964D\u304C\u7A7A\u306E\u6587\u3067\u3059 -compiler.warn.annotation.method.not.found=\u30bf\u30a4\u30d7 ''{0}'' \u5185\u306b\u6ce8\u91c8\u30e1\u30bd\u30c3\u30c9 ''{1}()'' \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 +compiler.warn.annotation.method.not.found=\u30BF\u30A4\u30D7''{0}''\u5185\u306B\u6CE8\u91C8\u30E1\u30BD\u30C3\u30C9''{1}()''\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -compiler.warn.annotation.method.not.found.reason=\u30bf\u30a4\u30d7 ''{0}'' \u5185\u306b\u6ce8\u91c8\u30e1\u30bd\u30c3\u30c9 ''{1}()'' \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: {2} +compiler.warn.annotation.method.not.found.reason=\u30BF\u30A4\u30D7''{0}''\u5185\u306B\u6CE8\u91C8\u30E1\u30BD\u30C3\u30C9''{1}()''\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {2} -compiler.warn.raw.class.use=[rawtypes] raw \u578b\u3092\u691c\u51fa: {0}\n\u7dcf\u79f0\u30af\u30e9\u30b9 {1} \u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u3042\u308a\u307e\u305b\u3093 +compiler.warn.raw.class.use=raw\u578B\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F: {0}\n\u6C4E\u7528\u30AF\u30E9\u30B9{1}\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093 + +compiler.warn.diamond.redundant.args=\u65B0\u3057\u3044\u5F0F\u306E\u578B\u5F15\u6570\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059(\u304B\u308F\u308A\u306B\u30C0\u30A4\u30E4\u30E2\u30F3\u30C9\u6F14\u7B97\u5B50\u3092\u4F7F\u7528\u3057\u307E\u3059)\u3002 +compiler.warn.diamond.redundant.args.1=\u65B0\u3057\u3044\u5F0F\u306E\u578B\u5F15\u6570\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059(\u304B\u308F\u308A\u306B\u30C0\u30A4\u30E4\u30E2\u30F3\u30C9\u6F14\u7B97\u5B50\u3092\u4F7F\u7528\u3057\u307E\u3059)\u3002\n\u660E\u793A\u7684: {0}\n\u63A8\u5B9A: {1} ##### @@ -508,59 +547,59 @@ ## 6. an operator (JLS3.12) ## ## This is the only place these tokens will be used. -compiler.err.expected={0} \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.expected2={0} \u307e\u305f\u306f {1} \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -compiler.err.expected3={0}\u3001{1}\u3001\u307e\u305f\u306f {2} \u304c\u3042\u308a\u307e\u305b\u3093\u3002 +compiler.err.expected={0}\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.expected2={0}\u307E\u305F\u306F{1}\u304C\u3042\u308A\u307E\u305B\u3093 +compiler.err.expected3={0}\u3001{1}\u307E\u305F\u306F{2}\u304C\u3042\u308A\u307E\u305B\u3093 -compiler.err.premature.eof=\u69cb\u6587\u89e3\u6790\u4e2d\u306b\u30d5\u30a1\u30a4\u30eb\u306e\u7d42\u308f\u308a\u306b\u79fb\u308a\u307e\u3057\u305f +compiler.err.premature.eof=\u69CB\u6587\u89E3\u6790\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A\u306B\u79FB\u308A\u307E\u3057\u305F ## The following are related in form, but do not easily fit the above paradigm. -compiler.err.dot.class.expected=''.class'' \u304c\u3042\u308a\u307e\u305b\u3093\u3002 +compiler.err.dot.class.expected=''.class''\u304C\u3042\u308A\u307E\u305B\u3093 ## The argument to this string will always be either 'case' or 'default'. -compiler.err.orphaned={0} \u306b\u306f\u89aa\u304c\u3042\u308a\u307e\u305b\u3093\u3002 +compiler.err.orphaned={0}\u306B\u306F\u89AA\u304C\u3042\u308A\u307E\u305B\u3093 compiler.misc.anonymous.class=<anonymous {0}> -compiler.misc.type.captureof={1} \u306e capture#{0} +compiler.misc.type.captureof={1}\u306E\u30AD\u30E3\u30D7\u30C1\u30E3#{0} -compiler.misc.type.captureof.1=capture#{0} +compiler.misc.type.captureof.1=\u30AD\u30E3\u30D7\u30C1\u30E3#{0} compiler.misc.type.none=<none> -compiler.misc.unnamed.package=\u7121\u540d\u30d1\u30c3\u30b1\u30fc\u30b8 +compiler.misc.unnamed.package=\u540D\u524D\u306E\u306A\u3044\u30D1\u30C3\u30B1\u30FC\u30B8 ##### -compiler.err.cant.access={0} \u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3002\n{1} +compiler.err.cant.access={0}\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\n{1} -compiler.misc.bad.class.file.header=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb {0} \u306f\u4e0d\u6b63\u3067\u3059\u3002\n{1}\n\u524a\u9664\u3059\u308b\u304b\u3001\u30af\u30e9\u30b9\u30d1\u30b9\u306e\u6b63\u3057\u3044\u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3042\u308b\u304b\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -compiler.misc.bad.source.file.header=\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb {0} \u306f\u4e0d\u6b63\u3067\u3059\u3002\n{1}\n\u524a\u9664\u3059\u308b\u304b\u3001\u30bd\u30fc\u30b9\u30d1\u30b9\u306e\u6b63\u3057\u3044\u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3042\u308b\u304b\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +compiler.misc.bad.class.file.header=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB{0}\u306F\u4E0D\u6B63\u3067\u3059\n{1}\n\u524A\u9664\u3059\u308B\u304B\u3001\u30AF\u30E9\u30B9\u30D1\u30B9\u306E\u6B63\u3057\u3044\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u3042\u308B\u304B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +compiler.misc.bad.source.file.header=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB{0}\u306F\u4E0D\u6B63\u3067\u3059\n{1}\n\u524A\u9664\u3059\u308B\u304B\u3001\u30BD\u30FC\u30B9\u30FB\u30D1\u30B9\u306E\u6B63\u3057\u3044\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u3042\u308B\u304B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 ## The following are all possible strings for the second argument ({1}) of the ## above strings. -compiler.misc.bad.class.signature=\u30af\u30e9\u30b9 {0} \u306e\u30b7\u30b0\u30cb\u30c1\u30e3\u30fc\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.misc.bad.enclosing.method=\u56f2\u3093\u3067\u3044\u308b\u30e1\u30bd\u30c3\u30c9\u5c5e\u6027\u304c\u4e0d\u6b63\u3067\u3059: {0} -compiler.misc.bad.runtime.invisible.param.annotations=RuntimeInvisibleParameterAnnotations \u5c5e\u6027\u304c\u4e0d\u6b63\u3067\u3059: {0} -compiler.misc.bad.const.pool.tag=\u5b9a\u6570\u30d7\u30fc\u30eb\u30bf\u30b0 {0} \u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.misc.bad.const.pool.tag.at=\u5b9a\u6570\u30d7\u30fc\u30eb\u30bf\u30b0 {1} \u3067\u306e {0} \u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.misc.bad.signature=\u30b7\u30b0\u30cb\u30c1\u30e3\u30fc {0} \u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.misc.bad.type.annotation.value=\u578b\u6ce8\u91c8\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u578b\u5024\u304c\u4e0d\u6b63\u3067\u3059: {0} -compiler.misc.class.file.wrong.class=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb {0} \u306b\u4e0d\u6b63\u306a\u30af\u30e9\u30b9\u304c\u3042\u308a\u307e\u3059\u3002 -compiler.misc.class.file.not.found={0} \u306e\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 -compiler.misc.file.doesnt.contain.class=\u30d5\u30a1\u30a4\u30eb\u306b\u30af\u30e9\u30b9 {0} \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.misc.file.does.not.contain.package=\u30d5\u30a1\u30a4\u30eb\u306b\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093 -compiler.misc.illegal.start.of.class.file=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u958b\u59cb\u304c\u4e0d\u6b63\u3067\u3059\u3002 -compiler.misc.unable.to.access.file=\u30d5\u30a1\u30a4\u30eb {0} \u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.misc.unicode.str.not.supported=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u5185\u306e Unicode \u6587\u5b57\u5217\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.misc.undecl.type.var=\u578b\u5909\u6570 {0} \u306f\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -compiler.misc.wrong.version=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u30d0\u30fc\u30b8\u30e7\u30f3 {0}.{1} \u306f\u4e0d\u6b63\u3067\u3059\u3002{2}.{3} \u3067\u3042\u308b\u3079\u304d\u3067\u3059\u3002 +compiler.misc.bad.class.signature=\u30AF\u30E9\u30B9{0}\u306E\u30B7\u30B0\u30CB\u30C1\u30E3\u304C\u4E0D\u6B63\u3067\u3059 +compiler.misc.bad.enclosing.method=\u56F2\u3093\u3067\u3044\u308B\u30E1\u30BD\u30C3\u30C9\u5C5E\u6027\u304C\u4E0D\u6B63\u3067\u3059: {0} +compiler.misc.bad.runtime.invisible.param.annotations=RuntimeInvisibleParameterAnnotations\u5C5E\u6027\u304C\u4E0D\u6B63\u3067\u3059: {0} +compiler.misc.bad.const.pool.tag=\u5B9A\u6570\u30D7\u30FC\u30EB\u30FB\u30BF\u30B0{0}\u304C\u4E0D\u6B63\u3067\u3059 +compiler.misc.bad.const.pool.tag.at=\u5B9A\u6570\u30D7\u30FC\u30EB\u30FB\u30BF\u30B0{1}\u3067\u306E{0}\u304C\u4E0D\u6B63\u3067\u3059 +compiler.misc.bad.signature=\u30B7\u30B0\u30CB\u30C1\u30E3{0}\u304C\u4E0D\u6B63\u3067\u3059 +compiler.misc.bad.type.annotation.value=\u6CE8\u91C8\u30BF\u30FC\u30B2\u30C3\u30C8\u578B\u306E\u5024\u306E\u578B\u304C\u4E0D\u6B63\u3067\u3059: {0} +compiler.misc.class.file.wrong.class=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB{0}\u306B\u4E0D\u6B63\u306A\u30AF\u30E9\u30B9\u304C\u3042\u308A\u307E\u3059 +compiler.misc.class.file.not.found={0}\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 +compiler.misc.file.doesnt.contain.class=\u30D5\u30A1\u30A4\u30EB\u306B\u30AF\u30E9\u30B9{0}\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.misc.file.does.not.contain.package=\u30D5\u30A1\u30A4\u30EB\u306B\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.misc.illegal.start.of.class.file=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u958B\u59CB\u304C\u4E0D\u6B63\u3067\u3059 +compiler.misc.unable.to.access.file=\u30D5\u30A1\u30A4\u30EB{0}\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093 +compiler.misc.unicode.str.not.supported=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u5185\u306EUnicode\u6587\u5B57\u5217\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.misc.undecl.type.var=\u578B\u5909\u6570{0}\u306F\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +compiler.misc.wrong.version=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u30D0\u30FC\u30B8\u30E7\u30F3{0}.{1}\u306F\u4E0D\u6B63\u3067\u3059\u3002{2}.{3}\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 ##### -compiler.err.not.within.bounds=\u578b\u30d1\u30e9\u30e1\u30fc\u30bf {0} \u306f\u305d\u306e\u7bc4\u56f2\u3092\u8d8a\u3048\u3066\u3044\u307e\u3059\u3002 +compiler.err.not.within.bounds=\u578B\u30D1\u30E9\u30E1\u30FC\u30BF{0}\u306F\u305D\u306E\u5883\u754C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059 -compiler.err.not.within.bounds.explain=\u578b\u30d1\u30e9\u30e1\u30fc\u30bf {0} \u306f\u305d\u306e\u7bc4\u56f2\u3092\u8d8a\u3048\u3066\u3044\u307e\u3059\u3002{1} +compiler.err.not.within.bounds.explain=\u578B\u30D1\u30E9\u30E1\u30FC\u30BF{0}\u306F\u305D\u306E\u5883\u754C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002{1} ## The following are all possible strings for the second argument ({1}) of the ## above string. @@ -569,171 +608,189 @@ ##### -compiler.err.prob.found.req={0}\n\u671f\u5f85\u5024: {2}\n\u691c\u51fa\u5024: {1} -compiler.warn.prob.found.req={0}\n\u671f\u5f85\u5024: {2}\n\u691c\u51fa\u5024: {1} -compiler.err.prob.found.req.1={0} {3}\n\u671f\u5f85\u5024: {2}\n\u691c\u51fa\u5024: {1} +compiler.err.prob.found.req={0}\n\u671F\u5F85\u5024: {2}\n\u691C\u51FA\u5024: {1} +compiler.warn.prob.found.req={0}\n\u671F\u5F85\u5024: {2}\n\u691C\u51FA\u5024: {1} +compiler.err.prob.found.req.1={0} {3}\n\u671F\u5F85\u5024: {2}\n\u691C\u51FA\u5024: {1} ## The following are all possible strings for the first argument ({0}) of the ## above strings. -compiler.misc.incompatible.types=\u4e92\u63db\u6027\u306e\u306a\u3044\u578b -compiler.misc.incompatible.types.1=\u4e92\u63db\u6027\u306e\u306a\u3044\u578b; {0} -compiler.misc.inconvertible.types=\u5909\u63db\u3067\u304d\u306a\u3044\u578b -compiler.misc.possible.loss.of.precision=\u7cbe\u5ea6\u304c\u843d\u3061\u3066\u3044\u308b\u53ef\u80fd\u6027 +compiler.misc.incompatible.types=\u4E92\u63DB\u6027\u306E\u306A\u3044\u578B +compiler.misc.incompatible.types.1=\u4E92\u63DB\u6027\u306E\u306A\u3044\u578B\u3002{0} +compiler.misc.inconvertible.types=\u5909\u63DB\u3067\u304D\u306A\u3044\u578B +compiler.misc.possible.loss.of.precision=\u7CBE\u5EA6\u304C\u4F4E\u4E0B\u3057\u3066\u3044\u308B\u53EF\u80FD\u6027 -compiler.misc.unchecked.assign=[unchecked] \u7121\u691c\u67fb\u5909\u63db\u3067\u3059 +compiler.misc.unchecked.assign=\u7121\u691C\u67FB\u5909\u63DB # compiler.misc.storecheck=\ -# [unchecked] assignment might cause later store checks to fail +# assignment might cause later store checks to fail # compiler.misc.unchecked=\ -# [unchecked] assigned array cannot dynamically check its stores -compiler.misc.unchecked.cast.to.type=[unchecked] \u7121\u691c\u67fb\u30ad\u30e3\u30b9\u30c8\u3067\u3059 +# assigned array cannot dynamically check its stores +compiler.misc.unchecked.cast.to.type=\u7121\u691C\u67FB\u30AD\u30E3\u30B9\u30C8 -compiler.misc.assignment.from.super-bound=\u30b9\u30fc\u30d1\u30fc\u30d0\u30a6\u30f3\u30c9\u578b {0} \u304b\u3089\u306e\u4ee3\u5165 -compiler.misc.assignment.to.extends-bound=\u62e1\u5f35\u30d0\u30a6\u30f3\u30c9\u578b {0} \u3078\u306e\u4ee3\u5165 +compiler.misc.assignment.from.super-bound=\u30B9\u30FC\u30D1\u30FC\u30D0\u30A6\u30F3\u30C9\u578B{0}\u304B\u3089\u306E\u4EE3\u5165 +compiler.misc.assignment.to.extends-bound=\u62E1\u5F35\u30D0\u30A6\u30F3\u30C9\u578B{0}\u3078\u306E\u4EE3\u5165 # compiler.err.star.expected=\ # ''*'' expected # compiler.err.no.elem.type=\ # \[\*\] cannot have a type +compiler.misc.try.not.applicable.to.type=try-with-resource\u306F\u5909\u6570\u578B\u306B\u9069\u7528\u3055\u308C\u307E\u305B\u3093 + ##### -compiler.err.type.found.req=\u4e88\u671f\u3057\u306a\u3044\u578b\n\u671f\u5f85\u5024: {1}\n\u691c\u51fa\u5024: {0} +compiler.err.type.found.req=\u4E88\u671F\u3057\u306A\u3044\u578B\n\u671F\u5F85\u5024: {1}\n\u691C\u51FA\u5024: {0} ## The following are all possible strings for the first argument ({0}) of the ## above string. -compiler.misc.type.req.class=\u30af\u30e9\u30b9 -compiler.misc.type.req.class.array=\u30af\u30e9\u30b9\u307e\u305f\u306f\u914d\u5217 -compiler.misc.type.req.ref=\u53c2\u7167 -compiler.misc.type.req.exact=\u5883\u754c\u306e\u306a\u3044\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -compiler.misc.type.parameter=\u578b\u30d1\u30e9\u30e1\u30fc\u30bf {0} +compiler.misc.type.req.class=\u30AF\u30E9\u30B9 +compiler.misc.type.req.class.array=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u914D\u5217 +compiler.misc.type.req.ref=\u53C2\u7167 +compiler.misc.type.req.exact=\u5883\u754C\u306E\u306A\u3044\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 +compiler.misc.type.parameter=\u578B\u30D1\u30E9\u30E1\u30FC\u30BF{0} ##### ## The following are all possible strings for the last argument of all those ## diagnostics whose key ends in ".1" -compiler.misc.undetermined.type=\u672a\u5b9a\u578b -ncompiler.misc.type.variable.has.undetermined.type=\u578b\u5909\u6570 {0} \u306f\u672a\u5b9a\u578b\u3067\u3059\u3002 -compiler.misc.no.unique.maximal.instance.exists=\u578b\u5909\u6570 {0} (\u4e0a\u9650 {1}) \u306e\u56fa\u6709\u306e\u6700\u5927\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 -compiler.misc.no.unique.minimal.instance.exists=\u578b\u5909\u6570 {0} (\u4e0b\u9650 {1}) \u306e\u56fa\u6709\u306e\u6700\u5c0f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 -compiler.misc.no.conforming.instance.exists=\u578b\u5909\u6570 {0} \u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u5b58\u5728\u3057\u306a\u3044\u306e\u3067\u3001{1} \u306f {2} \u306b\u9069\u5408\u3057\u307e\u305b\u3093\u3002 -compiler.misc.no.conforming.assignment.exists=\u578b\u5909\u6570 {0} \u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u5b58\u5728\u3057\u306a\u3044\u306e\u3067\u3001\u5f15\u6570\u578b {1} \u306f\u4eee\u30d1\u30e9\u30e1\u30fc\u30bf\u578b {2} \u306b\u9069\u5408\u3057\u307e\u305b\u3093\u3002 -compiler.misc.arg.length.mismatch=\u5b9f\u5f15\u6570\u30ea\u30b9\u30c8\u3068\u4eee\u5f15\u6570\u30ea\u30b9\u30c8\u306e\u9577\u3055\u304c\u7570\u306a\u308b\u305f\u3081\u3001\u5f15\u6570\u304b\u3089\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.misc.inferred.do.not.conform.to.bounds=\u63a8\u5b9a\u3055\u308c\u305f\u578b\u306f\u5ba3\u8a00\u3055\u308c\u305f\u5883\u754c\u306b\u9069\u5408\u3057\u307e\u305b\u3093\u3002\n\u63a8\u5b9a: {0}\n\u5883\u754c: {1} -compiler.misc.inferred.do.not.conform.to.params=\u5b9f\u5f15\u6570\u304c\u63a8\u5b9a\u3055\u308c\u305f\u4eee\u5f15\u6570\u306b\u9069\u5408\u3057\u307e\u305b\u3093\u3002\n\u671f\u5f85\u5024: {0}\n\u691c\u51fa\u5024: {1} +compiler.misc.undetermined.type=\u672A\u5B9A\u578B +compiler.misc.type.variable.has.undetermined.type=\u578B\u5909\u6570{0}\u306F\u672A\u5B9A\u578B\u3067\u3059 +compiler.misc.no.unique.maximal.instance.exists=\u578B\u5909\u6570{0}(\u4E0A\u9650{1})\u306E\u56FA\u6709\u306E\u6700\u5927\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093 +compiler.misc.no.unique.minimal.instance.exists=\u578B\u5909\u6570{0}(\u4E0B\u9650{1})\u306E\u56FA\u6709\u306E\u6700\u5C0F\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093 +compiler.misc.infer.no.conforming.instance.exists=\u578B\u5909\u6570{0}\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5B58\u5728\u3057\u306A\u3044\u306E\u3067\u3001{1}\u306F{2}\u306B\u9069\u5408\u3057\u307E\u305B\u3093 +compiler.misc.infer.no.conforming.assignment.exists=\u578B\u5909\u6570{0}\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5B58\u5728\u3057\u306A\u3044\u306E\u3067\u3001\u5F15\u6570\u578B{1}\u306F\u4EEE\u30D1\u30E9\u30E1\u30FC\u30BF\u578B{2}\u306B\u9069\u5408\u3057\u307E\u305B\u3093 +compiler.misc.infer.arg.length.mismatch=\u5B9F\u5F15\u6570\u30EA\u30B9\u30C8\u3068\u4EEE\u5F15\u6570\u30EA\u30B9\u30C8\u306E\u9577\u3055\u304C\u7570\u306A\u308B\u305F\u3081\u3001\u5F15\u6570\u304B\u3089\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093 +compiler.misc.inferred.do.not.conform.to.bounds=\u63A8\u5B9A\u578B\u306F\u5BA3\u8A00\u3055\u308C\u305F\u5883\u754C\u306B\u9069\u5408\u3057\u307E\u305B\u3093\n\u63A8\u5B9A: {0}\n\u5883\u754C: {1} +compiler.misc.inferred.do.not.conform.to.params=\u5B9F\u5F15\u6570\u306F\u63A8\u5B9A\u3055\u308C\u305F\u4EEE\u5F15\u6570\u306B\u9069\u5408\u3057\u307E\u305B\u3093\n\u671F\u5F85\u5024: {0}\n\u691C\u51FA\u5024: {1} +compiler.misc.diamond={0}<> +compiler.misc.diamond.invalid.arg={1}\u306B\u3064\u3044\u3066\u63A8\u5B9A\u3055\u308C\u305F\u578B\u5F15\u6570{0}\u306F\u3053\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093 +compiler.misc.diamond.invalid.args={1}\u306B\u3064\u3044\u3066\u63A8\u5B9A\u3055\u308C\u305F\u578B\u5F15\u6570{0}\u306F\u3053\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093 +compiler.misc.explicit.param.do.not.conform.to.bounds=\u660E\u793A\u7684\u306A\u578B\u5F15\u6570{0}\u306F\u3001\u5BA3\u8A00\u3055\u308C\u305F\u5883\u754C{1}\u306B\u9069\u5408\u3057\u307E\u305B\u3093 + +compiler.misc.arg.length.mismatch=\u5B9F\u5F15\u6570\u30EA\u30B9\u30C8\u3068\u4EEE\u5F15\u6570\u30EA\u30B9\u30C8\u306E\u9577\u3055\u304C\u7570\u306A\u308A\u307E\u3059 +compiler.misc.no.conforming.assignment.exists=\u5B9F\u5F15\u6570{0}\u306F\u30E1\u30BD\u30C3\u30C9\u547C\u51FA\u5909\u63DB\u306B\u3088\u3063\u3066{1}\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093 +compiler.misc.varargs.argument.mismatch=\u5F15\u6570\u578B{0}\u306F\u53EF\u5909\u5F15\u6570\u8981\u7D20\u578B{1}\u306B\u9069\u5408\u3057\u307E\u305B\u3093 ##### ## The first argument ({0}) is a "kindname". -compiler.err.abstract.cant.be.accessed.directly=\u62bd\u8c61 {0} {1} ({2} \u5185) \u306b\u76f4\u63a5\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 +compiler.err.abstract.cant.be.accessed.directly=\u62BD\u8C61{0}\u3067\u3042\u308B{1}({2}\u5185)\u306B\u76F4\u63A5\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 ## The first argument ({0}) is a "kindname". -compiler.err.non-static.cant.be.ref=static \u3067\u306a\u3044 {0} {1} \u3092 static \u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u304b\u3089\u53c2\u7167\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 +compiler.err.non-static.cant.be.ref=static\u3067\u306A\u3044{0} {1}\u3092static\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304B\u3089\u53C2\u7167\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 ## Both arguments ({0}, {1}) are "kindname"s. {0} is a comma-separated list ## of kindnames (the list should be identical to that provided in source. -compiler.err.unexpected.type=\u4e88\u671f\u3057\u306a\u3044\u578b\n\u671f\u5f85\u5024 : {0}\n\u691c\u51fa\u5024 : {1} +compiler.err.unexpected.type=\u4E88\u671F\u3057\u306A\u3044\u578B\n\u671F\u5F85\u5024: {0}\n\u691C\u51FA\u5024: {1} ## The first argument {0} is a "kindname" (e.g. 'constructor', 'field', etc.) ## The second argument {1} is the non-resolved symbol ## The third argument {2} is a list of type parameters (non-empty if {1} is a method) ## The fourth argument {3} is a list of argument types (non-empty if {1} is a method) -compiler.err.cant.resolve=\u30b7\u30f3\u30dc\u30eb\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\u3002\n\u30b7\u30f3\u30dc\u30eb: {0} {3}{1}{2} +compiler.err.cant.resolve=\u30B7\u30F3\u30DC\u30EB\u3092\u898B\u3064\u3051\u3089\u308C\u307E\u305B\u3093\n\u30B7\u30F3\u30DC\u30EB: {0} {1} -compiler.err.cant.resolve.args=\u30b7\u30f3\u30dc\u30eb\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\n\u30b7\u30f3\u30dc\u30eb: {0} {1}({3}) +compiler.err.cant.resolve.args=\u30B7\u30F3\u30DC\u30EB\u3092\u898B\u3064\u3051\u3089\u308C\u307E\u305B\u3093\n\u30B7\u30F3\u30DC\u30EB: {0} {1}({3}) -compiler.err.cant.resolve.args.params=\u30b7\u30f3\u30dc\u30eb\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\n\u30b7\u30f3\u30dc\u30eb: {0} <{2}>{1}({3}) +compiler.err.cant.resolve.args.params=\u30B7\u30F3\u30DC\u30EB\u3092\u898B\u3064\u3051\u3089\u308C\u307E\u305B\u3093\n\u30B7\u30F3\u30DC\u30EB: {0} <{2}>{1}({3}) ## arguments from {0} to {3} have the same meaning as above ## The fifth argument {4} is the location "kindname" (e.g. 'constructor', 'field', etc.) ## The sixth argument {5} is the location type -compiler.err.cant.resolve.location=\u30b7\u30f3\u30dc\u30eb\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\n\u30b7\u30f3\u30dc\u30eb: {0} {1}\n\u5834\u6240: {4} {5} - -compiler.err.cant.resolve.location.args=\u30b7\u30f3\u30dc\u30eb\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\n\u30b7\u30f3\u30dc\u30eb: {0} {1}({3})\n\u5834\u6240: {4} {5} +compiler.err.cant.resolve.location=\u30B7\u30F3\u30DC\u30EB\u3092\u898B\u3064\u3051\u3089\u308C\u307E\u305B\u3093\n\u30B7\u30F3\u30DC\u30EB: {0} {1}\n\u5834\u6240: {4} {5} -compiler.err.cant.resolve.location.args.params=\u30b7\u30f3\u30dc\u30eb\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\n\u30b7\u30f3\u30dc\u30eb: {0} <{2}>{1}({3})\n\u5834\u6240: {4} {5} +compiler.err.cant.resolve.location.args=\u30B7\u30F3\u30DC\u30EB\u3092\u898B\u3064\u3051\u3089\u308C\u307E\u305B\u3093\n\u30B7\u30F3\u30DC\u30EB: {0} {1}({3})\n\u5834\u6240: {4} {5} -compiler.err.cant.apply.diamond=\u30c0\u30a4\u30e4\u30e2\u30f3\u30c9\u6f14\u7b97\u5b50\u304c {0} \u306e\u578b\u3092\u63a8\u5b9a\u3067\u304d\u307e\u305b\u3093;\n\u7406\u7531: {1} +compiler.err.cant.resolve.location.args.params=\u30B7\u30F3\u30DC\u30EB\u3092\u898B\u3064\u3051\u3089\u308C\u307E\u305B\u3093\n\u30B7\u30F3\u30DC\u30EB: {0} <{2}>{1}({3})\n\u5834\u6240: {4} {5} ## The following are all possible string for "kindname". ## They should be called whatever the JLS calls them after it been translated ## to the appropriate language. # compiler.misc.kindname.constructor=\ # static member -compiler.misc.kindname.annotation=@\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 -compiler.misc.kindname.constructor=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -compiler.misc.kindname.interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 +compiler.misc.kindname.annotation=@interface +compiler.misc.kindname.constructor=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +compiler.misc.kindname.enum=\u5217\u6319 +compiler.misc.kindname.interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 compiler.misc.kindname.static=static -compiler.misc.kindname.type.variable=\u578b\u5909\u6570\u306e\u5883\u754c -compiler.misc.kindname.type.variable.bound=\u578b\u5909\u6570\u306e\u5883\u754c +compiler.misc.kindname.type.variable=\u578B\u5909\u6570 +compiler.misc.kindname.type.variable.bound=\u578B\u5909\u6570\u306E\u5883\u754C compiler.misc.kindname.variable=\u5909\u6570 compiler.misc.kindname.value=\u5024 -compiler.misc.kindname.method=\u30e1\u30bd\u30c3\u30c9 -compiler.misc.kindname.class=\u30af\u30e9\u30b9 -compiler.misc.kindname.package=\u30d1\u30c3\u30b1\u30fc\u30b8 +compiler.misc.kindname.method=\u30E1\u30BD\u30C3\u30C9 +compiler.misc.kindname.class=\u30AF\u30E9\u30B9 +compiler.misc.kindname.package=\u30D1\u30C3\u30B1\u30FC\u30B8 ##### -compiler.misc.no.args=\u5f15\u6570\u7121\u3057 +compiler.misc.no.args=\u5F15\u6570\u304C\u3042\u308A\u307E\u305B\u3093 -compiler.err.override.static={0}\n\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u30e1\u30bd\u30c3\u30c9\u304c static \u3067\u3059\u3002 -compiler.err.override.meth={0}\n\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3055\u308c\u305f\u30e1\u30bd\u30c3\u30c9\u306f {1} \u3067\u3059\u3002 +compiler.err.override.static={0}\n\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\u30E1\u30BD\u30C3\u30C9\u304Cstatic\u3067\u3059 +compiler.err.override.meth={0}\n\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9\u306F{1}\u3067\u3059 -compiler.err.override.meth.doesnt.throw={0}\n\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3055\u308c\u305f\u30e1\u30bd\u30c3\u30c9\u306f {1} \u3092\u30b9\u30ed\u30fc\u3057\u307e\u305b\u3093\u3002 +compiler.err.override.meth.doesnt.throw={0}\n\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9\u306F{1}\u3092\u30B9\u30ED\u30FC\u3057\u307E\u305B\u3093 # In the following string {1} is a space separated list of Java Keywords, as # they would have been declared in the source code -compiler.err.override.weaker.access={0}\n\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u3067\u306e\u5b9a\u7fa9\u3088\u308a\u5f31\u3044\u30a2\u30af\u30bb\u30b9\u7279\u6a29 ({1}) \u3092\u5272\u308a\u5f53\u3066\u3088\u3046\u3068\u3057\u307e\u3057\u305f\u3002 +compiler.err.override.weaker.access={0}\n({1})\u3088\u308A\u5F31\u3044\u30A2\u30AF\u30BB\u30B9\u6A29\u9650\u3092\u5272\u308A\u5F53\u3066\u3088\u3046\u3068\u3057\u307E\u3057\u305F -compiler.err.override.incompatible.ret={0}\n\u623b\u308a\u5024\u306e\u578b {1} \u306f {2} \u3068\u4e92\u63db\u6027\u304c\u3042\u308a\u307e\u305b\u3093 +compiler.err.override.incompatible.ret={0}\n\u623B\u308A\u5024\u306E\u578B{1}\u306F{2}\u3068\u4E92\u63DB\u6027\u304C\u3042\u308A\u307E\u305B\u3093 -compiler.warn.override.unchecked.ret=[unchecked] {0}\n\u623b\u308a\u5024\u306e\u578b\u306b\u306f {1} \u304b\u3089 {2} \u3078\u306e\u7121\u691c\u67fb\u306e\u5909\u63db\u304c\u5fc5\u8981\u3067\u3059\u3002 +compiler.warn.override.unchecked.ret={0}\n\u623B\u308A\u5024\u306E\u578B\u306F{1}\u304B\u3089{2}\u3078\u306E\u7121\u691C\u67FB\u5909\u63DB\u304C\u5FC5\u8981\u3067\u3059 -compiler.warn.override.unchecked.thrown=[unchecked] {0}\n\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3055\u308c\u305f\u30e1\u30bd\u30c3\u30c9\u306f {1} \u3092\u30b9\u30ed\u30fc\u3057\u307e\u305b\u3093\u3002 +compiler.warn.override.unchecked.thrown={0}\n\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9\u306F{1}\u3092\u30B9\u30ED\u30FC\u3057\u307E\u305B\u3093 ## The following are all possible strings for the first argument ({0}) of the ## above strings. -compiler.misc.cant.override={1} \u306e {0} \u306f {3} \u306e {2} \u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.misc.cant.implement={1} \u306e {0} \u306f {3} \u306e {2} \u3092\u5b9f\u88c5\u3067\u304d\u307e\u305b\u3093\u3002 -compiler.misc.clashes.with={1} \u306e {0} \u306f {3} \u306e {2} \u3068\u7af6\u5408\u3057\u307e\u3059\u3002 -compiler.misc.unchecked.override={1} \u306e {0} \u306f {3} \u306e {2} \u3092\u4e0a\u66f8\u304d\u3057\u307e\u3059\u3002 -compiler.misc.unchecked.implement={1} \u306e {0} \u306f {3} \u306e {2} \u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 -compiler.misc.unchecked.clash.with={1} \u306e {0} \u306f {3} \u306e {2} \u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u307e\u3059\u3002 -compiler.misc.varargs.override={1} \u306e {0} \u306f {3} \u306e {2} \u3092\u4e0a\u66f8\u304d\u3057\u307e\u3059\u3002 -compiler.misc.varargs.implement={1} \u306e {0} \u306f {3} \u306e {2} \u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 -compiler.misc.varargs.clash.with={1} \u306e {0} \u306f {3} \u306e {2} \u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u307e\u3059\u3002 +compiler.misc.cant.override={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3067\u304D\u307E\u305B\u3093 +compiler.misc.cant.implement={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u5B9F\u88C5\u3067\u304D\u307E\u305B\u3093 +compiler.misc.clashes.with={1}\u306E{0}\u306F{3}\u306E{2}\u3068\u7AF6\u5408\u3057\u307E\u3059 +compiler.misc.unchecked.override={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059 +compiler.misc.unchecked.implement={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u5B9F\u88C5\u3057\u307E\u3059 +compiler.misc.unchecked.clash.with={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059 +compiler.misc.varargs.override={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059 +compiler.misc.varargs.implement={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u5B9F\u88C5\u3057\u307E\u3059 +compiler.misc.varargs.clash.with={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059 +compiler.misc.non.denotable.type=\u3053\u3053\u3067\u975E\u578B\u6307\u5B9A\u578B{0}\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 + +compiler.misc.inapplicable.method={0} {1}.{2}\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\n({3}) ######################################## # Diagnostics for language feature changes ######################################## -compiler.err.unsupported.fp.lit=16 \u9032\u306e\u6d6e\u52d5\u5c0f\u6570\u70b9\u306e\u30ea\u30c6\u30e9\u30eb\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(16 \u9032\u306e\u6d6e\u52d5\u5c0f\u6570\u70b9\u30ea\u30c6\u30e9\u30eb\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 5 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.unsupported.fp.lit=16\u9032\u6570\u6D6E\u52D5\u5C0F\u6570\u70B9\u30EA\u30C6\u30E9\u30EB\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(16\u9032\u6570\u6D6E\u52D5\u5C0F\u6570\u70B9\u30EA\u30C6\u30E9\u30EB\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 5\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.unsupported.binary.lit=2 \u9032\u306e\u30ea\u30c6\u30e9\u30eb\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(2 \u9032\u306e\u30ea\u30c6\u30e9\u30eb\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 7 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.unsupported.binary.lit=2\u9032\u6570\u30EA\u30C6\u30E9\u30EB\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(2\u9032\u6570\u30EA\u30C6\u30E9\u30EB\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F-source 7\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.unsupported.underscore.lit=\u30ea\u30c6\u30e9\u30eb\u306e\u4e0b\u7dda\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(\u30ea\u30c6\u30e9\u30eb\u3067\u4e0b\u7dda\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 7 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.unsupported.underscore.lit=\u30EA\u30C6\u30E9\u30EB\u5185\u306E\u30A2\u30F3\u30C0\u30FC\u30B9\u30B3\u30A2\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(\u30EA\u30C6\u30E9\u30EB\u5185\u306E\u30A2\u30F3\u30C0\u30FC\u30B9\u30B3\u30A2\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 7\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.warn.enum.as.identifier=\u30ea\u30ea\u30fc\u30b9 5 \u304b\u3089 ''enum'' \u306f\u30ad\u30fc\u30ef\u30fc\u30c9\u306a\u306e\u3067\u8b58\u5225\u5b50\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\n(''enum'' \u3092\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u306b\u306f -source 5 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.try.with.resources.not.supported.in.source=try-with-resource\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(try-with-resource\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 7\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.warn.assert.as.identifier=\u30ea\u30ea\u30fc\u30b9 1.4 \u304b\u3089 ''assert'' \u306f\u30ad\u30fc\u30ef\u30fc\u30c9\u306a\u306e\u3067\u3001\u8b58\u5225\u5b50\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\n(''assert'' \u3092\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001-source 1.4 (\u307e\u305f\u306f\u305d\u308c\u4ee5\u964d\u306e\u30ea\u30ea\u30fc\u30b9\u540d) \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.warn.enum.as.identifier=\u30EA\u30EA\u30FC\u30B95\u304B\u3089''enum''\u306F\u30AD\u30FC\u30EF\u30FC\u30C9\u306A\u306E\u3067\u8B58\u5225\u5B50\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\n(''enum''\u3092\u30AD\u30FC\u30EF\u30FC\u30C9\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u306B\u306F-source 5\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.enum.as.identifier=\u30ea\u30ea\u30fc\u30b9 5 \u304b\u3089 ''enum'' \u306f\u30ad\u30fc\u30ef\u30fc\u30c9\u306a\u306e\u3067\u8b58\u5225\u5b50\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\n(''enum'' \u3092\u8b58\u5225\u5b50\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u306b\u306f -source 1.4 \u307e\u305f\u306f\u305d\u308c\u4ee5\u524d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.warn.assert.as.identifier=\u30EA\u30EA\u30FC\u30B91.4\u304B\u3089''assert''\u306F\u30AD\u30FC\u30EF\u30FC\u30C9\u306A\u306E\u3067\u3001\u8B58\u5225\u5B50\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\n(''assert''\u3092\u30AD\u30FC\u30EF\u30FC\u30C9\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001-source 1.4\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.assert.as.identifier=\u30ea\u30ea\u30fc\u30b9 1.4 \u304b\u3089 ''assert'' \u306f\u30ad\u30fc\u30ef\u30fc\u30c9\u306a\u306e\u3067\u3001\u8b58\u5225\u5b50\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\n(''assert'' \u3092\u8b58\u5225\u5b50\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001-source 1.3 (\u307e\u305f\u306f\u305d\u308c\u4ee5\u524d\u306e\u30ea\u30ea\u30fc\u30b9\u540d) \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.enum.as.identifier=\u30EA\u30EA\u30FC\u30B95\u304B\u3089''enum''\u306F\u30AD\u30FC\u30EF\u30FC\u30C9\u306A\u306E\u3067\u8B58\u5225\u5B50\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\n(''enum''\u3092\u8B58\u5225\u5B50\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u306B\u306F-source 1.4\u4EE5\u524D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.generics.not.supported.in.source=\u7dcf\u79f0\u578b\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(\u7dcf\u79f0\u578b\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 5 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.assert.as.identifier=\u30EA\u30EA\u30FC\u30B91.4\u304B\u3089''assert''\u306F\u30AD\u30FC\u30EF\u30FC\u30C9\u306A\u306E\u3067\u3001\u8B58\u5225\u5B50\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\n(''assert''\u3092\u8B58\u5225\u5B50\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001-source 1.3\u4EE5\u524D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) + +compiler.err.generics.not.supported.in.source=\u7DCF\u79F0\u578B\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(\u7DCF\u79F0\u578B\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 5\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.varargs.not.supported.in.source=\u53ef\u5909\u5f15\u6570\u30e1\u30bd\u30c3\u30c9\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(\u53ef\u5909\u5f15\u6570\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 5 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.varargs.not.supported.in.source=\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 5\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.annotations.not.supported.in.source=\u6ce8\u91c8\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(\u6ce8\u91c8\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 5 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.annotations.not.supported.in.source=\u6CE8\u91C8\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(\u6CE8\u91C8\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 5\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.type.annotations.not.supported.in.source=\u578b\u6ce8\u91c8\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(\u578b\u6ce8\u91c8\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 7 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +#308 compiler.err.type.annotations.not.supported.in.source=\ +#308 type annotations are not supported in -source {0}\n\ +#308 (use -source 7 or higher to enable type annotations) -compiler.err.foreach.not.supported.in.source=for-each \u30eb\u30fc\u30d7\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(for-each \u30eb\u30fc\u30d7\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 5 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.foreach.not.supported.in.source=for-each\u30EB\u30FC\u30D7\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(for-each\u30EB\u30FC\u30D7\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 5\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.static.import.not.supported.in.source=static import \u5ba3\u8a00\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(static import \u5ba3\u8a00\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 5 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.static.import.not.supported.in.source=static import\u5BA3\u8A00\u306F -source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(static import\u5BA3\u8A00\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 5\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.enums.not.supported.in.source=\u5217\u6319\u578b\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(\u5217\u6319\u578b\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f -source 5 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.enums.not.supported.in.source=\u5217\u6319\u578B\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(\u5217\u6319\u578B\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F-source 5\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.diamond.not.supported.in.source=\u30c0\u30a4\u30e4\u30e2\u30f3\u30c9\u6f14\u7b97\u5b50\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(\u30c0\u30a4\u30e4\u30e2\u30f3\u30c9\u6f14\u7b97\u5b50\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f -source 7 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.diamond.not.supported.in.source=\u30C0\u30A4\u30E4\u30E2\u30F3\u30C9\u6F14\u7B97\u5B50\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(\u30C0\u30A4\u30E4\u30E2\u30F3\u30C9\u6F14\u7B97\u5B50\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 7\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) -compiler.err.string.switch.not.supported.in.source=\u30b9\u30a4\u30c3\u30c1\u3067\u306e\u6587\u5b57\u5217\u306e\u4f7f\u7528\u306f -source {0} \u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n(\u30b9\u30a4\u30c3\u30c1\u3067\u6587\u5b57\u5217\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u306b\u306f\u3001-source 7 \u4ee5\u964d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044) +compiler.err.multicatch.not.supported.in.source=\u8907\u6570catch\u6587\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(\u8907\u6570catch\u6587\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 7\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) + +compiler.err.string.switch.not.supported.in.source=switch\u5185\u306E\u6587\u5B57\u5217\u306F-source {0}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(switch\u5185\u306E\u6587\u5B57\u5217\u3092\u4F7F\u7528\u53EF\u80FD\u306B\u3059\u308B\u306B\u306F\u3001-source 7\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044) ######################################## # Diagnostics for where clause implementation @@ -753,30 +810,30 @@ # where clause for captured type: contains upper ('extends {1}') and lower # ('super {2}') bound along with the wildcard that generated this captured type ({3}) -compiler.misc.where.captured={3} \u306e\u6355\u6349\u304b\u3089 {0} \u306f {1} \u306e\u30b5\u30d6\u30af\u30e9\u30b9\u3067 {2} \u306e\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9 +compiler.misc.where.captured={3}\u306E\u30AD\u30E3\u30D7\u30C1\u30E3\u304B\u3089\u306E{0} extends {1} super: {2} # compact where clause for captured type: contains upper ('extends {1}') along # with the wildcard that generated this captured type ({3}) -compiler.misc.where.captured.1={3} \u306e\u6355\u6349\u304b\u3089 {0} \u306f {1} \u306e\u30b5\u30d6\u30af\u30e9\u30b9 +compiler.misc.where.captured.1={3}\u306E\u30AD\u30E3\u30D7\u30C1\u30E3\u304B\u3089\u306E{0} extends {1} # where clause for type variable: contains upper bound(s) ('extends {1}') along with # the kindname ({2}) and location ({3}) in which the typevar has been declared -compiler.misc.where.typevar={2} {3} \u3067\u5ba3\u8a00\u3055\u308c\u305f {0} \u306f {1} \u306e\u30b5\u30d6\u30af\u30e9\u30b9 +compiler.misc.where.typevar={2} {3}\u3067\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B{0} extends {1} # compact where clause for type variable: contains the kindname ({2}) and location ({3}) # in which the typevar has been declared -compiler.misc.where.typevar.1={2} {3} \u3067\u5ba3\u8a00\u3055\u308c\u305f {0} +compiler.misc.where.typevar.1={2} {3}\u3067\u5BA3\u8A00\u3055\u308C\u305F{0} # where clause for type variable: contains all the upper bound(s) ('extends {1}') # of this intersection type -compiler.misc.where.intersection={0} \u306f {1} \u306e\u30b5\u30d6\u30af\u30e9\u30b9 +compiler.misc.where.intersection={0} extends {1} ### Where clause headers ### -compiler.misc.where.description.captured={0} \u306f\u65b0\u305f\u306a\u578b\u5909\u6570\u3067\u3059: -compiler.misc.where.description.typevar={0} \u306f\u578b\u5909\u6570\u3067\u3059: -compiler.misc.where.description.intersection={0} \u306f\u30a4\u30f3\u30bf\u30fc\u30bb\u30af\u30b7\u30e7\u30f3\u578b\u3067\u3059: -compiler.misc.where.description.captured.1={0} \u306f\u65b0\u305f\u306a\u578b\u5909\u6570\u3067\u3059: -compiler.misc.where.description.typevar.1={0} \u306f\u578b\u5909\u6570\u3067\u3059: -compiler.misc.where.description.intersection.1={0} \u306f\u30a4\u30f3\u30bf\u30fc\u30bb\u30af\u30b7\u30e7\u30f3\u578b\u3067\u3059: +compiler.misc.where.description.captured={0}\u304C\u65B0\u3057\u3044\u578B\u5909\u6570\u306E\u5834\u5408: +compiler.misc.where.description.typevar={0}\u304C\u578B\u5909\u6570\u306E\u5834\u5408: +compiler.misc.where.description.intersection={0}\u304Cintersection\u578B\u306E\u5834\u5408: +compiler.misc.where.description.captured.1={0}\u304C\u65B0\u3057\u3044\u578B\u5909\u6570\u306E\u5834\u5408: +compiler.misc.where.description.typevar.1={0}\u304C\u578B\u5909\u6570\u306E\u5834\u5408: +compiler.misc.where.description.intersection.1={0}\u304Cintersection\u578B\u306E\u5834\u5408:
--- a/src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2009, 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 @@ -27,284 +27,292 @@ ## errors ## -compiler.err.abstract.cant.be.instantiated={0} \u662f\u62bd\u8c61\u7684\uff1b\u65e0\u6cd5\u5bf9\u5176\u8fdb\u884c\u5b9e\u4f8b\u5316 -compiler.err.abstract.meth.cant.have.body=\u62bd\u8c61\u65b9\u6cd5\u4e0d\u80fd\u6709\u4e3b\u4f53 -compiler.err.already.annotated={0} {1} \u5df2\u88ab\u6ce8\u91ca -compiler.err.already.defined=\u5df2\u5728 {1} \u4e2d\u5b9a\u4e49 {0} -compiler.err.already.defined.single.import=\u5df2\u5728 single-type \u5bfc\u5165\u4e2d\u5b9a\u4e49 {0} -compiler.err.already.defined.static.single.import=\u5df2\u5728\u9759\u6001 single-type \u5bfc\u5165\u4e2d\u5b9a\u4e49 {0} -compiler.err.already.defined.this.unit=\u5df2\u5728\u8be5\u7f16\u8bd1\u5355\u5143\u4e2d\u5b9a\u4e49 {0} -compiler.err.annotation.missing.default.value=\u6ce8\u91ca {0} \u7f3a\u5c11 {1} -compiler.err.annotation.not.valid.for.type=\u5bf9\u4e8e\u7c7b\u578b\u4e3a {0} \u7684\u503c\uff0c\u6ce8\u91ca\u65e0\u6548 -compiler.err.annotation.type.not.applicable=\u6ce8\u91ca\u7c7b\u578b\u4e0d\u9002\u7528\u4e8e\u8be5\u7c7b\u578b\u7684\u58f0\u660e -compiler.err.annotation.value.must.be.annotation=\u6ce8\u91ca\u503c\u5fc5\u987b\u4e3a\u6ce8\u91ca -compiler.err.annotation.value.must.be.class.literal=\u6ce8\u91ca\u503c\u5fc5\u987b\u4e3a\u7c7b\u5b57\u9762\u503c -compiler.err.annotation.value.must.be.name.value=\u6ce8\u91ca\u503c\u5fc5\u987b\u4e3a\u4ee5\u4e0b\u683c\u5f0f\uff1a\u201cname=value\u201d -compiler.err.annotation.value.not.allowable.type=\u6ce8\u91ca\u503c\u4e0d\u662f\u5141\u8bb8\u7684\u7c7b\u578b -compiler.err.anon.class.impl.intf.no.args=\u533f\u540d\u7c7b\u5b9e\u73b0\u63a5\u53e3\uff1b\u4e0d\u80fd\u6709\u53c2\u6570 -compiler.err.anon.class.impl.intf.no.typeargs=\u533f\u540d\u7c7b\u5b9e\u73b0\u63a5\u53e3\uff1b\u4e0d\u80fd\u5177\u6709\u7c7b\u578b\u53c2\u6570 -compiler.err.anon.class.impl.intf.no.qual.for.new=\u533f\u540d\u7c7b\u5b9e\u73b0\u63a5\u53e3\uff1b\u4e0d\u80fd\u6709\u9650\u5b9a\u7b26 - \u5bf9\u4e8e\u65b0 -compiler.err.array.and.varargs=\u65e0\u6cd5\u5728 {2} \u4e2d\u540c\u65f6\u58f0\u660e {0} \u548c {1} -compiler.err.array.dimension.missing=\u7f3a\u5c11\u6570\u7ec4\u7ef4\u6570 -compiler.err.array.req.but.found=\u9700\u8981\u6570\u7ec4\uff0c\u4f46\u627e\u5230 {0} +compiler.err.abstract.cant.be.instantiated={0}\u662F\u62BD\u8C61\u7684; \u65E0\u6CD5\u5B9E\u4F8B\u5316 +compiler.err.abstract.meth.cant.have.body=\u62BD\u8C61\u65B9\u6CD5\u4E0D\u80FD\u6709\u4E3B\u4F53 +compiler.err.already.annotated={0} {1}\u5DF2\u8FDB\u884C\u6CE8\u91CA +compiler.err.already.defined=\u5DF2\u5728{1}\u4E2D\u5B9A\u4E49{0} +compiler.err.already.defined.single.import=\u5DF2\u5728 single-type \u5BFC\u5165\u4E2D\u5B9A\u4E49{0} +compiler.err.already.defined.static.single.import=\u5DF2\u5728\u9759\u6001 single-type \u5BFC\u5165\u4E2D\u5B9A\u4E49{0} +compiler.err.already.defined.this.unit=\u5DF2\u5728\u8BE5\u7F16\u8BD1\u5355\u5143\u4E2D\u5B9A\u4E49{0} +compiler.err.annotation.missing.default.value=\u5BF9\u4E8E\u5C5E\u6027{1}, \u6CE8\u91CA{0}\u7F3A\u5C11\u503C +compiler.err.annotation.missing.default.value.1=\u5BF9\u4E8E\u5C5E\u6027{1}, \u6CE8\u91CA{0}\u7F3A\u5C11\u503C +compiler.err.annotation.not.valid.for.type=\u5BF9\u4E8E\u7C7B\u578B\u4E3A{0}\u7684\u503C, \u6CE8\u91CA\u65E0\u6548 +compiler.err.annotation.type.not.applicable=\u6CE8\u91CA\u7C7B\u578B\u4E0D\u9002\u7528\u4E8E\u8BE5\u7C7B\u578B\u7684\u58F0\u660E +compiler.err.annotation.value.must.be.annotation=\u6CE8\u91CA\u503C\u5FC5\u987B\u4E3A\u6CE8\u91CA +compiler.err.annotation.value.must.be.class.literal=\u6CE8\u91CA\u503C\u5FC5\u987B\u4E3A\u7C7B\u6587\u5B57 +compiler.err.annotation.value.must.be.name.value=\u6CE8\u91CA\u503C\u5FC5\u987B\u91C7\u7528 ''name=value'' \u683C\u5F0F +compiler.err.annotation.value.not.allowable.type=\u6CE8\u91CA\u503C\u4E0D\u662F\u5141\u8BB8\u7684\u7C7B\u578B +compiler.err.anon.class.impl.intf.no.args=\u533F\u540D\u7C7B\u5B9E\u73B0\u63A5\u53E3; \u4E0D\u80FD\u6709\u53C2\u6570 +compiler.err.anon.class.impl.intf.no.typeargs=\u533F\u540D\u7C7B\u5B9E\u73B0\u63A5\u53E3; \u4E0D\u80FD\u5177\u6709\u7C7B\u578B\u53C2\u6570 +compiler.err.anon.class.impl.intf.no.qual.for.new=\u533F\u540D\u7C7B\u5B9E\u73B0\u63A5\u53E3; \u4E0D\u80FD\u6709\u9650\u5B9A\u7B26 - \u5BF9\u4E8E\u65B0 +compiler.err.array.and.varargs=\u65E0\u6CD5\u5728{2}\u4E2D\u540C\u65F6\u58F0\u660E{0}\u548C{1} +compiler.err.array.dimension.missing=\u7F3A\u5C11\u6570\u7EC4\u7EF4 +compiler.err.array.req.but.found=\u9700\u8981\u6570\u7EC4, \u4F46\u627E\u5230{0} -compiler.err.assignment.from.super-bound=\u901a\u8fc7\u901a\u914d\u7b26 {0} \u6307\u5b9a -compiler.err.assignment.to.extends-bound=\u6307\u5b9a\u7ed9\u901a\u914d\u7b26 {0} -compiler.err.attribute.value.must.be.constant=\u5c5e\u6027\u503c\u5fc5\u987b\u4e3a\u5e38\u91cf +compiler.err.assignment.from.super-bound=\u901A\u8FC7\u901A\u914D\u7B26 {0} \u5206\u914D +compiler.err.assignment.to.extends-bound=\u5206\u914D\u7ED9\u901A\u914D\u7B26 {0} +compiler.err.attribute.value.must.be.constant=\u5C5E\u6027\u503C\u5FC5\u987B\u4E3A\u5E38\u91CF -compiler.err.break.outside.switch.loop=\u5728 switch \u6216 loop \u5916\u90e8\u4e2d\u65ad +compiler.err.break.outside.switch.loop=\u5728 switch \u6216 loop \u5916\u90E8\u4E2D\u65AD -compiler.err.call.must.be.first.stmt.in.ctor=\u5bf9 {0} \u7684\u8c03\u7528\u5fc5\u987b\u662f\u6784\u9020\u51fd\u6570\u4e2d\u7684\u7b2c\u4e00\u4e2a\u8bed\u53e5 -compiler.err.cant.apply.symbol=\u65e0\u6cd5\u5c06 {4} {5} \u4e2d\u7684 {0} {1} \u5e94\u7528\u4e8e {2}({3}) -compiler.err.cant.apply.symbol.1=\u65e0\u6cd5\u5c06 {4} {5} \u4e2d\u7684 {0} {1} \u5e94\u7528\u4e8e {2}({3})\n\u539f\u56e0\u4e3a: {6} -compiler.err.cant.assign.val.to.final.var=\u65e0\u6cd5\u4e3a\u6700\u7ec8\u53d8\u91cf {0} \u6307\u5b9a\u503c -compiler.err.cant.deref=\u65e0\u6cd5\u53d6\u6d88\u5f15\u7528 {0} -compiler.err.cant.extend.intf.annotation=\u5bf9\u4e8e @interface\uff0c\u4e0d\u5141\u8bb8 "extends" -compiler.err.cant.inherit.from.final=\u65e0\u6cd5\u4ece\u6700\u7ec8 {0} \u8fdb\u884c\u7ee7\u627f -compiler.err.cant.ref.before.ctor.called=\u65e0\u6cd5\u5728\u8c03\u7528\u7236\u7c7b\u578b\u6784\u9020\u51fd\u6570\u4e4b\u524d\u5f15\u7528 {0} -compiler.err.cant.ret.val.from.meth.decl.void=\u5bf9\u4e8e\u7ed3\u679c\u7c7b\u578b\u4e3a void \u7684\u65b9\u6cd5\uff0c\u65e0\u6cd5\u8fd4\u56de\u503c -compiler.err.cant.select.static.class.from.param.type=\u65e0\u6cd5\u4ece\u53c2\u6570\u5316\u7684\u7c7b\u578b\u4e2d\u9009\u62e9\u9759\u6001\u7c7b -compiler.err.cant.inherit.diff.arg=\u65e0\u6cd5\u4f7f\u7528\u4ee5\u4e0b\u4e0d\u540c\u7684\u53c2\u6570\u7ee7\u627f {0}\uff1a<{1}> \u548c <{2}> -compiler.err.catch.without.try="catch" \u4e0d\u5e26\u6709 "try" -compiler.err.clash.with.pkg.of.same.name={0} \u4e0e\u5e26\u6709\u76f8\u540c\u540d\u79f0\u7684\u8f6f\u4ef6\u5305\u51b2\u7a81 -compiler.err.const.expr.req=\u9700\u8981\u5e38\u91cf\u8868\u8fbe\u5f0f -compiler.err.enum.const.req=\u9700\u8981\u975e\u9650\u5b9a\u679a\u4e3e\u5e38\u91cf\u540d\u79f0 -compiler.err.cont.outside.loop=continue \u5728 loop \u5916\u90e8 -compiler.err.cyclic.inheritance=\u5faa\u73af\u7ee7\u627f\u6d89\u53ca {0} -compiler.err.cyclic.annotation.element=\u5faa\u73af\u6ce8\u91ca\u5143\u7d20\u7c7b\u578b -compiler.err.call.to.super.not.allowed.in.enum.ctor=\u5728\u679a\u4e3e\u6784\u9020\u51fd\u6570\u4e2d\u4e0d\u5141\u8bb8\u8c03\u7528\u7236\u7c7b\u578b -compiler.err.no.superclass={0} \u4e0d\u5177\u6709\u7236\u7c7b +compiler.err.call.must.be.first.stmt.in.ctor=\u5BF9{0}\u7684\u8C03\u7528\u5FC5\u987B\u662F\u6784\u9020\u5668\u4E2D\u7684\u7B2C\u4E00\u4E2A\u8BED\u53E5 +compiler.err.cant.apply.symbol=\u65E0\u6CD5\u5C06{4} {5}\u4E2D\u7684{0} {1}\u5E94\u7528\u5230\u7ED9\u5B9A\u7C7B\u578B\n\u9700\u8981: {2}\n\u627E\u5230: {3} +compiler.err.cant.apply.symbol.1=\u65E0\u6CD5\u5C06{4} {5}\u4E2D\u7684{0} {1}\u5E94\u7528\u5230\u7ED9\u5B9A\u7C7B\u578B;\n\u9700\u8981: {2}\n\u627E\u5230: {3}\n\u539F\u56E0: {6} +compiler.err.cant.apply.symbols=\u5BF9\u4E8E{1}({2}), \u627E\u4E0D\u5230\u5408\u9002\u7684{0} +compiler.err.cant.assign.val.to.final.var=\u65E0\u6CD5\u4E3A\u6700\u7EC8\u53D8\u91CF{0}\u5206\u914D\u503C +compiler.err.cant.deref=\u65E0\u6CD5\u53D6\u6D88\u5F15\u7528{0} +compiler.err.cant.extend.intf.annotation=\u5BF9\u4E8E @interfaces, \u4E0D\u5141\u8BB8 ''extends'' +compiler.err.cant.inherit.from.final=\u65E0\u6CD5\u4ECE\u6700\u7EC8{0}\u8FDB\u884C\u7EE7\u627F +compiler.err.cant.ref.before.ctor.called=\u65E0\u6CD5\u5728\u8C03\u7528\u8D85\u7C7B\u578B\u6784\u9020\u5668\u4E4B\u524D\u5F15\u7528{0} +compiler.err.cant.ret.val.from.meth.decl.void=\u5BF9\u4E8E\u7ED3\u679C\u7C7B\u578B\u4E3A\u7A7A\u7684\u65B9\u6CD5, \u65E0\u6CD5\u8FD4\u56DE\u503C +compiler.err.cant.select.static.class.from.param.type=\u65E0\u6CD5\u4ECE\u53C2\u6570\u5316\u7684\u7C7B\u578B\u4E2D\u9009\u62E9\u9759\u6001\u7C7B +compiler.err.cant.inherit.diff.arg=\u65E0\u6CD5\u4F7F\u7528\u4EE5\u4E0B\u4E0D\u540C\u7684\u53C2\u6570\u7EE7\u627F{0}: <{1}> \u548C <{2}> +compiler.err.catch.without.try=\u6709 ''catch'', \u4F46\u662F\u6CA1\u6709 ''try'' +compiler.err.clash.with.pkg.of.same.name={0}\u4E0E\u5E26\u6709\u76F8\u540C\u540D\u79F0\u7684\u7A0B\u5E8F\u5305\u51B2\u7A81 +compiler.err.const.expr.req=\u9700\u8981\u5E38\u91CF\u8868\u8FBE\u5F0F +compiler.err.enum.const.req=\u9700\u8981\u975E\u9650\u5B9A\u679A\u4E3E\u5E38\u91CF\u540D\u79F0 +compiler.err.cont.outside.loop=continue \u5728 loop \u5916\u90E8 +compiler.err.cyclic.inheritance=\u6D89\u53CA{0}\u7684\u5FAA\u73AF\u7EE7\u627F +compiler.err.cyclic.annotation.element=\u5FAA\u73AF\u6CE8\u91CA\u5143\u7D20\u7C7B\u578B +compiler.err.call.to.super.not.allowed.in.enum.ctor=\u5728\u679A\u4E3E\u6784\u9020\u5668\u4E2D\u4E0D\u5141\u8BB8\u8C03\u7528\u8D85\u7C7B +compiler.err.no.superclass={0}\u4E0D\u5177\u6709\u8D85\u7C7B -compiler.err.concrete.inheritance.conflict={1} \u4e2d\u7684\u65b9\u6cd5 {0} \u548c {3} \u4e2d\u7684\u65b9\u6cd5 {2} \u662f\u4f7f\u7528\u76f8\u540c\u7684\u7b7e\u540d\u7ee7\u627f\u7684 +compiler.warn.type.parameter.on.polymorphic.signature=\u5C06 MethodHandle \u8C03\u7528\u7684\u5DF2\u8FC7\u65F6\u6CE8\u91CA\u4ECE x.<T>invoke(y) \u66F4\u6539\u4E3A (T)x.invoke(y) +compiler.warn.wrong.target.for.polymorphic.signature.definition=MethodHandle API \u6784\u5EFA\u9700\u8981 -target 7 \u8FD0\u884C\u65F6\u6216\u66F4\u9AD8; \u5F53\u524D\u4E3A -target {0} + +compiler.err.concrete.inheritance.conflict={1}\u4E2D\u7684\u65B9\u6CD5{0}\u548C{3}\u4E2D\u7684\u65B9\u6CD5{2}\u662F\u4F7F\u7528\u76F8\u540C\u7684\u7B7E\u540D\u7EE7\u627F\u7684 -compiler.err.default.allowed.in.intf.annotation.member=\u4ec5\u5728 @interface \u6210\u5458\u4e2d\u5141\u8bb8\u4f7f\u7528\u9ed8\u8ba4\u503c -compiler.err.doesnt.exist=\u8f6f\u4ef6\u5305 {0} \u4e0d\u5b58\u5728 -compiler.err.duplicate.annotation=\u6ce8\u91ca\u91cd\u590d -compiler.err.duplicate.annotation.member.value={1} \u4e2d\u7684\u6ce8\u91ca\u6210\u5458\u503c {0} \u91cd\u590d -compiler.err.duplicate.class=\u7c7b\u91cd\u590d\uff1a {0} -compiler.err.duplicate.case.label=case \u6807\u7b7e\u91cd\u590d -compiler.err.duplicate.default.label=default \u6807\u7b7e\u91cd\u590d +compiler.err.default.allowed.in.intf.annotation.member=\u4EC5\u5728 @interface \u6210\u5458\u4E2D\u5141\u8BB8\u4F7F\u7528\u9ED8\u8BA4\u503C +compiler.err.doesnt.exist=\u7A0B\u5E8F\u5305{0}\u4E0D\u5B58\u5728 +compiler.err.duplicate.annotation=\u6CE8\u91CA\u91CD\u590D +compiler.err.duplicate.annotation.member.value={1}\u4E2D\u7684\u6CE8\u91CA\u6210\u5458\u503C{0}\u91CD\u590D +compiler.err.duplicate.class=\u7C7B\u91CD\u590D: {0} +compiler.err.duplicate.case.label=case \u6807\u7B7E\u91CD\u590D +compiler.err.duplicate.default.label=default \u6807\u7B7E\u91CD\u590D -compiler.err.else.without.if="else" \u4e0d\u5e26\u6709 "if" -compiler.err.empty.bytecode.ident=\u7a7a\u5b57\u8282\u7801\u6807\u8bc6\u7b26 -compiler.err.empty.char.lit=\u7a7a\u5b57\u7b26\u5b57\u9762\u503c -compiler.err.encl.class.required=\u9700\u8981\u5305\u542b {0} \u7684\u5c01\u95ed\u5b9e\u4f8b -compiler.err.enum.annotation.must.be.enum.constant=\u679a\u4e3e\u6ce8\u91ca\u503c\u5fc5\u987b\u662f\u679a\u4e3e\u5e38\u91cf +compiler.err.else.without.if=\u6709 ''if'', \u4F46\u662F\u6CA1\u6709 ''else'' +compiler.err.empty.char.lit=\u7A7A\u5B57\u7B26\u6587\u5B57 +compiler.err.encl.class.required=\u9700\u8981\u5305\u542B{0}\u7684\u5C01\u95ED\u5B9E\u4F8B +compiler.err.enum.annotation.must.be.enum.constant=\u679A\u4E3E\u6CE8\u91CA\u503C\u5FC5\u987B\u662F\u679A\u4E3E\u5E38\u91CF -compiler.err.enum.cant.be.instantiated=\u65e0\u6cd5\u5b9e\u4f8b\u5316\u679a\u4e3e\u7c7b\u578b -compiler.err.enum.label.must.be.unqualified.enum=\u679a\u4e3e switch case \u6807\u7b7e\u5fc5\u987b\u4e3a\u679a\u4e3e\u5e38\u91cf\u7684\u975e\u9650\u5b9a\u540d\u79f0 -compiler.err.enum.no.subclassing=\u7c7b\u65e0\u6cd5\u76f4\u63a5\u7ee7\u627f java.lang.Enum -compiler.err.enum.types.not.extensible=\u679a\u4e3e\u7c7b\u578b\u4e0d\u53ef\u7ee7\u627f -compiler.err.enum.no.finalize=\u679a\u4e3e\u4e0d\u80fd\u6709 finalize \u65b9\u6cd5 -compiler.err.error.reading.file=\u8bfb\u53d6 {0} \u65f6\u51fa\u9519\uff1b{1} -compiler.err.except.already.caught=\u5df2\u6355\u6349\u5230\u5f02\u5e38 {0} -compiler.err.except.never.thrown.in.try=\u5728\u76f8\u5e94\u7684 try \u8bed\u53e5\u4e3b\u4f53\u4e2d\u4e0d\u80fd\u629b\u51fa\u5f02\u5e38 {0} +compiler.err.enum.cant.be.instantiated=\u65E0\u6CD5\u5B9E\u4F8B\u5316\u679A\u4E3E\u7C7B\u578B +compiler.err.enum.label.must.be.unqualified.enum=\u679A\u4E3E switch case \u6807\u7B7E\u5FC5\u987B\u4E3A\u679A\u4E3E\u5E38\u91CF\u7684\u975E\u9650\u5B9A\u540D\u79F0 +compiler.err.enum.no.subclassing=\u7C7B\u65E0\u6CD5\u76F4\u63A5\u6269\u5C55 java.lang.Enum +compiler.err.enum.types.not.extensible=\u679A\u4E3E\u7C7B\u578B\u4E0D\u53EF\u7EE7\u627F +compiler.err.enum.no.finalize=\u679A\u4E3E\u4E0D\u80FD\u6709 finalize \u65B9\u6CD5 +compiler.err.error.reading.file=\u8BFB\u53D6{0}\u65F6\u51FA\u9519; {1} +compiler.err.except.already.caught=\u5DF2\u6355\u83B7\u5230\u5F02\u5E38\u9519\u8BEF{0} +compiler.err.except.never.thrown.in.try=\u5728\u76F8\u5E94\u7684 try \u8BED\u53E5\u4E3B\u4F53\u4E2D\u4E0D\u80FD\u629B\u51FA\u5F02\u5E38\u9519\u8BEF{0} -compiler.err.final.parameter.may.not.be.assigned=\u4e0d\u80fd\u6307\u5b9a\u6700\u7ec8\u53c2\u6570 {0} -compiler.err.finally.without.try="finally" \u4e0d\u5e26\u6709 "try" -compiler.err.foreach.not.applicable.to.type=foreach \u4e0d\u9002\u7528\u4e8e\u8868\u8fbe\u5f0f\u7c7b\u578b -compiler.err.fp.number.too.large=\u6d6e\u70b9\u6570\u8fc7\u5927 -compiler.err.fp.number.too.small=\u6d6e\u70b9\u6570\u8fc7\u5c0f +compiler.err.final.parameter.may.not.be.assigned=\u4E0D\u80FD\u5206\u914D\u6700\u7EC8\u53C2\u6570{0} +compiler.err.try.resource.may.not.be.assigned=\u53EF\u80FD\u672A\u5206\u914D\u53EF\u81EA\u52A8\u5173\u95ED\u7684\u8D44\u6E90{0} +compiler.err.multicatch.parameter.may.not.be.assigned=\u53EF\u80FD\u672A\u5206\u914D multi-catch \u53C2\u6570{0} +compiler.err.finally.without.try=\u6709 ''finally'', \u4F46\u662F\u6CA1\u6709 ''try'' +compiler.err.foreach.not.applicable.to.type=foreach \u4E0D\u9002\u7528\u4E8E\u8868\u8FBE\u5F0F\u7C7B\u578B +compiler.err.fp.number.too.large=\u6D6E\u70B9\u6570\u8FC7\u5927 +compiler.err.fp.number.too.small=\u6D6E\u70B9\u6570\u8FC7\u5C0F -compiler.err.generic.array.creation=\u521b\u5efa\u6cdb\u578b\u6570\u7ec4 -compiler.err.generic.throwable=\u6cdb\u578b\u7c7b\u65e0\u6cd5\u7ee7\u627f java.lang.Throwable +compiler.err.generic.array.creation=\u521B\u5EFA\u6CDB\u578B\u6570\u7EC4 +compiler.err.generic.throwable=\u6CDB\u578B\u7C7B\u4E0D\u80FD\u6269\u5C55 java.lang.Throwable -compiler.err.icls.cant.have.static.decl=\u5185\u90e8\u7c7b\u4e0d\u80fd\u6709\u9759\u6001\u58f0\u660e -compiler.err.illegal.bytecode.ident.char=\u975e\u6cd5\u5b57\u8282\u7801\u6807\u8bc6\u7b26\u5b57\u7b26\uff1a\\{0} -compiler.err.illegal.char=\u975e\u6cd5\u5b57\u7b26\uff1a \\{0} -compiler.err.illegal.char.for.encoding=\u7f16\u7801 {0} \u7684\u4e0d\u53ef\u6620\u5c04\u5b57\u7b26 -compiler.err.illegal.combination.of.modifiers=\u975e\u6cd5\u7684\u4fee\u9970\u7b26\u7ec4\u5408\uff1a{0} \u548c {1} -compiler.err.illegal.enum.static.ref=\u521d\u59cb\u5316\u7a0b\u5e8f\u4e2d\u5bf9\u9759\u6001\u5b57\u6bb5\u7684\u5f15\u7528\u4e0d\u5408\u6cd5 -compiler.err.illegal.esc.char=\u975e\u6cd5\u8f6c\u4e49\u5b57\u7b26 -compiler.err.illegal.forward.ref=\u975e\u6cd5\u5411\u524d\u5f15\u7528 -compiler.warn.forward.ref=\u5728\u53d8\u91cf\u3000''{0}'' \u521d\u59cb\u5316\u4e4b\u524d\u5bf9\u5176\u5f15\u7528 -compiler.err.illegal.self.ref=\u521d\u59cb\u5316\u7a0b\u5e8f\u4e2d\u81ea\u6211\u5f15\u7528 -compiler.warn.self.ref=\u5728\u53d8\u91cf\u3000''{0}''\u3000\u7684\u521d\u59cb\u5316\u7a0b\u5e8f\u4e2d\u81ea\u6211\u5f15\u7528 -compiler.err.illegal.generic.type.for.instof=instanceof \u7684\u6cdb\u578b\u7c7b\u578b\u4e0d\u5408\u6cd5 -compiler.err.illegal.initializer.for.type={0} \u7684\u521d\u59cb\u5316\u7a0b\u5e8f\u4e0d\u5408\u6cd5 -compiler.err.illegal.line.end.in.char.lit=\u5b57\u7b26\u5b57\u9762\u503c\u7684\u884c\u7ed3\u5c3e\u4e0d\u5408\u6cd5 -compiler.err.illegal.nonascii.digit=\u975e\u6cd5\u7684\u975e ASCII \u6570\u5b57 -compiler.err.illegal.underscore=\u975e\u6cd5\u4e0b\u5212\u7ebf -compiler.err.illegal.qual.not.icls=\u975e\u6cd5\u9650\u5b9a\u7b26\uff1b{0} \u4e0d\u662f\u5185\u90e8\u7c7b -compiler.err.illegal.start.of.expr=\u975e\u6cd5\u7684\u8868\u8fbe\u5f0f\u5f00\u59cb -compiler.err.illegal.start.of.type=\u975e\u6cd5\u7684\u7c7b\u578b\u5f00\u59cb -compiler.err.illegal.unicode.esc=\u975e\u6cd5\u7684 Unicode \u8f6c\u4e49 -compiler.err.import.requires.canonical=\u5bfc\u5165\u9700\u8981 {0} \u7684\u89c4\u8303\u540d\u79f0 -compiler.err.improperly.formed.type.param.missing=\u7c7b\u578b\u7684\u683c\u5f0f\u4e0d\u6b63\u786e\uff0c\u7f3a\u5c11\u67d0\u4e9b\u53c2\u6570 -compiler.err.improperly.formed.type.inner.raw.param=\u7c7b\u578b\u7684\u683c\u5f0f\u4e0d\u6b63\u786e\uff0c\u7ed9\u51fa\u4e86\u666e\u901a\u7c7b\u578b\u7684\u7c7b\u578b\u53c2\u6570 -compiler.err.incomparable.types=\u4e0d\u53ef\u6bd4\u8f83\u7684\u7c7b\u578b\uff1a{0} \u548c {1} -compiler.err.int.number.too.large=\u8fc7\u5927\u7684\u6574\u6570\uff1a {0} -compiler.err.internal.error.cant.instantiate=\u5185\u90e8\u9519\u8bef\uff1b\u65e0\u6cd5\u5c06\u4f4d\u4e8e {1} \u7684 {0} \u5b9e\u4f8b\u5316\u4e3a ({2}) -compiler.err.intf.annotation.members.cant.have.params=@interface \u6210\u5458\u4e0d\u80fd\u5e26\u6709\u53c2\u6570 -compiler.err.intf.annotation.cant.have.type.params=@interface \u4e0d\u80fd\u5e26\u6709\u7c7b\u578b\u53c2\u6570 -compiler.err.intf.annotation.members.cant.have.type.params=@interface \u6210\u5458\u4e0d\u80fd\u5e26\u6709\u7c7b\u578b\u53c2\u6570 -compiler.err.intf.annotation.member.clash=@interface \u6210\u5458\u4e0e {1} \u4e2d\u7684\u65b9\u6cd5''{0}''\u51b2\u7a81 -compiler.err.intf.expected.here=\u6b64\u5904\u9700\u8981\u63a5\u53e3 -compiler.err.intf.meth.cant.have.body=\u63a5\u53e3\u65b9\u6cd5\u4e0d\u80fd\u5e26\u6709\u4e3b\u4f53 -compiler.err.invalid.annotation.member.type=\u6ce8\u91ca\u6210\u5458\u7684\u7c7b\u578b\u65e0\u6548 -compiler.err.invalid.binary.number=\u4e8c\u8fdb\u5236\u6570\u5b57\u5fc5\u987b\u5305\u542b\u81f3\u5c11\u4e00\u4f4d\u4e8c\u8fdb\u5236\u6570 -compiler.err.invalid.hex.number=\u5341\u516d\u8fdb\u5236\u6570\u5b57\u5fc5\u987b\u5305\u542b\u81f3\u5c11\u4e00\u4f4d\u5341\u516d\u8fdb\u5236\u6570 -compiler.err.invalid.meth.decl.ret.type.req=\u65b9\u6cd5\u58f0\u660e\u65e0\u6548\uff1b\u9700\u8981\u8fd4\u56de\u7c7b\u578b +compiler.err.icls.cant.have.static.decl=\u5185\u90E8\u7C7B\u4E0D\u80FD\u6709\u9759\u6001\u58F0\u660E +compiler.err.illegal.char=\u975E\u6CD5\u5B57\u7B26: \\{0} +compiler.err.illegal.char.for.encoding=\u7F16\u7801{0}\u7684\u4E0D\u53EF\u6620\u5C04\u5B57\u7B26 +compiler.err.illegal.combination.of.modifiers=\u975E\u6CD5\u7684\u4FEE\u9970\u7B26\u7EC4\u5408: {0}\u548C{1} +compiler.err.illegal.enum.static.ref=\u521D\u59CB\u5316\u7A0B\u5E8F\u4E2D\u5BF9\u9759\u6001\u5B57\u6BB5\u7684\u5F15\u7528\u4E0D\u5408\u6CD5 +compiler.err.illegal.esc.char=\u975E\u6CD5\u8F6C\u4E49\u7B26 +compiler.err.illegal.forward.ref=\u975E\u6CD5\u524D\u5411\u5F15\u7528 +compiler.warn.forward.ref=\u5148\u5F15\u7528\u53D8\u91CF ''{0}'', \u7136\u540E\u518D\u5BF9\u5176\u521D\u59CB\u5316 +compiler.err.illegal.self.ref=\u521D\u59CB\u5316\u7A0B\u5E8F\u4E2D\u5B58\u5728\u81EA\u5F15\u7528 +compiler.warn.self.ref=\u53D8\u91CF ''{0}'' \u7684\u521D\u59CB\u5316\u7A0B\u5E8F\u4E2D\u5B58\u5728\u81EA\u5F15\u7528 +compiler.err.illegal.generic.type.for.instof=instanceof \u7684\u6CDB\u578B\u7C7B\u578B\u4E0D\u5408\u6CD5 +compiler.err.illegal.initializer.for.type={0}\u7684\u521D\u59CB\u5316\u7A0B\u5E8F\u4E0D\u5408\u6CD5 +compiler.err.illegal.line.end.in.char.lit=\u5B57\u7B26\u6587\u5B57\u7684\u884C\u7ED3\u5C3E\u4E0D\u5408\u6CD5 +compiler.err.illegal.nonascii.digit=\u975E\u6CD5\u7684\u975E ASCII \u6570\u5B57 +compiler.err.illegal.underscore=\u975E\u6CD5\u4E0B\u5212\u7EBF +compiler.err.illegal.qual.not.icls=\u975E\u6CD5\u9650\u5B9A\u7B26; {0}\u4E0D\u662F\u5185\u90E8\u7C7B +compiler.err.illegal.start.of.expr=\u975E\u6CD5\u7684\u8868\u8FBE\u5F0F\u5F00\u59CB +compiler.err.illegal.start.of.type=\u975E\u6CD5\u7684\u7C7B\u578B\u5F00\u59CB +compiler.err.illegal.unicode.esc=\u975E\u6CD5\u7684 Unicode \u8F6C\u4E49 +compiler.err.import.requires.canonical=\u5BFC\u5165\u9700\u8981{0}\u7684\u89C4\u8303\u540D\u79F0 +compiler.err.improperly.formed.type.param.missing=\u7C7B\u578B\u7684\u683C\u5F0F\u4E0D\u6B63\u786E, \u7F3A\u5C11\u67D0\u4E9B\u53C2\u6570 +compiler.err.improperly.formed.type.inner.raw.param=\u7C7B\u578B\u7684\u683C\u5F0F\u4E0D\u6B63\u786E, \u7ED9\u51FA\u4E86\u539F\u59CB\u7C7B\u578B\u7684\u7C7B\u578B\u53C2\u6570 +compiler.err.incomparable.types=\u4E0D\u53EF\u6BD4\u8F83\u7684\u7C7B\u578B: {0}\u548C{1} +compiler.err.int.number.too.large=\u8FC7\u5927\u7684\u6574\u6570: {0} +compiler.err.internal.error.cant.instantiate=\u5185\u90E8\u9519\u8BEF; \u65E0\u6CD5\u5C06\u4F4D\u4E8E{1}\u7684{0}\u5B9E\u4F8B\u5316\u4E3A ({2}) +compiler.err.intf.annotation.members.cant.have.params=@interface \u6210\u5458\u4E0D\u80FD\u5E26\u6709\u53C2\u6570 +compiler.err.intf.annotation.cant.have.type.params=@interface \u4E0D\u80FD\u5E26\u6709\u7C7B\u578B\u53C2\u6570 +compiler.err.intf.annotation.members.cant.have.type.params=@interface \u6210\u5458\u4E0D\u80FD\u5E26\u6709\u7C7B\u578B\u53C2\u6570 +compiler.err.intf.annotation.member.clash=@interface \u6210\u5458\u4E0E{1}\u4E2D\u7684\u65B9\u6CD5 ''{0}'' \u51B2\u7A81 +compiler.err.intf.expected.here=\u6B64\u5904\u9700\u8981\u63A5\u53E3 +compiler.err.intf.meth.cant.have.body=\u63A5\u53E3\u65B9\u6CD5\u4E0D\u80FD\u5E26\u6709\u4E3B\u4F53 +compiler.err.invalid.annotation.member.type=\u6CE8\u91CA\u6210\u5458\u7684\u7C7B\u578B\u65E0\u6548 +compiler.err.invalid.binary.number=\u4E8C\u8FDB\u5236\u6570\u5B57\u4E2D\u5FC5\u987B\u5305\u542B\u81F3\u5C11\u4E00\u4E2A\u4E8C\u8FDB\u5236\u6570 +compiler.err.invalid.hex.number=\u5341\u516D\u8FDB\u5236\u6570\u5B57\u5FC5\u987B\u5305\u542B\u81F3\u5C11\u4E00\u4F4D\u5341\u516D\u8FDB\u5236\u6570 +compiler.err.invalid.meth.decl.ret.type.req=\u65B9\u6CD5\u58F0\u660E\u65E0\u6548; \u9700\u8981\u8FD4\u56DE\u7C7B\u578B -compiler.err.label.already.in.use=\u6807\u7b7e {0} \u5df2\u4f7f\u7528 -compiler.err.local.var.accessed.from.icls.needs.final=\u4ece\u5185\u90e8\u7c7b\u4e2d\u8bbf\u95ee\u5c40\u90e8\u53d8\u91cf {0}\uff1b\u9700\u8981\u88ab\u58f0\u660e\u4e3a\u6700\u7ec8\u7c7b\u578b -compiler.err.local.enum=\u679a\u4e3e\u7c7b\u578b\u4e0d\u80fd\u4e3a\u672c\u5730\u7c7b\u578b -compiler.err.cannot.create.array.with.type.arguments=\u4e0d\u80fd\u4f7f\u7528\u7c7b\u578b\u53c2\u6570\u521b\u5efa\u6570\u7ec4 +compiler.err.label.already.in.use=\u6807\u7B7E{0}\u5DF2\u4F7F\u7528 +compiler.err.local.var.accessed.from.icls.needs.final=\u4ECE\u5185\u90E8\u7C7B\u4E2D\u8BBF\u95EE\u672C\u5730\u53D8\u91CF{0}; \u9700\u8981\u88AB\u58F0\u660E\u4E3A\u6700\u7EC8\u7C7B\u578B +compiler.err.local.enum=\u679A\u4E3E\u7C7B\u578B\u4E0D\u80FD\u4E3A\u672C\u5730\u7C7B\u578B +compiler.err.cannot.create.array.with.type.arguments=\u65E0\u6CD5\u521B\u5EFA\u5177\u6709\u7C7B\u578B\u53D8\u91CF\u7684\u6570\u7EC4 # # limits. We don't give the limits in the diagnostic because we expect # them to change, yet we want to use the same diagnostic. These are all # detected during code generation. # -compiler.err.limit.code=\u4ee3\u7801\u8fc7\u957f -compiler.err.limit.code.too.large.for.try.stmt=try \u8bed\u53e5\u7684\u4ee3\u7801\u8fc7\u957f -compiler.err.limit.dimensions=\u6570\u7ec4\u7c7b\u578b\u7ef4\u6570\u8fc7\u591a -compiler.err.limit.locals=\u5c40\u90e8\u53d8\u91cf\u8fc7\u591a -compiler.err.limit.parameters=\u53c2\u6570\u8fc7\u591a -compiler.err.limit.pool=\u5e38\u91cf\u8fc7\u591a -compiler.err.limit.pool.in.class=\u7c7b {0} \u4e2d\u7684\u5e38\u91cf\u8fc7\u591a -compiler.err.limit.stack=\u4ee3\u7801\u9700\u8981\u8fc7\u591a\u5806\u6808 -compiler.err.limit.string=\u5e38\u91cf\u5b57\u7b26\u4e32\u8fc7\u957f -compiler.err.limit.string.overflow=\u5bf9\u4e8e\u5e38\u91cf\u6c60\u6765\u8bf4\uff0c\u5b57\u7b26\u4e32 \"{0}...\" \u7684 UTF8 \u8868\u793a\u8fc7\u957f +compiler.err.limit.code=\u4EE3\u7801\u8FC7\u957F +compiler.err.limit.code.too.large.for.try.stmt=try \u8BED\u53E5\u7684\u4EE3\u7801\u8FC7\u957F +compiler.err.limit.dimensions=\u6570\u7EC4\u7C7B\u578B\u7EF4\u8FC7\u591A +compiler.err.limit.locals=\u672C\u5730\u53D8\u91CF\u8FC7\u591A +compiler.err.limit.parameters=\u53C2\u6570\u8FC7\u591A +compiler.err.limit.pool=\u5E38\u91CF\u8FC7\u591A +compiler.err.limit.pool.in.class=\u7C7B{0}\u4E2D\u7684\u5E38\u91CF\u8FC7\u591A +compiler.err.limit.stack=\u4EE3\u7801\u9700\u8981\u8FC7\u591A\u5806\u6808 +compiler.err.limit.string=\u5E38\u91CF\u5B57\u7B26\u4E32\u8FC7\u957F +compiler.err.limit.string.overflow=\u5BF9\u4E8E\u5E38\u91CF\u6C60\u6765\u8BF4, \u5B57\u7B26\u4E32 \"{0}...\" \u7684 UTF8 \u8868\u793A\u8FC7\u957F -compiler.err.malformed.fp.lit=\u6d6e\u70b9\u5b57\u9762\u503c\u4e0d\u89c4\u5219 -compiler.err.method.does.not.override.superclass=\u65b9\u6cd5\u4e0d\u4f1a\u8986\u76d6\u6216\u5b9e\u73b0\u8d85\u7c7b\u578b\u7684\u65b9\u6cd5 -compiler.err.missing.meth.body.or.decl.abstract=\u7f3a\u5c11\u65b9\u6cd5\u4e3b\u4f53\uff0c\u6216\u58f0\u660e\u62bd\u8c61 -compiler.err.missing.ret.stmt=\u7f3a\u5c11\u8fd4\u56de\u8bed\u53e5 -compiler.err.missing.ret.val=\u7f3a\u5c11\u8fd4\u56de\u503c -compiler.err.mod.not.allowed.here=\u6b64\u5904\u4e0d\u5141\u8bb8\u4f7f\u7528\u4fee\u9970\u7b26 {0} -compiler.err.intf.not.allowed.here=\u6b64\u5904\u4e0d\u5141\u8bb8\u4f7f\u7528\u63a5\u53e3 -compiler.err.enums.must.be.static=\u53ea\u6709\u5728\u9759\u6001\u4e0a\u4e0b\u6587\u4e2d\u624d\u5141\u8bb8\u4f7f\u7528\u679a\u4e3e\u58f0\u660e +compiler.err.malformed.fp.lit=\u6D6E\u70B9\u6587\u5B57\u7684\u683C\u5F0F\u9519\u8BEF +compiler.err.method.does.not.override.superclass=\u65B9\u6CD5\u4E0D\u4F1A\u8986\u76D6\u6216\u5B9E\u73B0\u8D85\u7C7B\u578B\u7684\u65B9\u6CD5 +compiler.err.missing.meth.body.or.decl.abstract=\u7F3A\u5C11\u65B9\u6CD5\u4E3B\u4F53, \u6216\u58F0\u660E\u62BD\u8C61 +compiler.err.missing.ret.stmt=\u7F3A\u5C11\u8FD4\u56DE\u8BED\u53E5 +compiler.err.missing.ret.val=\u7F3A\u5C11\u8FD4\u56DE\u503C +compiler.err.mod.not.allowed.here=\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528\u4FEE\u9970\u7B26{0} +compiler.err.intf.not.allowed.here=\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528\u63A5\u53E3 +compiler.err.enums.must.be.static=\u53EA\u6709\u5728\u9759\u6001\u4E0A\u4E0B\u6587\u4E2D\u624D\u5141\u8BB8\u4F7F\u7528\u679A\u4E3E\u58F0\u660E -compiler.err.name.clash.same.erasure=\u540d\u79f0\u51b2\u7a81\uff1a{0} \u548c {1} \u5177\u6709\u76f8\u540c\u7591\u7b26 -compiler.err.name.clash.same.erasure.no.override=\u540d\u79f0\u51b2\u7a81\uff1a{1} \u4e2d\u7684 {0} \u548c {3} \u4e2d\u7684 {2} \u5177\u6709\u76f8\u540c\u7591\u7b26\uff0c\u4f46\u4e24\u8005\u5747\u4e0d\u8986\u76d6\u5bf9\u65b9 -compiler.err.name.reserved.for.internal.use={0} \u4e3a\u5185\u90e8\u4f7f\u7528\u4fdd\u7559 -compiler.err.native.meth.cant.have.body=\u672c\u673a\u65b9\u6cd5\u4e0d\u80fd\u5e26\u6709\u4e3b\u4f53 -compiler.err.neither.conditional.subtype=? \u7684\u4e0d\u517c\u5bb9\u7c7b\u578b\uff1a\u4e24\u8005\u90fd\u4e0d\u662f\u5bf9\u65b9\u7684\u5b50\u7c7b\u578b\n\u7b2c\u4e8c\u4e2a\u64cd\u4f5c\u6570\uff1a {0}\n\u7b2c\u4e09\u4e2a\u64cd\u4f5c\u6570\uff1a {1} -compiler.err.new.not.allowed.in.annotation=\u6ce8\u91ca\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528 "new" -compiler.err.no.annotation.member={1} \u4e2d\u6ca1\u6709\u6ce8\u91ca\u6210\u5458 {0} -compiler.err.no.encl.instance.of.type.in.scope=\u4f5c\u7528\u57df\u4e2d\u6ca1\u6709\u7c7b\u578b\u4e3a {0} \u7684\u5c01\u95ed\u5b9e\u4f8b -compiler.err.no.intf.expected.here=\u6b64\u5904\u4e0d\u9700\u8981\u63a5\u53e3 -compiler.err.no.match.entry={0} \u5728 {1} \u7684\u6761\u76ee\u4e2d\u6ca1\u6709\u5339\u914d\u9879\uff1b\u9700\u8981 {2} -compiler.err.not.annotation.type={0} \u4e0d\u662f\u6ce8\u91ca\u7c7b\u578b -compiler.err.not.def.access.class.intf.cant.access={1} \u4e2d\u7684 {0} \u662f\u5728\u4e0d\u53ef\u8bbf\u95ee\u7684\u7c7b\u6216\u63a5\u53e3\u4e2d\u5b9a\u4e49\u7684 -compiler.err.not.def.public.cant.access={0} \u5728 {1} \u4e2d\u4e0d\u662f\u516c\u5171\u7684\uff1b\u65e0\u6cd5\u4ece\u5916\u90e8\u8f6f\u4ef6\u5305\u4e2d\u5bf9\u5176\u8fdb\u884c\u8bbf\u95ee -compiler.err.not.loop.label=\u4e0d\u662f loop \u6807\u7b7e\uff1a {0} -compiler.err.not.stmt=\u4e0d\u662f\u8bed\u53e5 -compiler.err.not.encl.class=\u4e0d\u662f\u5c01\u95ed\u7c7b\uff1a {0} +compiler.err.name.clash.same.erasure=\u540D\u79F0\u51B2\u7A81: {0}\u548C{1}\u5177\u6709\u76F8\u540C\u7591\u7B26 +compiler.err.name.clash.same.erasure.no.override=\u540D\u79F0\u51B2\u7A81: {1}\u4E2D\u7684{0}\u548C{3}\u4E2D\u7684{2}\u5177\u6709\u76F8\u540C\u7591\u7B26, \u4F46\u4E24\u8005\u5747\u4E0D\u8986\u76D6\u5BF9\u65B9 +compiler.err.name.reserved.for.internal.use={0}\u4E3A\u5185\u90E8\u4F7F\u7528\u4FDD\u7559 +compiler.err.native.meth.cant.have.body=\u672C\u673A\u65B9\u6CD5\u4E0D\u80FD\u5E26\u6709\u4E3B\u4F53 +compiler.err.neither.conditional.subtype=? \u7684\u4E0D\u517C\u5BB9\u7C7B\u578B: \u4E24\u8005\u90FD\u4E0D\u662F\u5BF9\u65B9\u7684\u5B50\u7C7B\u578B\n\u7B2C\u4E8C\u4E2A\u64CD\u4F5C\u6570: {0}\n\u7B2C\u4E09\u4E2A\u64CD\u4F5C\u6570: {1} +compiler.err.new.not.allowed.in.annotation=\u6CE8\u91CA\u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528 ''new'' +compiler.err.no.annotation.member={1}\u4E2D\u6CA1\u6709\u6CE8\u91CA\u6210\u5458{0} +compiler.err.no.encl.instance.of.type.in.scope=\u4F5C\u7528\u57DF\u4E2D\u6CA1\u6709\u7C7B\u578B\u4E3A{0}\u7684\u5C01\u95ED\u5B9E\u4F8B +compiler.err.no.intf.expected.here=\u6B64\u5904\u4E0D\u9700\u8981\u63A5\u53E3 +compiler.err.no.match.entry={0}\u5728{1}\u7684\u6761\u76EE\u4E2D\u6CA1\u6709\u5339\u914D\u9879; \u9700\u8981{2} +compiler.err.not.annotation.type={0}\u4E0D\u662F\u6CE8\u91CA\u7C7B\u578B +compiler.err.not.def.access.class.intf.cant.access={1}\u4E2D\u7684{0}\u662F\u5728\u4E0D\u53EF\u8BBF\u95EE\u7684\u7C7B\u6216\u63A5\u53E3\u4E2D\u5B9A\u4E49\u7684 +compiler.err.not.def.public.cant.access={0}\u5728{1}\u4E2D\u4E0D\u662F\u516C\u5171\u7684; \u65E0\u6CD5\u4ECE\u5916\u90E8\u7A0B\u5E8F\u5305\u4E2D\u5BF9\u5176\u8FDB\u884C\u8BBF\u95EE +compiler.err.not.loop.label=\u4E0D\u662F loop \u6807\u7B7E: {0} +compiler.err.not.stmt=\u4E0D\u662F\u8BED\u53E5 +compiler.err.not.encl.class=\u4E0D\u662F\u5C01\u95ED\u7C7B: {0} -compiler.err.operator.cant.be.applied=\u8fd0\u7b97\u7b26 {0} \u4e0d\u80fd\u5e94\u7528\u4e8e {1} +compiler.err.operator.cant.be.applied=\u8FD0\u7B97\u7B26{0}\u4E0D\u80FD\u5E94\u7528\u4E8E{1} -compiler.err.pkg.annotations.sb.in.package-info.java=\u8f6f\u4ef6\u5305\u6ce8\u91ca\u5e94\u5728\u6587\u4ef6 package-info.java \u4e2d -compiler.err.pkg.clashes.with.class.of.same.name=\u8f6f\u4ef6\u5305 {0} \u4e0e\u5e26\u6709\u76f8\u540c\u540d\u79f0\u7684\u7c7b\u51b2\u7a81 +compiler.err.pkg.annotations.sb.in.package-info.java=\u7A0B\u5E8F\u5305\u6CE8\u91CA\u5E94\u5728\u6587\u4EF6 package-info.java \u4E2D +compiler.err.pkg.clashes.with.class.of.same.name=\u7A0B\u5E8F\u5305{0}\u4E0E\u5E26\u6709\u76F8\u540C\u540D\u79F0\u7684\u7C7B\u51B2\u7A81 -compiler.err.warnings.and.werror=\u53d1\u73b0\u8b66\u544a\u5e76\u4e14\u6307\u5b9a\u4e86\u3000-Werror +compiler.err.warnings.and.werror=\u53D1\u73B0\u8B66\u544A, \u4F46\u6307\u5B9A\u4E86 -Werror # Errors related to annotation processing -compiler.err.proc.cant.access=\u65e0\u6cd5\u8bbf\u95ee {0}\n{1}\n\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u4ee5\u4e0b\u5806\u6808\u8ffd\u8e2a\u3002\n{2} +compiler.err.proc.cant.access=\u65E0\u6CD5\u8BBF\u95EE{0}\n{1}\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605\u4EE5\u4E0B\u5806\u6808\u8DDF\u8E2A\u3002\n{2} -compiler.err.proc.cant.find.class=\u627e\u4e0d\u5230\u201c{0}\u201d\u7684\u7c7b\u6587\u4ef6\u3002 +compiler.err.proc.cant.find.class=\u627E\u4E0D\u5230 ''{0}'' \u7684\u7C7B\u6587\u4EF6\u3002 # Print a client-generated error message; assumed to be localized, no translation required compiler.err.proc.messager={0} -compiler.err.proc.no.explicit.annotation.processing.requested=\u4ec5\u5f53\u663e\u5f0f\u8bf7\u6c42\u6ce8\u91ca\u5904\u7406\u65f6\u624d\u63a5\u53d7\u7c7b\u540d\u79f0\u201c{0}\u201d +compiler.err.proc.no.explicit.annotation.processing.requested=\u4EC5\u5F53\u663E\u5F0F\u8BF7\u6C42\u6CE8\u91CA\u5904\u7406\u65F6\u624D\u63A5\u53D7\u7C7B\u540D\u79F0 ''{0}'' -compiler.err.proc.no.service=\u65e0\u6cd5\u627e\u5230\u670d\u52a1\u52a0\u8f7d\u5668\u7c7b\u3002\njava.util.ServiceLoader \u6216 sun.misc.Service \u5fc5\u987b\u53ef\u7528\u3002 +compiler.err.proc.no.service=\u627E\u4E0D\u5230\u670D\u52A1\u52A0\u8F7D\u5668\u7C7B\u3002\njava.util.ServiceLoader \u6216 sun.misc.Service \u5FC5\u987B\u53EF\u7528\u3002 -compiler.err.proc.processor.bad.option.name=\u5904\u7406\u5668"{1}"\u63d0\u4f9b\u7684\u9009\u9879\u540d\u79f0"{0}"\u9519\u8bef +compiler.err.proc.processor.bad.option.name=\u5904\u7406\u7A0B\u5E8F ''{1}'' \u63D0\u4F9B\u7684\u9009\u9879\u540D\u79F0 ''{0}'' \u9519\u8BEF -compiler.err.proc.processor.cant.instantiate=\u65e0\u6cd5\u5b9e\u4f8b\u5316\u5904\u7406\u7a0b\u5e8f\u201c{0}\u201d\u7684\u5b9e\u4f8b +compiler.err.proc.processor.cant.instantiate=\u65E0\u6CD5\u5B9E\u4F8B\u5316\u5904\u7406\u7A0B\u5E8F ''{0}'' \u7684\u5B9E\u4F8B -compiler.err.proc.processor.constructor.error=\u6784\u9020\u5904\u7406\u7a0b\u5e8f\u5bf9\u8c61 {0} \u65f6\u629b\u51fa\u5f02\u5e38 +compiler.err.proc.processor.constructor.error=\u6784\u9020\u5904\u7406\u7A0B\u5E8F\u5BF9\u8C61{0}\u65F6\u629B\u51FA\u5F02\u5E38\u9519\u8BEF -compiler.err.proc.processor.not.found=\u672a\u627e\u5230\u6ce8\u91ca\u5904\u7406\u7a0b\u5e8f\u201c{0}\u201d +compiler.err.proc.processor.not.found=\u627E\u4E0D\u5230\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F ''{0}'' -compiler.err.proc.processor.wrong.type=\u6ce8\u91ca\u5904\u7406\u7a0b\u5e8f\u201c{0}\u201d\u672a\u5b9e\u73b0 javax.annotation.processing.Processor +compiler.err.proc.processor.wrong.type=\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F ''{0}'' \u672A\u5B9E\u73B0 javax.annotation.processing.Processor -compiler.err.proc.service.problem=\u751f\u6210\u670d\u52a1\u52a0\u8f7d\u5668\u4ee5\u52a0\u8f7d\u5904\u7406\u5668\u65f6\u53d1\u751f\u9519\u8bef\u3002 +compiler.err.proc.service.problem=\u521B\u5EFA\u670D\u52A1\u52A0\u8F7D\u5668\u4EE5\u52A0\u8F7D\u5904\u7406\u7A0B\u5E8F\u65F6\u51FA\u9519\u3002 -compiler.err.proc.bad.config.file=\u670d\u52a1\u914d\u7f6e\u6587\u4ef6\u4e0d\u6b63\u786e\uff0c\u6216\u6784\u9020\u5904\u7406\u7a0b\u5e8f\u5bf9\u8c61 {0} \u65f6\u629b\u51fa\u5f02\u5e38 +compiler.err.proc.bad.config.file=\u670D\u52A1\u914D\u7F6E\u6587\u4EF6\u4E0D\u6B63\u786E, \u6216\u6784\u9020\u5904\u7406\u7A0B\u5E8F\u5BF9\u8C61{0}\u65F6\u629B\u51FA\u5F02\u5E38\u9519\u8BEF -compiler.err.proc.cant.create.loader=\u65e0\u6cd5\u4e3a\u6ce8\u91ca\u5904\u7406\u7a0b\u5e8f {0} \u521b\u5efa\u7c7b\u52a0\u8f7d\u5668 +compiler.err.proc.cant.create.loader=\u65E0\u6CD5\u4E3A\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F{0}\u521B\u5EFA\u7C7B\u52A0\u8F7D\u5668 -compiler.err.qualified.new.of.static.class=\u9650\u5b9a\u7684\u65b0\u9759\u6001\u7c7b +compiler.err.qualified.new.of.static.class=\u9650\u5B9A\u7684\u65B0\u9759\u6001\u7C7B -compiler.err.recursive.ctor.invocation=\u9012\u5f52\u6784\u9020\u51fd\u6570\u8c03\u7528 -compiler.err.ref.ambiguous=\u5bf9 {0} \u7684\u5f15\u7528\u4e0d\u660e\u786e\uff0c{3} \u4e2d\u7684 {1} {2} \u548c {6} \u4e2d\u7684 {4} {5} \u90fd\u5339\u914d -compiler.err.repeated.annotation.target=\u6ce8\u91ca\u76ee\u6807\u91cd\u590d -compiler.err.repeated.interface=\u63a5\u53e3\u91cd\u590d -compiler.err.repeated.modifier=\u4fee\u9970\u7b26\u91cd\u590d -compiler.err.report.access={0} \u53ef\u4ee5\u5728 {2} \u4e2d\u8bbf\u95ee {1} -compiler.err.ret.outside.meth=\u8fd4\u56de\u5916\u90e8\u65b9\u6cd5 +compiler.err.recursive.ctor.invocation=\u9012\u5F52\u6784\u9020\u5668\u8C03\u7528 +compiler.err.ref.ambiguous=\u5BF9{0}\u7684\u5F15\u7528\u4E0D\u660E\u786E, {3}\u4E2D\u7684{1} {2}\u548C{6}\u4E2D\u7684{4} {5}\u90FD\u5339\u914D +compiler.err.repeated.annotation.target=\u6CE8\u91CA\u76EE\u6807\u91CD\u590D +compiler.err.repeated.interface=\u63A5\u53E3\u91CD\u590D +compiler.err.repeated.modifier=\u4FEE\u9970\u7B26\u91CD\u590D +compiler.err.report.access={0}\u53EF\u4EE5\u5728{2}\u4E2D\u8BBF\u95EE{1} +compiler.err.ret.outside.meth=\u8FD4\u56DE\u5916\u90E8\u65B9\u6CD5 -compiler.err.signature.doesnt.match.supertype=\u7b7e\u540d\u4e0e {0} \u4e0d\u5339\u914d\uff1b\u4e0d\u517c\u5bb9\u7684\u7236\u7c7b\u578b -compiler.err.signature.doesnt.match.intf=\u7b7e\u540d\u4e0e {0} \u4e0d\u5339\u914d\uff1b\u4e0d\u517c\u5bb9\u7684\u63a5\u53e3 -compiler.err.does.not.override.abstract={0} \u4e0d\u662f\u62bd\u8c61\u7684\uff0c\u5e76\u4e14\u672a\u8986\u76d6 {2} \u4e2d\u7684\u62bd\u8c61\u65b9\u6cd5 {1} -compiler.err.source.cant.overwrite.input.file=\u5199\u5165\u6e90\u65f6\u51fa\u9519\uff1b\u65e0\u6cd5\u8986\u5199\u8f93\u5165\u6587\u4ef6 {0} -compiler.err.stack.sim.error=\u5185\u90e8\u9519\u8bef\uff1a{0} \u4e2d\u7684\u5806\u6808 sim \u9519\u8bef -compiler.err.static.imp.only.classes.and.interfaces=\u4ec5\u4ece\u7c7b\u548c\u63a5\u53e3\u9759\u6001\u5bfc\u5165 -compiler.err.string.const.req=\u9700\u8981\u5e38\u91cf\u5b57\u7b26\u4e32\u8868\u8fbe\u5f0f -compiler.err.synthetic.name.conflict=\u7b26\u53f7 {0} \u4e0e {1} \u4e2d\u7684 compiler-synthesized \u7b26\u53f7\u51b2\u7a81 -compiler.warn.synthetic.name.conflict=\u7b26\u53f7 {0} \u4e0e {1} \u4e2d\u7684 compiler-synthesized \u7b26\u53f7\u51b2\u7a81 +compiler.err.signature.doesnt.match.supertype=\u7B7E\u540D\u4E0E{0}\u4E0D\u5339\u914D; \u4E0D\u517C\u5BB9\u7684\u8D85\u7C7B\u578B +compiler.err.signature.doesnt.match.intf=\u7B7E\u540D\u4E0E{0}\u4E0D\u5339\u914D; \u4E0D\u517C\u5BB9\u7684\u63A5\u53E3 +compiler.err.does.not.override.abstract={0}\u4E0D\u662F\u62BD\u8C61\u7684, \u5E76\u4E14\u672A\u8986\u76D6{2}\u4E2D\u7684\u62BD\u8C61\u65B9\u6CD5{1} +compiler.err.source.cant.overwrite.input.file=\u5199\u5165\u6E90\u65F6\u51FA\u9519; \u65E0\u6CD5\u8986\u76D6\u8F93\u5165\u6587\u4EF6{0} +compiler.err.stack.sim.error=\u5185\u90E8\u9519\u8BEF: {0}\u4E2D\u7684\u5806\u6808 sim \u9519\u8BEF +compiler.err.static.imp.only.classes.and.interfaces=\u4EC5\u4ECE\u7C7B\u548C\u63A5\u53E3\u9759\u6001\u5BFC\u5165 +compiler.err.string.const.req=\u9700\u8981\u5E38\u91CF\u5B57\u7B26\u4E32\u8868\u8FBE\u5F0F +compiler.err.synthetic.name.conflict=\u7B26\u53F7{0}\u4E0E{1}\u4E2D\u7684 compiler-synthesized \u7B26\u53F7\u51B2\u7A81 +compiler.warn.synthetic.name.conflict=\u7B26\u53F7{0}\u4E0E{1}\u4E2D\u7684 compiler-synthesized \u7B26\u53F7\u51B2\u7A81 -compiler.err.throws.not.allowed.in.intf.annotation=@interface \u6210\u5458\u4e2d\u4e0d\u5141\u8bb8\u4f7f\u7528 throws \u5b50\u53e5 -compiler.err.try.without.catch.or.finally="try" \u4e0d\u5e26\u6709 "catch" \u6216 "finally" -compiler.err.type.doesnt.take.params=\u7c7b\u578b {0} \u4e0d\u5e26\u6709\u53c2\u6570 -compiler.err.type.var.cant.be.deref=\u65e0\u6cd5\u4ece\u7c7b\u578b\u53d8\u91cf\u4e2d\u8fdb\u884c\u9009\u62e9 -compiler.err.type.var.may.not.be.followed.by.other.bounds=\u7c7b\u578b\u53d8\u91cf\u540e\u9762\u4e0d\u80fd\u5e26\u6709\u5176\u4ed6\u9650\u5236\u8303\u56f4 -compiler.err.type.var.more.than.once=\u7c7b\u578b\u53d8\u91cf {0} \u5728 {1} \u7684\u7ed3\u679c\u7c7b\u578b\u4e2d\u591a\u6b21\u51fa\u73b0\uff1b\u5fc5\u987b\u5bf9\u5176\u8fdb\u884c\u5b9e\u4f8b\u5316 -compiler.err.type.var.more.than.once.in.result=\u7c7b\u578b\u53d8\u91cf {0} \u5728 {1} \u7684\u7c7b\u578b\u4e2d\u591a\u6b21\u51fa\u73b0\uff1b\u5fc5\u987b\u5bf9\u5176\u8fdb\u884c\u5b9e\u4f8b\u5316 -compiler.err.types.incompatible.diff.ret=\u7c7b\u578b {0} \u548c {1} \u4e0d\u517c\u5bb9\uff1b\u4e24\u8005\u90fd\u5b9a\u4e49\u4e86 {2}\uff0c\u4f46\u5374\u5e26\u6709\u4e0d\u76f8\u5173\u7684\u8fd4\u56de\u7c7b\u578b +compiler.err.throws.not.allowed.in.intf.annotation=@interface \u6210\u5458\u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528 throws \u5B50\u53E5 +compiler.err.try.without.catch.or.finally=\u6709 ''try'', \u4F46\u662F\u6CA1\u6709 ''catch'' \u6216 ''finally'' +compiler.err.try.without.catch.finally.or.resource.decls=''try'' \u4E0D\u5E26\u6709 ''catch'', ''finally'' \u6216\u8D44\u6E90\u58F0\u660E +compiler.err.type.doesnt.take.params=\u7C7B\u578B{0}\u4E0D\u5E26\u6709\u53C2\u6570 +compiler.err.type.var.cant.be.deref=\u65E0\u6CD5\u4ECE\u7C7B\u578B\u53D8\u91CF\u4E2D\u8FDB\u884C\u9009\u62E9 +compiler.err.type.var.may.not.be.followed.by.other.bounds=\u7C7B\u578B\u53D8\u91CF\u540E\u9762\u4E0D\u80FD\u5E26\u6709\u5176\u4ED6\u9650\u5236\u8303\u56F4 +compiler.err.type.var.more.than.once=\u7C7B\u578B\u53D8\u91CF{0}\u5728{1}\u7684\u7ED3\u679C\u7C7B\u578B\u4E2D\u591A\u6B21\u51FA\u73B0; \u5FC5\u987B\u5BF9\u5176\u8FDB\u884C\u5B9E\u4F8B\u5316 +compiler.err.type.var.more.than.once.in.result=\u7C7B\u578B\u53D8\u91CF{0}\u5728{1}\u7684\u7C7B\u578B\u4E2D\u591A\u6B21\u51FA\u73B0; \u5FC5\u987B\u5BF9\u5176\u8FDB\u884C\u5B9E\u4F8B\u5316 +compiler.err.types.incompatible.diff.ret=\u7C7B\u578B{0}\u548C{1}\u4E0D\u517C\u5BB9; \u4E24\u8005\u90FD\u5B9A\u4E49\u4E86{2}, \u4F46\u5374\u5E26\u6709\u4E0D\u76F8\u5173\u7684\u8FD4\u56DE\u7C7B\u578B -compiler.err.unclosed.bytecode.ident=\u672a\u7ed3\u675f\u7684\u5b57\u8282\u7801\u6807\u8bc6\u7b26 -compiler.err.unclosed.char.lit=\u672a\u7ed3\u675f\u7684\u5b57\u7b26\u5b57\u9762\u503c -compiler.err.unclosed.comment=\u672a\u7ed3\u675f\u7684\u6ce8\u91ca -compiler.err.unclosed.str.lit=\u672a\u7ed3\u675f\u7684\u5b57\u7b26\u4e32\u5b57\u9762\u503c -compiler.err.unknown.enum.constant=\u5728\u7c7b\u6587\u4ef6 {0} \u4e2d\uff1a\u672a\u77e5\u7684\u679a\u4e3e\u5e38\u91cf {1}.{2} -compiler.err.unsupported.encoding=\u4e0d\u652f\u6301\u7684\u7f16\u7801\uff1a {0} -compiler.err.io.exception=\u8bfb\u53d6\u6e90\u6587\u4ef6\u65f6\u51fa\u9519\uff1a {0} -compiler.err.undef.label=\u672a\u5b9a\u4e49\u7684\u6807\u7b7e\uff1a {0} -compiler.err.undetermined.type=\u65e0\u6cd5\u786e\u5b9a {0} \u7684\u7c7b\u578b\u53c2\u6570 -compiler.err.undetermined.type.1=\u65e0\u6cd5\u786e\u5b9a {0} \u7684\u7c7b\u578b\u53c2\u6570\uff1b{1} -compiler.err.invalid.inferred.types={0} \u7684\u63a8\u65ad\u7c7b\u578b\u65e0\u6548\uff1b{1} -compiler.err.unreachable.stmt=\u65e0\u6cd5\u8bbf\u95ee\u7684\u8bed\u53e5 -compiler.err.initializer.must.be.able.to.complete.normally=\u521d\u59cb\u5316\u7a0b\u5e8f\u5fc5\u987b\u80fd\u591f\u6b63\u5e38\u5b8c\u6210 -compiler.err.unreported.exception.need.to.catch.or.throw=\u672a\u62a5\u544a\u7684\u5f02\u5e38 {0}\uff1b\u5fc5\u987b\u5bf9\u5176\u8fdb\u884c\u6355\u6349\u6216\u58f0\u660e\u4ee5\u4fbf\u629b\u51fa -compiler.err.unreported.exception.default.constructor=\u9ed8\u8ba4\u6784\u9020\u51fd\u6570\u4e2d\u672a\u62a5\u544a\u7684\u5f02\u5e38 {0} -compiler.err.unsupported.cross.fp.lit=\u8be5 VM \u4e0d\u652f\u6301\u5341\u516d\u8fdb\u5236\u6d6e\u70b9\u5b57\u9762\u503c -compiler.err.void.not.allowed.here=\u6b64\u5904\u4e0d\u5141\u8bb8\u4f7f\u7528 "void" \u7c7b\u578b +compiler.err.unclosed.char.lit=\u672A\u7ED3\u675F\u7684\u5B57\u7B26\u6587\u5B57 +compiler.err.unclosed.comment=\u672A\u7ED3\u675F\u7684\u6CE8\u91CA +compiler.err.unclosed.str.lit=\u672A\u7ED3\u675F\u7684\u5B57\u7B26\u4E32\u6587\u5B57 +compiler.err.unknown.enum.constant=\u5728\u7C7B\u6587\u4EF6{0}\u4E2D: \u672A\u77E5\u7684\u679A\u4E3E\u5E38\u91CF {1}.{2} +compiler.err.unsupported.encoding=\u4E0D\u652F\u6301\u7684\u7F16\u7801: {0} +compiler.err.io.exception=\u8BFB\u53D6\u6E90\u6587\u4EF6\u65F6\u51FA\u9519: {0} +compiler.err.undef.label=\u672A\u5B9A\u4E49\u7684\u6807\u7B7E: {0} +compiler.err.undetermined.type=\u65E0\u6CD5\u786E\u5B9A{0}\u7684\u7C7B\u578B\u53C2\u6570 +compiler.err.undetermined.type.1=\u65E0\u6CD5\u786E\u5B9A{0}\u7684\u7C7B\u578B\u53C2\u6570; {1} +compiler.err.invalid.inferred.types={0}\u7684\u63A8\u65AD\u7C7B\u578B\u65E0\u6548; {1} +compiler.err.cant.apply.diamond=\u65E0\u6CD5\u63A8\u65AD{0}\u7684\u7C7B\u578B\u53C2\u6570 +compiler.err.cant.apply.diamond.1=\u65E0\u6CD5\u63A8\u65AD{0}\u7684\u7C7B\u578B\u53C2\u6570;\n\u539F\u56E0: {1} +compiler.err.unreachable.stmt=\u65E0\u6CD5\u8BBF\u95EE\u7684\u8BED\u53E5 +compiler.err.initializer.must.be.able.to.complete.normally=\u521D\u59CB\u5316\u7A0B\u5E8F\u5FC5\u987B\u80FD\u591F\u6B63\u5E38\u5B8C\u6210 +compiler.err.unreported.exception.need.to.catch.or.throw=\u672A\u62A5\u544A\u7684\u5F02\u5E38\u9519\u8BEF{0}; \u5FC5\u987B\u5BF9\u5176\u8FDB\u884C\u6355\u83B7\u6216\u58F0\u660E\u4EE5\u4FBF\u629B\u51FA +compiler.err.unreported.exception.default.constructor=\u9ED8\u8BA4\u6784\u9020\u5668\u4E2D\u672A\u62A5\u544A\u7684\u5F02\u5E38\u9519\u8BEF{0} +compiler.err.unsupported.cross.fp.lit=\u8BE5 VM \u4E0D\u652F\u6301\u5341\u516D\u8FDB\u5236\u6D6E\u70B9\u6587\u5B57 +compiler.err.void.not.allowed.here=\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528 ''\u7A7A'' \u7C7B\u578B -compiler.err.wrong.number.type.args=\u7c7b\u578b\u53d8\u91cf\u6570\u76ee\u9519\u8bef\uff1b\u9700\u8981 {0} +compiler.err.wrong.number.type.args=\u7C7B\u578B\u53D8\u91CF\u6570\u76EE\u9519\u8BEF; \u9700\u8981{0} -compiler.err.var.might.already.be.assigned=\u53ef\u80fd\u5df2\u6307\u5b9a\u53d8\u91cf {0} -compiler.err.var.might.not.have.been.initialized=\u53ef\u80fd\u5c1a\u672a\u521d\u59cb\u5316\u53d8\u91cf {0} -compiler.err.var.might.be.assigned.in.loop=\u53ef\u80fd\u5728 loop \u4e2d\u6307\u5b9a\u4e86\u53d8\u91cf {0} +compiler.err.var.might.already.be.assigned=\u53EF\u80FD\u5DF2\u5206\u914D\u53D8\u91CF{0} +compiler.err.var.might.not.have.been.initialized=\u53EF\u80FD\u5C1A\u672A\u521D\u59CB\u5316\u53D8\u91CF{0} +compiler.err.var.might.be.assigned.in.loop=\u53EF\u80FD\u5728 loop \u4E2D\u5206\u914D\u4E86\u53D8\u91CF{0} # In the following string, {1} will always be the detail message from # java.io.IOException. -compiler.err.class.cant.write=\u5199\u5165 {0} \u65f6\u51fa\u9519\uff1a {1} +compiler.err.class.cant.write=\u5199\u5165{0}\u65F6\u51FA\u9519: {1} # In the following string, {0} is the name of the class in the Java source. # It really should be used two times.. -compiler.err.class.public.should.be.in.file=\u7c7b {0} \u662f\u516c\u5171\u7684\uff0c\u5e94\u5728\u540d\u4e3a {0}.java \u7684\u6587\u4ef6\u4e2d\u58f0\u660e +compiler.err.class.public.should.be.in.file=\u7C7B{0}\u662F\u516C\u5171\u7684, \u5E94\u5728\u540D\u4E3A {0}.java \u7684\u6587\u4EF6\u4E2D\u58F0\u660E ## All errors which do not refer to a particular line in the source code are ## preceded by this string. -compiler.err.error=\u9519\u8bef\uff1a +compiler.err.error=\u9519\u8BEF:\u0020 # The following error messages do not refer to a line in the source code. -compiler.err.cant.read.file=\u65e0\u6cd5\u8bfb\u53d6\uff1a {0} +compiler.err.cant.read.file=\u65E0\u6CD5\u8BFB\u53D6: {0} ##### # Fatal Errors -compiler.misc.fatal.err.no.java.lang=\u81f4\u547d\u9519\u8bef\uff1a\u5728\u7c7b\u8def\u5f84\u6216\u5f15\u5bfc\u7c7b\u8def\u5f84\u4e2d\u627e\u4e0d\u5230\u8f6f\u4ef6\u5305 java.lang -compiler.misc.fatal.err.cant.locate.meth=\u81f4\u547d\u9519\u8bef\uff1a\u627e\u4e0d\u5230\u65b9\u6cd5 {0} -compiler.misc.fatal.err.cant.locate.field=\u81f4\u547d\u9519\u8bef\uff1a\u627e\u4e0d\u5230\u5b57\u6bb5 {0} -compiler.misc.fatal.err.cant.locate.ctor=\u81f4\u547d\u9519\u8bef\uff1a\u627e\u4e0d\u5230 {0} \u7684\u6784\u9020\u51fd\u6570 +compiler.misc.fatal.err.no.java.lang=\u81F4\u547D\u9519\u8BEF: \u5728\u7C7B\u8DEF\u5F84\u6216\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u4E2D\u627E\u4E0D\u5230\u7A0B\u5E8F\u5305 java.lang +compiler.misc.fatal.err.cant.locate.meth=\u81F4\u547D\u9519\u8BEF: \u627E\u4E0D\u5230\u65B9\u6CD5{0} +compiler.misc.fatal.err.cant.locate.field=\u81F4\u547D\u9519\u8BEF: \u627E\u4E0D\u5230\u5B57\u6BB5{0} +compiler.misc.fatal.err.cant.locate.ctor=\u81F4\u547D\u9519\u8BEF: \u627E\u4E0D\u5230{0}\u7684\u6784\u9020\u5668 +compiler.misc.fatal.err.cant.close.loader=\u81F4\u547D\u9519\u8BEF: \u65E0\u6CD5\u5173\u95ED\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u7684\u7C7B\u52A0\u8F7D\u5668 ##### @@ -312,42 +320,51 @@ ## miscellaneous strings ## -compiler.misc.source.unavailable=\uff08\u6e90\u4e0d\u53ef\u7528\uff09 -compiler.misc.base.membership=\u60a8\u7684\u6240\u6709\u57fa\u7c7b\u90fd\u5c5e\u4e8e\u6211\u4eec -compiler.misc.x.print.processor.info=\u5904\u7406\u7a0b\u5e8f {0} \u4e0e {1} \u5339\u914d\u5e76\u8fd4\u56de {2}\u3002 -compiler.misc.x.print.rounds=\u5faa\u73af {0}:\n\t\u8f93\u5165\u6587\u4ef6: {1}\n\t\u6ce8\u91ca: {2}\n\t\u6700\u540e\u4e00\u4e2a\u5faa\u73af: {3} +compiler.misc.source.unavailable=(\u6E90\u4E0D\u53EF\u7528) +compiler.misc.base.membership=\u60A8\u7684\u6240\u6709\u57FA\u7C7B\u90FD\u5C5E\u4E8E\u6211\u4EEC +compiler.misc.x.print.processor.info=\u5904\u7406\u7A0B\u5E8F{0}\u4E0E{1}\u5339\u914D\u5E76\u8FD4\u56DE{2}\u3002 +compiler.misc.x.print.rounds=\u5FAA\u73AF {0}:\n\t\u8F93\u5165\u6587\u4EF6: {1}\n\t\u6CE8\u91CA: {2}\n\t\u6700\u540E\u4E00\u4E2A\u5FAA\u73AF: {3} ##### ## The following string will appear before all messages keyed as: ## "compiler.note". -compiler.note.note=\u6ce8\u610f\uff1a +compiler.note.note=\u6CE8:\u0020 -compiler.note.deprecated.filename={0} \u4f7f\u7528\u6216\u8986\u76d6\u4e86\u5df2\u8fc7\u65f6\u7684 API\u3002 -compiler.note.deprecated.plural=\u67d0\u4e9b\u8f93\u5165\u6587\u4ef6\u4f7f\u7528\u6216\u8986\u76d6\u4e86\u5df2\u8fc7\u65f6\u7684 API\u3002 +compiler.note.deprecated.filename={0}\u4F7F\u7528\u6216\u8986\u76D6\u4E86\u5DF2\u8FC7\u65F6\u7684 API\u3002 +compiler.note.deprecated.plural=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u4F7F\u7528\u6216\u8986\u76D6\u4E86\u5DF2\u8FC7\u65F6\u7684 API\u3002 +# The following string may appear after one of the above deprecation +# messages. +compiler.note.deprecated.recompile=\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -Xlint:deprecation \u91CD\u65B0\u7F16\u8BD1\u3002 + +compiler.note.deprecated.filename.additional={0}\u8FD8\u4F7F\u7528\u6216\u8986\u76D6\u4E86\u5DF2\u8FC7\u65F6\u7684 API\u3002 +compiler.note.deprecated.plural.additional=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u8FD8\u4F7F\u7528\u6216\u8986\u76D6\u4E86\u5DF2\u8FC7\u65F6\u7684 API\u3002 + +compiler.note.unchecked.filename={0}\u4F7F\u7528\u4E86\u672A\u7ECF\u68C0\u67E5\u6216\u4E0D\u5B89\u5168\u7684\u64CD\u4F5C\u3002 +compiler.note.unchecked.plural=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u4F7F\u7528\u4E86\u672A\u7ECF\u68C0\u67E5\u6216\u4E0D\u5B89\u5168\u7684\u64CD\u4F5C\u3002 # The following string may appear after one of the above deprecation # messages. -compiler.note.deprecated.recompile=\u8981\u4e86\u89e3\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u4f7f\u7528 -Xlint:deprecation \u91cd\u65b0\u7f16\u8bd1\u3002 +compiler.note.unchecked.recompile=\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -Xlint:unchecked \u91CD\u65B0\u7F16\u8BD1\u3002 -compiler.note.deprecated.filename.additional={0} \u8fd8\u4f7f\u7528\u6216\u8986\u76d6\u4e86\u5df2\u8fc7\u65f6\u7684 API\u3002 -compiler.note.deprecated.plural.additional=\u67d0\u4e9b\u8f93\u5165\u6587\u4ef6\u8fd8\u4f7f\u7528\u6216\u8986\u76d6\u4e86\u5df2\u8fc7\u65f6\u7684 API\u3002 +compiler.note.unchecked.filename.additional={0}\u8FD8\u6709\u672A\u7ECF\u68C0\u67E5\u6216\u4E0D\u5B89\u5168\u7684\u64CD\u4F5C\u3002 +compiler.note.unchecked.plural.additional=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u8FD8\u4F7F\u7528\u4E86\u672A\u7ECF\u68C0\u67E5\u6216\u4E0D\u5B89\u5168\u7684\u64CD\u4F5C\u3002 -compiler.note.unchecked.filename={0} \u4f7f\u7528\u4e86\u672a\u7ecf\u68c0\u67e5\u6216\u4e0d\u5b89\u5168\u7684\u64cd\u4f5c\u3002 -compiler.note.unchecked.plural=\u67d0\u4e9b\u8f93\u5165\u6587\u4ef6\u4f7f\u7528\u4e86\u672a\u7ecf\u68c0\u67e5\u6216\u4e0d\u5b89\u5168\u7684\u64cd\u4f5c\u3002 -# The following string may appear after one of the above deprecation +compiler.note.varargs.filename={0}\u58F0\u660E\u4E86\u4E0D\u5B89\u5168\u7684 vararg \u65B9\u6CD5\u3002 +compiler.note.varargs.plural=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u58F0\u660E\u4E86\u4E0D\u5B89\u5168\u7684 vararg \u65B9\u6CD5\u3002 +# The following string may appear after one of the above unsafe varargs # messages. -compiler.note.unchecked.recompile=\u8981\u4e86\u89e3\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u4f7f\u7528 -Xlint:unchecked \u91cd\u65b0\u7f16\u8bd1\u3002 +compiler.note.varargs.recompile=\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -Xlint:varargs \u91CD\u65B0\u7F16\u8BD1\u3002 -compiler.note.unchecked.filename.additional={0} \u8fd8\u6709\u672a\u7ecf\u68c0\u67e5\u6216\u4e0d\u5b89\u5168\u7684\u64cd\u4f5c\u3002 -compiler.note.unchecked.plural.additional=\u67d0\u4e9b\u8f93\u5165\u6587\u4ef6\u8fd8\u4f7f\u7528\u4e86\u672a\u7ecf\u68c0\u67e5\u6216\u4e0d\u5b89\u5168\u7684\u64cd\u4f5c\u3002 +compiler.note.varargs.filename.additional={0}\u58F0\u660E\u4E86\u5176\u4ED6\u4E0D\u5B89\u5168\u7684 vararg \u65B9\u6CD5\u3002 +compiler.note.varargs.plural.additional=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u8FD8\u58F0\u660E\u4E86\u4E0D\u5B89\u5168\u7684 vararg \u65B9\u6CD5\u3002 -compiler.note.sunapi.filename={0} \u4f7f\u7528\u4e86\u5c06\u6765\u7248\u672c\u4e2d\u53ef\u80fd\u79fb\u9664\u7684 Sun \u4e13\u6709 API\u3002 -compiler.note.sunapi.plural=\u67d0\u4e9b\u8f93\u5165\u6587\u4ef6\u4f7f\u7528\u4e86\u5c06\u6765\u7248\u672c\u4e2d\u53ef\u80fd\u79fb\u9664\u7684 Sun \u4e13\u6709 API\u3002 +compiler.note.sunapi.filename={0}\u4F7F\u7528\u4E86\u53EF\u80FD\u4F1A\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u7684\u5185\u90E8\u4E13\u7528 API\u3002 +compiler.note.sunapi.plural=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u4F7F\u7528\u4E86\u53EF\u80FD\u4F1A\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u7684\u5185\u90E8\u4E13\u7528 API\u3002 # The following string may appear after one of the above sunapi messages. -compiler.note.sunapi.recompile=\u8981\u4e86\u89e3\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u4f7f\u7528 -Xlint:sunapi \u91cd\u65b0\u7f16\u8bd1\u3002 +compiler.note.sunapi.recompile=\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -Xlint:sunapi \u91CD\u65B0\u7F16\u8BD1\u3002 -compiler.note.sunapi.filename.additional={0} \u4f7f\u7528\u4e86\u5c06\u6765\u7248\u672c\u4e2d\u53ef\u80fd\u79fb\u9664\u7684\u9644\u52a0 Sun \u4e13\u6709 API\u3002 -compiler.note.sunapi.plural.additional=\u67d0\u4e9b\u8f93\u5165\u6587\u4ef6\u989d\u5916\u4f7f\u7528\u4e86\u5c06\u6765\u7248\u672c\u4e2d\u53ef\u80fd\u79fb\u9664\u7684 Sun \u4e13\u6709 API\u3002 +compiler.note.sunapi.filename.additional={0}\u4F7F\u7528\u4E86\u53EF\u80FD\u4F1A\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u7684\u5176\u4ED6\u5185\u90E8\u4E13\u7528 API\u3002 +compiler.note.sunapi.plural.additional=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u4F7F\u7528\u4E86\u53EF\u80FD\u4F1A\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u7684\u5176\u4ED6\u5185\u90E8\u4E13\u7528 API\u3002 # Notes related to annotation processing @@ -356,37 +373,39 @@ ##### -compiler.misc.count.error={0} \u9519\u8bef -compiler.misc.count.error.plural={0} \u9519\u8bef -compiler.misc.count.warn={0} \u8b66\u544a -compiler.misc.count.warn.plural={0} \u8b66\u544a +compiler.misc.count.error={0} \u4E2A\u9519\u8BEF +compiler.misc.count.error.plural={0} \u4E2A\u9519\u8BEF +compiler.misc.count.warn={0} \u4E2A\u8B66\u544A +compiler.misc.count.warn.plural={0} \u4E2A\u8B66\u544A + +compiler.misc.version.not.available=(\u7248\u672C\u4FE1\u606F\u4E0D\u53EF\u7528) ## extra output when using -verbose (JavaCompiler) -compiler.misc.verbose.checking.attribution=[\u6b63\u5728\u68c0\u67e5 {0}] -compiler.misc.verbose.parsing.done=[\u89e3\u6790\u5df2\u5b8c\u6210\u65f6\u95f4 {0}ms] -compiler.misc.verbose.parsing.started=[\u89e3\u6790\u5f00\u59cb\u65f6\u95f4 {0}] -compiler.misc.verbose.total=[\u603b\u65f6\u95f4 {0}ms] -compiler.misc.verbose.wrote.file=[\u5df2\u5199\u5165 {0}] +compiler.misc.verbose.checking.attribution=[\u6B63\u5728\u68C0\u67E5{0}] +compiler.misc.verbose.parsing.done=[\u8BED\u6CD5\u5206\u6790\u5DF2\u5B8C\u6210, \u7528\u65F6 {0} \u6BEB\u79D2] +compiler.misc.verbose.parsing.started=[\u8BED\u6CD5\u5206\u6790\u5F00\u59CB\u65F6\u95F4 {0}] +compiler.misc.verbose.total=[\u5171 {0} \u6BEB\u79D2] +compiler.misc.verbose.wrote.file=[\u5DF2\u5199\u5165{0}] ## extra output when using -verbose (Retro) -compiler.misc.verbose.retro=[\u6b63\u5728\u66f4\u65b0 {0}] -compiler.misc.verbose.retro.with=\u6b63\u5728\u4f7f\u7528 {1} \u66f4\u65b0 {0} -compiler.misc.verbose.retro.with.list=\u6b63\u5728\u4f7f\u7528\u7c7b\u578b\u53c2\u6570 {1}\u3001\u7236\u7c7b\u578b {2} \u548c\u63a5\u53e3 {3} \u66f4\u65b0 {0} +compiler.misc.verbose.retro=[\u6B63\u5728\u66F4\u65B0{0}] +compiler.misc.verbose.retro.with=\t\u6B63\u5728\u4F7F\u7528{1}\u66F4\u65B0{0} +compiler.misc.verbose.retro.with.list=\t\u6B63\u5728\u4F7F\u7528\u7C7B\u578B\u53C2\u6570{1}, \u8D85\u7C7B\u578B{2}\u548C\u63A5\u53E3{3}\u66F4\u65B0{0} ## extra output when using -verbose (code/ClassReader) -compiler.misc.verbose.loading=[\u6b63\u5728\u88c5\u5165 {0}] +compiler.misc.verbose.loading=[\u6B63\u5728\u52A0\u8F7D{0}] -compiler.misc.verbose.sourcepath=[\u6e90\u6587\u4ef6\u7684\u641c\u7d22\u8def\u5f84\uff1a {0}] +compiler.misc.verbose.sourcepath=[\u6E90\u6587\u4EF6\u7684\u641C\u7D22\u8DEF\u5F84: {0}] -compiler.misc.verbose.classpath=[\u7c7b\u6587\u4ef6\u7684\u641c\u7d22\u8def\u5f84\uff1a {0}] +compiler.misc.verbose.classpath=[\u7C7B\u6587\u4EF6\u7684\u641C\u7D22\u8DEF\u5F84: {0}] ## extra output when using -checkclassfile (code/ClassReader) -compiler.misc.ccf.found.later.version=\u7c7b\u6587\u4ef6\u7684\u7248\u672c\u9ad8\u4e8e\u9884\u671f\uff1a {0} -compiler.misc.ccf.unrecognized.attribute=\u65e0\u6cd5\u8bc6\u522b\u7684\u5c5e\u6027\uff1a {0} +compiler.misc.ccf.found.later.version=\u7C7B\u6587\u4EF6\u7684\u7248\u672C\u9AD8\u4E8E\u9884\u671F: {0} +compiler.misc.ccf.unrecognized.attribute=\u65E0\u6CD5\u8BC6\u522B\u7684\u5C5E\u6027: {0} ## extra output when using -prompt (util/Log) -compiler.misc.resume.abort=\u7ee7\u7eed(&R), \u653e\u5f03(&A)> +compiler.misc.resume.abort=\u7EE7\u7EED(R), \u653E\u5F03(A)> ##### @@ -395,109 +414,129 @@ ## ## All warning messages are preceded by the following string. -compiler.warn.warning=\u8b66\u544a\uff1a - -compiler.warn.constant.SVUID=[serial] \u5728\u7c7b {0} \u4e2d serialVersionUID \u5fc5\u987b\u4e3a\u5e38\u91cf +compiler.warn.warning=\u8B66\u544A:\u0020 -compiler.warn.dir.path.element.not.found=[path] \u9519\u8bef\u7684\u8def\u5f84\u5143\u7d20 "{0}"\uff1a\u65e0\u6b64\u76ee\u5f55 +## Warning messages may also include the following prefix to identify a +## lint option +compiler.warn.lintOption=[{0}]\u0020 -compiler.warn.finally.cannot.complete=[finally] \u65e0\u6cd5\u6b63\u5e38\u5b8c\u6210 finally \u5b50\u53e5 +compiler.warn.constant.SVUID=serialVersionUID \u5728\u7C7B{0}\u4E2D\u5FC5\u987B\u662F\u5E38\u91CF + +compiler.warn.dir.path.element.not.found=\u9519\u8BEF\u7684\u8DEF\u5F84\u5143\u7D20 "{0}": \u6CA1\u6709\u8FD9\u79CD\u76EE\u5F55 -compiler.warn.has.been.deprecated=[deprecation] {1} \u4e2d\u7684 {0} \u5df2\u8fc7\u65f6 +compiler.warn.finally.cannot.complete=finally \u5B50\u53E5\u65E0\u6CD5\u6B63\u5E38\u5B8C\u6210 -compiler.warn.sun.proprietary={0} \u662f\u3000Sun\u3000\u4e13\u6709 API\uff0c\u5728\u5c06\u6765\u7248\u672c\u4e2d\u53ef\u80fd\u88ab\u79fb\u9664 +compiler.warn.has.been.deprecated={1}\u4E2D\u7684{0}\u5DF2\u8FC7\u65F6 + +compiler.warn.sun.proprietary={0}\u662F\u5185\u90E8\u4E13\u7528 API, \u53EF\u80FD\u4F1A\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664 -compiler.warn.illegal.char.for.encoding=\u7f16\u7801 {0} \u7684\u4e0d\u53ef\u6620\u5c04\u5b57\u7b26 -compiler.warn.improper.SVUID=[serial] \u5728\u7c7b {0} \u4e2d\u5fc5\u987b\u5c06 serialVersionUID \u58f0\u660e\u4e3a\u9759\u6001\u6700\u7ec8\u7c7b\u578b +compiler.warn.illegal.char.for.encoding=\u7F16\u7801{0}\u7684\u4E0D\u53EF\u6620\u5C04\u5B57\u7B26 -compiler.warn.inexact.non-varargs.call=\u6700\u540e\u4e00\u4e2a\u53c2\u6570\u4f7f\u7528\u4e86\u4e0d\u51c6\u786e\u7684\u53d8\u91cf\u7c7b\u578b\u7684 varargs \u65b9\u6cd5\u7684\u975e varargs \u8c03\u7528\uff1b\n\u5bf9\u4e8e varargs \u8c03\u7528\uff0c\u5e94\u4f7f\u7528 {0}\n\u5bf9\u4e8e\u975e varargs \u8c03\u7528\uff0c\u5e94\u4f7f\u7528 {1}\uff0c\u8fd9\u6837\u4e5f\u53ef\u4ee5\u6291\u5236\u6b64\u8b66\u544a +compiler.warn.improper.SVUID=\u5FC5\u987B\u5728\u7C7B{0}\u4E2D\u5C06 serialVersionUID \u58F0\u660E\u4E3A static final + +compiler.warn.inexact.non-varargs.call=\u6700\u540E\u4E00\u4E2A\u53C2\u6570\u4F7F\u7528\u4E86\u4E0D\u51C6\u786E\u7684\u53D8\u91CF\u7C7B\u578B\u7684 varargs \u65B9\u6CD5\u7684\u975E varargs \u8C03\u7528; \n\u5BF9\u4E8E varargs \u8C03\u7528, \u5E94\u4F7F\u7528 {0}\n\u5BF9\u4E8E\u975E varargs \u8C03\u7528, \u5E94\u4F7F\u7528 {1}, \u8FD9\u6837\u4E5F\u53EF\u4EE5\u6291\u5236\u6B64\u8B66\u544A -compiler.warn.long.SVUID=[serial] \u5728\u7c7b {0} \u4e2d serialVersionUID \u5fc5\u987b\u4e3a\u957f\u6574\u578b +compiler.warn.long.SVUID=serialVersionUID \u5728\u7C7B{0}\u4E2D\u5FC5\u987B\u662F long \u7C7B\u578B -compiler.warn.missing.SVUID=[serial] \u53ef\u5e8f\u5217\u5316\u7c7b {0} \u4e2d\u6ca1\u6709 serialVersionUID \u7684\u5b9a\u4e49 +compiler.warn.missing.SVUID=\u53EF\u5E8F\u5217\u5316\u7C7B{0}\u6CA1\u6709 serialVersionUID \u7684\u5B9A\u4E49 -compiler.warn.override.varargs.missing={0}\uff1b\u88ab\u8986\u76d6\u7684\u65b9\u6cd5\u6ca1\u6709 "..." -compiler.warn.override.varargs.extra={0}\uff1b\u8986\u76d6\u7684\u65b9\u6cd5\u7f3a\u5c11 "..." -compiler.warn.override.bridge={0}\uff1b\u88ab\u8986\u76d6\u7684\u65b9\u6cd5\u4e3a bridge \u65b9\u6cd5 +compiler.warn.override.varargs.missing={0}; \u88AB\u8986\u76D6\u7684\u65B9\u6CD5\u6CA1\u6709 ''...'' +compiler.warn.override.varargs.extra={0}; \u8986\u76D6\u7684\u65B9\u6CD5\u7F3A\u5C11 ''...'' +compiler.warn.override.bridge={0}; \u88AB\u8986\u76D6\u7684\u65B9\u6CD5\u4E3A bridge \u65B9\u6CD5 + +compiler.warn.pkg-info.already.seen=\u5DF2\u627E\u5230\u7A0B\u5E8F\u5305{0}\u7684 package-info.java \u6587\u4EF6 + +compiler.warn.path.element.not.found=\u9519\u8BEF\u7684\u8DEF\u5F84\u5143\u7D20 "{0}": \u6CA1\u6709\u8FD9\u79CD\u6587\u4EF6\u6216\u76EE\u5F55 -compiler.warn.pkg-info.already.seen=[package-info] \u5df2\u627e\u5230\u8f6f\u4ef6\u5305 {0} \u7684 package-info.java \u6587\u4ef6 -compiler.warn.path.element.not.found=[path] \u9519\u8bef\u7684\u8def\u5f84\u5143\u7d20 "{0}"\uff1a\u65e0\u6b64\u6587\u4ef6\u6216\u76ee\u5f55 -compiler.warn.possible.fall-through.into.case=[fallthrough] \u53ef\u80fd\u65e0\u6cd5\u5b9e\u73b0 case +compiler.warn.possible.fall-through.into.case=\u53EF\u80FD\u65E0\u6CD5\u5B9E\u73B0 case + +compiler.warn.redundant.cast=\u51FA\u73B0\u5197\u4F59\u7684\u5230{0}\u7684\u8F6C\u6362 + +compiler.warn.position.overflow=\u884C {0} \u5904\u7684\u4F4D\u7F6E\u7F16\u7801\u6EA2\u51FA -compiler.warn.redundant.cast=[\u8f6c\u6362] \u5411 {0} \u8f6c\u6362\u51fa\u73b0\u5197\u4f59 +compiler.warn.big.major.version={0}: \u4E3B\u7248\u672C {1} \u6BD4 {2} \u65B0, \u6B64\u7F16\u8BD1\u5668\u652F\u6301\u6700\u65B0\u7684\u4E3B\u7248\u672C\u3002\n\u5EFA\u8BAE\u5347\u7EA7\u6B64\u7F16\u8BD1\u5668\u3002 -compiler.warn.position.overflow=\u884c {0} \u5904\u7684\u4f4d\u7f6e\u7f16\u7801\u6ea2\u51fa +compiler.warn.static.not.qualified.by.type=static {0}\u5E94\u7531\u7C7B\u578B\u540D\u79F0{1}\u800C\u4E0D\u662F\u8868\u8FBE\u5F0F\u9650\u5B9A -compiler.warn.big.major.version={0}: \u4e3b\u7248\u672c {1} \u6bd4 {2} \u65b0\uff0c\u6b64\u7f16\u8bd1\u5668\u652f\u6301\u6700\u65b0\u7684\u4e3b\u7248\u672c\u3002\n\u5efa\u8bae\u5347\u7ea7\u6b64\u7f16\u8bd1\u5668\u3002 +compiler.warn.source.no.bootclasspath=\u672A\u4E0E -source {0} \u4E00\u8D77\u8BBE\u7F6E\u5F15\u5BFC\u7C7B\u8DEF\u5F84 # Warnings related to annotation processing -compiler.warn.proc.package.does.not.exist=\u8f6f\u4ef6\u5305 {0} \u4e0d\u5b58\u5728 -compiler.warn.proc.file.reopening=\u5c1d\u8bd5\u591a\u6b21\u4e3a\u201c{0}\u201d\u521b\u5efa\u6587\u4ef6 +compiler.warn.proc.package.does.not.exist=\u7A0B\u5E8F\u5305{0}\u4E0D\u5B58\u5728 +compiler.warn.proc.file.reopening=\u5C1D\u8BD5\u591A\u6B21\u4E3A ''{0}'' \u521B\u5EFA\u6587\u4EF6 -compiler.warn.proc.type.already.exists=\u5177\u6709\u7c7b\u578b''{0}''\u7684\u6587\u4ef6\u5df2\u7ecf\u5b58\u5728\u4e8e\u6e90\u8def\u5f84\u6216\u7c7b\u8def\u5f84\u4e2d +compiler.warn.proc.type.already.exists=\u7C7B\u578B ''{0}'' \u7684\u6587\u4EF6\u5DF2\u7ECF\u5B58\u5728\u4E8E\u6E90\u8DEF\u5F84\u6216\u7C7B\u8DEF\u5F84\u4E2D -compiler.warn.proc.type.recreate=\u5c1d\u8bd5\u591a\u6b21\u521b\u5efa\u5177\u6709\u7c7b\u578b\u201c{0}\u201d\u7684\u6587\u4ef6 +compiler.warn.proc.type.recreate=\u5C1D\u8BD5\u591A\u6B21\u521B\u5EFA\u7C7B\u578B ''{0}'' \u7684\u6587\u4EF6 -compiler.warn.proc.illegal.file.name=\u65e0\u6cd5\u521b\u5efa\u5e26\u6709\u975e\u6cd5\u540d\u79f0\u201c{0}\u201d\u7684\u6587\u4ef6\u3002 +compiler.warn.proc.illegal.file.name=\u65E0\u6CD5\u521B\u5EFA\u5E26\u6709\u975E\u6CD5\u540D\u79F0 ''{0}'' \u7684\u6587\u4EF6\u3002 -compiler.warn.proc.file.create.last.round=\u5c06\u4e0d\u5bf9\u5728\u6700\u540e\u4e00\u4e2a\u5faa\u73af\u4e2d\u521b\u5efa\u7684\u7c7b\u578b\u4e3a\u201c{0}\u201d\u7684\u6587\u4ef6\u8fdb\u884c\u6ce8\u91ca\u5904\u7406\u3002 +compiler.warn.proc.suspicious.class.name=\u6B63\u5728\u4E3A\u540D\u79F0\u4EE5{1}\u7ED3\u5C3E\u7684\u7C7B\u578B\u521B\u5EFA\u6587\u4EF6: ''{0}'' -compiler.warn.proc.malformed.supported.string=\u5904\u7406\u7a0b\u5e8f\u201c{1}\u201d\u4e3a\u652f\u6301\u7684\u6ce8\u91ca\u7c7b\u578b\u8fd4\u56de\u4e0d\u89c4\u5219\u7684\u5b57\u7b26\u4e32\u201c{0}\u201d +compiler.warn.proc.file.create.last.round=\u5C06\u4E0D\u5BF9\u5728\u6700\u540E\u4E00\u4E2A\u5FAA\u73AF\u4E2D\u521B\u5EFA\u7684\u7C7B\u578B\u4E3A ''{0}'' \u7684\u6587\u4EF6\u8FDB\u884C\u6CE8\u91CA\u5904\u7406\u3002 -compiler.warn.proc.annotations.without.processors=\u6ca1\u6709\u5904\u7406\u7a0b\u5e8f\u8981\u4f7f\u7528\u4ee5\u4e0b\u4efb\u4f55\u6ce8\u91ca: {0} +compiler.warn.proc.malformed.supported.string=\u5904\u7406\u7A0B\u5E8F ''{1}'' \u4E3A\u652F\u6301\u7684\u6CE8\u91CA\u7C7B\u578B\u8FD4\u56DE\u683C\u5F0F\u9519\u8BEF\u7684\u5B57\u7B26\u4E32 ''{0}'' -compiler.warn.proc.processor.incompatible.source.version=\u6765\u81ea\u6ce8\u91ca\u5904\u7406\u5668"{1}"\u7684\u53d7\u652f\u6301 source \u7248\u672c"{0}"\u4f4e\u4e8e -source"{2}" +compiler.warn.proc.annotations.without.processors=\u6CA1\u6709\u5904\u7406\u7A0B\u5E8F\u8981\u4F7F\u7528\u4EE5\u4E0B\u4EFB\u4F55\u6CE8\u91CA: {0} -compiler.warn.proc.proc-only.requested.no.procs=\u5728\u672a\u8bf7\u6c42\u7f16\u8bd1\u7684\u60c5\u51b5\u4e0b\u8fdb\u884c\u6ce8\u91ca\u5904\u7406\uff0c\u4f46\u672a\u627e\u5230\u5904\u7406\u7a0b\u5e8f\u3002 +compiler.warn.proc.processor.incompatible.source.version=\u6765\u81EA\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F ''{1}'' \u7684\u53D7\u652F\u6301 source \u7248\u672C ''{0}'' \u4F4E\u4E8E -source ''{2}'' + +compiler.warn.proc.proc-only.requested.no.procs=\u5728\u672A\u8BF7\u6C42\u7F16\u8BD1\u7684\u60C5\u51B5\u4E0B\u8FDB\u884C\u6CE8\u91CA\u5904\u7406, \u4F46\u627E\u4E0D\u5230\u5904\u7406\u7A0B\u5E8F\u3002 -compiler.warn.proc.use.implicit=\u6ce8\u91ca\u5904\u7406\u4e0d\u9002\u7528\u4e8e\u9690\u5f0f\u7f16\u8bd1\u7684\u6587\u4ef6\u3002\n\u4f7f\u7528 -implicit \u6307\u5b9a\u7528\u4e8e\u9690\u5f0f\u7f16\u8bd1\u7684\u7b56\u7565\u3002 +compiler.warn.proc.use.implicit=\u6CE8\u91CA\u5904\u7406\u4E0D\u9002\u7528\u4E8E\u9690\u5F0F\u7F16\u8BD1\u7684\u6587\u4EF6\u3002\n\u4F7F\u7528 -implicit \u6307\u5B9A\u7528\u4E8E\u9690\u5F0F\u7F16\u8BD1\u7684\u7B56\u7565\u3002 -compiler.warn.proc.use.proc.or.implicit=\u6ce8\u91ca\u5904\u7406\u4e0d\u9002\u7528\u4e8e\u9690\u5f0f\u7f16\u8bd1\u7684\u6587\u4ef6\u3002\n\u4f7f\u7528 -proc:none \u7981\u7528\u6ce8\u91ca\u5904\u7406\u6216\u4f7f\u7528 -implicit \u6307\u5b9a\u7528\u4e8e\u9690\u5f0f\u7f16\u8bd1\u7684\u7b56\u7565\u3002 +compiler.warn.proc.use.proc.or.implicit=\u6CE8\u91CA\u5904\u7406\u4E0D\u9002\u7528\u4E8E\u9690\u5F0F\u7F16\u8BD1\u7684\u6587\u4EF6\u3002\n\u4F7F\u7528 -proc:none \u7981\u7528\u6CE8\u91CA\u5904\u7406\u6216\u4F7F\u7528 -implicit \u6307\u5B9A\u7528\u4E8E\u9690\u5F0F\u7F16\u8BD1\u7684\u7B56\u7565\u3002 # Print a client-generated warning; assumed to be localized, no translation required compiler.warn.proc.messager={0} -compiler.warn.proc.unclosed.type.files=\u7c7b\u578b\u4e3a\u201c{0}\u201d\u7684\u6587\u4ef6\u672a\u5173\u95ed\uff1b\u5c06\u4e0d\u9488\u5bf9\u8fd9\u4e9b\u7c7b\u578b\u8fdb\u884c\u6ce8\u91ca\u5904\u7406 +compiler.warn.proc.unclosed.type.files=\u7C7B\u578B ''{0}'' \u7684\u6587\u4EF6\u672A\u5173\u95ED; \u5C06\u4E0D\u9488\u5BF9\u8FD9\u4E9B\u7C7B\u578B\u8FDB\u884C\u6CE8\u91CA\u5904\u7406 -compiler.warn.proc.unmatched.processor.options=\u4ee5\u4e0b\u9009\u9879\u672a\u88ab\u4efb\u4f55\u5904\u7406\u5668\u8bc6\u522b\uff1a"{0}" +compiler.warn.proc.unmatched.processor.options=\u4EE5\u4E0B\u9009\u9879\u672A\u88AB\u4EFB\u4F55\u5904\u7406\u7A0B\u5E8F\u8BC6\u522B: ''{0}'' -compiler.warn.unchecked.assign=[unchecked] \u672a\u7ecf\u68c0\u67e5\u7684\u6307\u5b9a\uff1a\u5c06 {0} \u6307\u5b9a\u7ed9 {1} -compiler.warn.unchecked.assign.to.var=[unchecked] \u5bf9\u4f5c\u4e3a\u666e\u901a\u7c7b\u578b {1} \u7684\u6210\u5458\u7684\u53d8\u91cf {0} \u7684\u6307\u5b9a\u672a\u7ecf\u68c0\u67e5 -compiler.warn.unchecked.call.mbr.of.raw.type=[unchecked] \u5bf9\u4f5c\u4e3a\u666e\u901a\u7c7b\u578b {1} \u7684\u6210\u5458\u7684 {0} \u7684\u8c03\u7528\u672a\u7ecf\u68c0\u67e5 -compiler.warn.unchecked.cast.to.type=[unchecked] \u5bf9\u7c7b\u578b {0} \u7684\u4f7f\u7528\u672a\u7ecf\u68c0\u67e5 -compiler.warn.unchecked.meth.invocation.applied=[unchecked] \u672a\u7ecf\u68c0\u67e5\u7684\u65b9\u6cd5\u8c03\u7528: {4} {5}\u3000\u4e2d\u7684\u3000{0} {1}\u3000\u4f7f\u7528\u4e8e\u7ed9\u5b9a\u7684\u7c7b\u578b\n\u9700\u8981: {2}\n\u53d1\u73b0: {3} +compiler.warn.try.explicit.close.call=\u5728\u53EF\u81EA\u52A8\u7ED3\u675F\u7684\u8D44\u6E90\u4E0A\u663E\u5F0F\u8C03\u7528 close() +compiler.warn.try.resource.not.referenced=\u4E0D\u80FD\u5728\u76F8\u5E94\u7684 try \u8BED\u53E5\u7684\u6B63\u6587\u4E2D\u5F15\u7528\u53EF\u81EA\u52A8\u7ED3\u675F\u7684\u8D44\u6E90{0} +compiler.warn.unchecked.assign=\u672A\u7ECF\u68C0\u67E5\u7684\u5206\u914D: \u5C06{0}\u5206\u914D\u7ED9{1} +compiler.warn.unchecked.assign.to.var=\u5BF9\u4F5C\u4E3A\u539F\u59CB\u7C7B\u578B{1}\u7684\u6210\u5458\u7684\u53D8\u91CF{0}\u7684\u5206\u914D\u672A\u7ECF\u8FC7\u68C0\u67E5 +compiler.warn.unchecked.call.mbr.of.raw.type=\u5BF9\u4F5C\u4E3A\u539F\u59CB\u7C7B\u578B{1}\u7684\u6210\u5458\u7684{0}\u7684\u8C03\u7528\u672A\u7ECF\u8FC7\u68C0\u67E5 +compiler.warn.unchecked.cast.to.type=\u5411\u7C7B\u578B{0}\u7684\u8F6C\u6362\u672A\u7ECF\u8FC7\u68C0\u67E5 +compiler.warn.unchecked.meth.invocation.applied=\u65B9\u6CD5\u8C03\u7528\u672A\u7ECF\u8FC7\u68C0\u67E5: \u5C06{4} {5}\u4E2D\u7684{0} {1}\u5E94\u7528\u5230\u7ED9\u5B9A\u7684\u7C7B\u578B\n\u9700\u8981: {2}\n\u627E\u5230: {3} -compiler.warn.unchecked.generic.array.creation=[unchecked] \u7c7b\u578b {0} \u7684 varargs \u53c2\u6570\u7684\u6cdb\u578b\u6570\u7ec4\u521b\u5efa\u672a\u7ecf\u68c0\u67e5 +compiler.warn.unchecked.generic.array.creation=\u5BF9\u4E8E\u7C7B\u578B\u4E3A{0}\u7684 varargs \u53C2\u6570, \u6CDB\u578B\u6570\u7EC4\u521B\u5EFA\u672A\u7ECF\u8FC7\u68C0\u67E5 -compiler.warn.missing.deprecated.annotation=[dep-ann] \u672a\u4f7f\u7528 @Deprecated \u5bf9\u5df2\u8fc7\u65f6\u7684\u9879\u76ee\u8fdb\u884c\u6ce8\u91ca +compiler.warn.varargs.non.reifiable.type=\u53C2\u6570\u5316 vararg \u7C7B\u578B{0}\u7684\u5806\u53EF\u80FD\u5DF2\u53D7\u6C61\u67D3 -compiler.warn.invalid.archive.file=[path] \u4ee5\u4e0b\u8def\u5f84\u4e2d\u5b58\u5728\u610f\u5916\u7684\u6587\u4ef6: {0} +compiler.warn.missing.deprecated.annotation=\u672A\u4F7F\u7528 @Deprecated \u5BF9\u5DF2\u8FC7\u65F6\u7684\u9879\u76EE\u8FDB\u884C\u6CE8\u91CA + +compiler.warn.invalid.archive.file=\u4EE5\u4E0B\u8DEF\u5F84\u4E2D\u5B58\u5728\u610F\u5916\u7684\u6587\u4EF6: {0} -compiler.warn.unexpected.archive.file=[path] \u4ee5\u4e0b\u5f52\u6863\u6587\u4ef6\u5b58\u5728\u610f\u5916\u7684\u6269\u5c55\u540d: {0} +compiler.warn.unexpected.archive.file=\u4EE5\u4E0B\u6863\u6848\u6587\u4EF6\u5B58\u5728\u610F\u5916\u7684\u6269\u5C55\u540D: {0} -compiler.warn.div.zero=[divzero] \u9664\u6570\u4e3a\u96f6 +compiler.warn.div.zero=\u9664\u6570\u4E3A\u96F6 -compiler.warn.empty.if=[\u7a7a] if \u4e4b\u540e\u6ca1\u6709\u8bed\u53e5 +compiler.warn.empty.if=if \u4E4B\u540E\u6CA1\u6709\u8BED\u53E5 -compiler.warn.annotation.method.not.found=\u65e0\u6cd5\u627e\u5230\u7c7b\u578b\u4e3a\u201c{0}\u201d\u7684\u6ce8\u91ca\u65b9\u6cd5\u201c{1}()\u201d +compiler.warn.annotation.method.not.found=\u65E0\u6CD5\u627E\u5230\u7C7B\u578B ''{0}'' \u7684\u6CE8\u91CA\u65B9\u6CD5 ''{1}()'' -compiler.warn.annotation.method.not.found.reason=\u65e0\u6cd5\u627e\u5230\u7c7b\u578b\u4e3a\u201c{0}\u201d\u7684\u6ce8\u91ca\u65b9\u6cd5\u201c{1}()\u201d: {2} +compiler.warn.annotation.method.not.found.reason=\u65E0\u6CD5\u627E\u5230\u7C7B\u578B ''{0}'' \u7684\u6CE8\u91CA\u65B9\u6CD5 ''{1}()'': {2} -compiler.warn.raw.class.use=[rawtypes] \u53d1\u73b0\u539f\u578b(raw type): {0}\n\u6cdb\u578b\u7c7b\u7f3a\u5c11\u7c7b\u578b\u53c2\u6570 {1} +compiler.warn.raw.class.use=\u627E\u5230\u539F\u59CB\u7C7B\u578B: {0}\n\u7F3A\u5C11\u6CDB\u578B\u7C7B{1}\u7684\u7C7B\u578B\u53C2\u6570 + +compiler.warn.diamond.redundant.args=\u65B0\u8868\u8FBE\u5F0F\u4E2D\u5B58\u5728\u5197\u4F59\u7C7B\u578B\u53C2\u6570 (\u6539\u7528 diamond \u8FD0\u7B97\u7B26)\u3002 +compiler.warn.diamond.redundant.args.1=\u65B0\u8868\u8FBE\u5F0F\u4E2D\u5B58\u5728\u5197\u4F59\u7C7B\u578B\u53C2\u6570 (\u6539\u7528 diamond \u8FD0\u7B97\u7B26)\u3002\n\u663E\u5F0F: {0}\n\u63A8\u65AD: {1} ##### ## The following are tokens which are non-terminals in the language. They should ## be named as JLS3 calls them when translated to the appropriate language. -compiler.misc.token.identifier=<\u6807\u8bc6\u7b26> -compiler.misc.token.character=<\u5b57\u7b26> -compiler.misc.token.string=<\u5b57\u7b26\u4e32> -compiler.misc.token.integer=<\u6574\u578b> -compiler.misc.token.long-integer=<\u957f\u6574\u578b> -compiler.misc.token.float=<\u6d6e\u70b9\u578b> -compiler.misc.token.double=<\u53cc\u7cbe\u5ea6\u578b> -compiler.misc.token.bad-symbol=<\u9519\u8bef\u7b26\u53f7> -compiler.misc.token.end-of-input=<\u8f93\u5165\u7ed3\u675f> +compiler.misc.token.identifier=<\u6807\u8BC6\u7B26> +compiler.misc.token.character=<\u5B57\u7B26> +compiler.misc.token.string=<\u5B57\u7B26\u4E32> +compiler.misc.token.integer=<\u6574\u578B> +compiler.misc.token.long-integer=<\u957F\u6574\u578B> +compiler.misc.token.float=<\u6D6E\u70B9\u578B> +compiler.misc.token.double=<\u53CC\u7CBE\u5EA6\u578B> +compiler.misc.token.bad-symbol=<\u9519\u8BEF\u7B26\u53F7> +compiler.misc.token.end-of-input=<\u8F93\u5165\u7ED3\u675F> ## The argument to the following string will always be one of the following: ## 1. one of the above non-terminals @@ -508,59 +547,59 @@ ## 6. an operator (JLS3.12) ## ## This is the only place these tokens will be used. -compiler.err.expected=\u9700\u8981 {0} -compiler.err.expected2=\u9700\u8981\u4e3a {0} \u6216 {1} -compiler.err.expected3=\u9700\u8981\u4e3a {0}\u3001{1} \u6216 {2} +compiler.err.expected=\u9700\u8981{0} +compiler.err.expected2=\u9700\u8981{0}\u6216{1} +compiler.err.expected3=\u9700\u8981{0}, {1}\u6216{2} -compiler.err.premature.eof=\u8fdb\u884c\u8bed\u6cd5\u89e3\u6790\u65f6\u5df2\u5230\u8fbe\u6587\u4ef6\u7ed3\u5c3e +compiler.err.premature.eof=\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u65F6\u5DF2\u5230\u8FBE\u6587\u4EF6\u7ED3\u5C3E ## The following are related in form, but do not easily fit the above paradigm. -compiler.err.dot.class.expected=\u9700\u8981 ".class" +compiler.err.dot.class.expected=\u9700\u8981 ''.class'' ## The argument to this string will always be either 'case' or 'default'. -compiler.err.orphaned=\u5355\u4e2a {0}\uff1a +compiler.err.orphaned=\u5B64\u7ACB\u7684{0} -compiler.misc.anonymous.class=<\u533f\u540d {0}> +compiler.misc.anonymous.class=<\u533F\u540D{0}> -compiler.misc.type.captureof=\u6355\u83b7 {1} \u4e2d\u7684 #{0} +compiler.misc.type.captureof=capture#{0}, \u5171 {1} -compiler.misc.type.captureof.1=\u6355\u83b7 #{0} +compiler.misc.type.captureof.1=capture#{0} -compiler.misc.type.none=<none> +compiler.misc.type.none=<\u65E0> -compiler.misc.unnamed.package=\u672a\u547d\u540d\u5305 +compiler.misc.unnamed.package=\u672A\u547D\u540D\u7A0B\u5E8F\u5305 ##### -compiler.err.cant.access=\u65e0\u6cd5\u8bbf\u95ee {0}\n{1} +compiler.err.cant.access=\u65E0\u6CD5\u8BBF\u95EE{0}\n{1} -compiler.misc.bad.class.file.header=\u9519\u8bef\u7684\u7c7b\u6587\u4ef6\uff1a {0}\n{1}\n\u8bf7\u5220\u9664\u8be5\u6587\u4ef6\u6216\u786e\u4fdd\u8be5\u6587\u4ef6\u4f4d\u4e8e\u6b63\u786e\u7684\u7c7b\u8def\u5f84\u5b50\u76ee\u5f55\u4e2d\u3002 -compiler.misc.bad.source.file.header=\u9519\u8bef\u7684\u6e90\u6587\u4ef6\uff1a\u3000{0}\n{1}\n\u8bf7\u5220\u9664\u8be5\u6587\u4ef6\u6216\u786e\u4fdd\u8be5\u6587\u4ef6\u4f4d\u4e8e\u6b63\u786e\u7684\u6e90\u6587\u4ef6\u8def\u5f84\u5b50\u76ee\u5f55\u4e2d\u3002 +compiler.misc.bad.class.file.header=\u9519\u8BEF\u7684\u7C7B\u6587\u4EF6: {0}\n{1}\n\u8BF7\u5220\u9664\u8BE5\u6587\u4EF6\u6216\u786E\u4FDD\u8BE5\u6587\u4EF6\u4F4D\u4E8E\u6B63\u786E\u7684\u7C7B\u8DEF\u5F84\u5B50\u76EE\u5F55\u4E2D\u3002 +compiler.misc.bad.source.file.header=\u9519\u8BEF\u7684\u6E90\u6587\u4EF6: {0}\n{1}\n\u8BF7\u5220\u9664\u8BE5\u6587\u4EF6\u6216\u786E\u4FDD\u8BE5\u6587\u4EF6\u4F4D\u4E8E\u6B63\u786E\u7684\u6E90\u8DEF\u5F84\u5B50\u76EE\u5F55\u4E2D\u3002 ## The following are all possible strings for the second argument ({1}) of the ## above strings. -compiler.misc.bad.class.signature=\u9519\u8bef\u7684\u7c7b\u7b7e\u540d\uff1a {0} -compiler.misc.bad.enclosing.method=\u95ed\u5408\u65b9\u6cd5\u5c5e\u6027 {0} \u65f6\u51fa\u9519 -compiler.misc.bad.runtime.invisible.param.annotations=RuntimeInvisibleParameterAnnotations \u5c5e\u6027\u9519\u8bef: {0} -compiler.misc.bad.const.pool.tag=\u9519\u8bef\u7684\u5e38\u91cf\u6c60\u6807\u8bb0\uff1a {0} -compiler.misc.bad.const.pool.tag.at=\u9519\u8bef\u7684\u5e38\u91cf\u6c60\u6807\u8bb0\uff1a{0}\uff0c\u4f4d\u4e8e {1} -compiler.misc.bad.signature=\u9519\u8bef\u7684\u7b7e\u540d\uff1a {0} -compiler.misc.bad.type.annotation.value=\u9519\u8bef\u7c7b\u578b\u6ce8\u91ca\u76ee\u6807\u7c7b\u578b\u503c\uff1a{0} -compiler.misc.class.file.wrong.class=\u7c7b\u6587\u4ef6\u5305\u542b\u9519\u8bef\u7684\u7c7b\uff1a {0} -compiler.misc.class.file.not.found=\u672a\u627e\u5230 {0} \u7684\u7c7b\u6587\u4ef6 -compiler.misc.file.doesnt.contain.class=\u6587\u4ef6\u4e0d\u5305\u542b\u7c7b {0} -compiler.misc.file.does.not.contain.package=\u6587\u4ef6\u4e0d\u5305\u542b\u8f6f\u4ef6\u5305 {0} -compiler.misc.illegal.start.of.class.file=\u975e\u6cd5\u7684\u7c7b\u6587\u4ef6\u5f00\u59cb -compiler.misc.unable.to.access.file=\u65e0\u6cd5\u8bbf\u95ee\u6587\u4ef6\uff1a {0} -compiler.misc.unicode.str.not.supported=\u4e0d\u652f\u6301\u7c7b\u6587\u4ef6\u4e2d\u7684 Unicode \u5b57\u7b26\u4e32 -compiler.misc.undecl.type.var=\u672a\u58f0\u660e\u7684\u7c7b\u578b\u53d8\u91cf\uff1a {0} -compiler.misc.wrong.version=\u7c7b\u6587\u4ef6\u5177\u6709\u9519\u8bef\u7684\u7248\u672c {0}.{1}\uff0c\u5e94\u4e3a {2}.{3} +compiler.misc.bad.class.signature=\u9519\u8BEF\u7684\u7C7B\u7B7E\u540D: {0} +compiler.misc.bad.enclosing.method=\u9519\u8BEF\u7684\u5C01\u95ED\u65B9\u6CD5\u5C5E\u6027: {0} +compiler.misc.bad.runtime.invisible.param.annotations=\u9519\u8BEF\u7684 RuntimeInvisibleParameterAnnotations \u5C5E\u6027: {0} +compiler.misc.bad.const.pool.tag=\u9519\u8BEF\u7684\u5E38\u91CF\u6C60\u6807\u8BB0: {0} +compiler.misc.bad.const.pool.tag.at=\u9519\u8BEF\u7684\u5E38\u91CF\u6C60\u6807\u8BB0: {0}, \u4F4D\u4E8E{1} +compiler.misc.bad.signature=\u9519\u8BEF\u7684\u7B7E\u540D: {0} +compiler.misc.bad.type.annotation.value=\u9519\u8BEF\u7684\u7C7B\u578B\u6CE8\u91CA\u76EE\u6807\u7C7B\u578B\u503C: {0} +compiler.misc.class.file.wrong.class=\u7C7B\u6587\u4EF6\u5305\u542B\u9519\u8BEF\u7684\u7C7B: {0} +compiler.misc.class.file.not.found=\u627E\u4E0D\u5230{0}\u7684\u7C7B\u6587\u4EF6 +compiler.misc.file.doesnt.contain.class=\u6587\u4EF6\u4E0D\u5305\u542B\u7C7B{0} +compiler.misc.file.does.not.contain.package=\u6587\u4EF6\u4E0D\u5305\u542B\u7A0B\u5E8F\u5305{0} +compiler.misc.illegal.start.of.class.file=\u975E\u6CD5\u7684\u7C7B\u6587\u4EF6\u5F00\u59CB +compiler.misc.unable.to.access.file=\u65E0\u6CD5\u8BBF\u95EE\u6587\u4EF6: {0} +compiler.misc.unicode.str.not.supported=\u4E0D\u652F\u6301\u7C7B\u6587\u4EF6\u4E2D\u7684 Unicode \u5B57\u7B26\u4E32 +compiler.misc.undecl.type.var=\u672A\u58F0\u660E\u7684\u7C7B\u578B\u53D8\u91CF: {0} +compiler.misc.wrong.version=\u7C7B\u6587\u4EF6\u5177\u6709\u9519\u8BEF\u7684\u7248\u672C {0}.{1}, \u5E94\u4E3A {2}.{3} ##### -compiler.err.not.within.bounds=\u7c7b\u578b\u53c2\u6570 {0} \u4e0d\u5728\u5176\u9650\u5236\u8303\u56f4\u4e4b\u5185 +compiler.err.not.within.bounds=\u7C7B\u578B\u53C2\u6570{0}\u4E0D\u5728\u5176\u9650\u5236\u8303\u56F4\u4E4B\u5185 -compiler.err.not.within.bounds.explain=\u7c7b\u578b\u53c2\u6570 {0} \u4e0d\u5728\u5176\u9650\u5236\u8303\u56f4\u4e4b\u5185\uff1b{1} +compiler.err.not.within.bounds.explain=\u7C7B\u578B\u53C2\u6570{0}\u4E0D\u5728\u5176\u9650\u5236\u8303\u56F4\u4E4B\u5185; {1} ## The following are all possible strings for the second argument ({1}) of the ## above string. @@ -569,89 +608,97 @@ ##### -compiler.err.prob.found.req={0}\n\u8981\u6c42\uff1a{2}\n\u53d1\u73b0\uff1a {1} -compiler.warn.prob.found.req={0}\n\u8981\u6c42\uff1a{2}\n\u53d1\u73b0\uff1a {1} -compiler.err.prob.found.req.1={0} {3}\n\u8981\u6c42\uff1a{2}\n\u53d1\u73b0\uff1a {1} +compiler.err.prob.found.req={0}\n\u9700\u8981: {2}\n\u627E\u5230: {1} +compiler.warn.prob.found.req={0}\n\u9700\u8981: {2}\n\u627E\u5230: {1} +compiler.err.prob.found.req.1={0} {3}\n\u9700\u8981: {2}\n\u627E\u5230: {1} ## The following are all possible strings for the first argument ({0}) of the ## above strings. -compiler.misc.incompatible.types=\u4e0d\u517c\u5bb9\u7684\u7c7b\u578b -compiler.misc.incompatible.types.1=\u4e0d\u517c\u5bb9\u7684\u7c7b\u578b\uff1b{0} -compiler.misc.inconvertible.types=\u4e0d\u53ef\u8f6c\u6362\u7684\u7c7b\u578b -compiler.misc.possible.loss.of.precision=\u53ef\u80fd\u635f\u5931\u7cbe\u5ea6 +compiler.misc.incompatible.types=\u4E0D\u517C\u5BB9\u7684\u7C7B\u578B +compiler.misc.incompatible.types.1=\u4E0D\u517C\u5BB9\u7684\u7C7B\u578B; {0} +compiler.misc.inconvertible.types=\u4E0D\u53EF\u8F6C\u6362\u7684\u7C7B\u578B +compiler.misc.possible.loss.of.precision=\u53EF\u80FD\u635F\u5931\u7CBE\u5EA6 -compiler.misc.unchecked.assign=[unchecked] \u672a\u7ecf\u68c0\u67e5\u7684\u8f6c\u6362 +compiler.misc.unchecked.assign=\u672A\u7ECF\u68C0\u67E5\u7684\u8F6C\u6362 # compiler.misc.storecheck=\ -# [unchecked] assignment might cause later store checks to fail +# assignment might cause later store checks to fail # compiler.misc.unchecked=\ -# [unchecked] assigned array cannot dynamically check its stores -compiler.misc.unchecked.cast.to.type=[unchecked] \u672a\u7ecf\u68c0\u67e5\u7684\u7c7b\u578b\u4f7f\u7528 +# assigned array cannot dynamically check its stores +compiler.misc.unchecked.cast.to.type=\u672A\u7ECF\u68C0\u67E5\u7684\u8F6C\u6362 -compiler.misc.assignment.from.super-bound=\u4ece super-bound \u7c7b\u578b {0} \u6307\u5b9a -compiler.misc.assignment.to.extends-bound=\u5bf9 extends-bound \u7c7b\u578b {0} \u8fdb\u884c\u6307\u5b9a +compiler.misc.assignment.from.super-bound=\u4ECE super-bound \u7C7B\u578B{0}\u8FDB\u884C\u5206\u914D +compiler.misc.assignment.to.extends-bound=\u5230 extends-bound \u7C7B\u578B{0}\u7684\u5206\u914D # compiler.err.star.expected=\ # ''*'' expected # compiler.err.no.elem.type=\ # \[\*\] cannot have a type +compiler.misc.try.not.applicable.to.type=try-with-resources \u4E0D\u9002\u7528\u4E8E\u53D8\u91CF\u7C7B\u578B + ##### -compiler.err.type.found.req=\u4ee5\u5916\u7c7b\u578b\n\u8981\u6c42\uff1a {1}\n\u53d1\u73b0\uff1a {0} +compiler.err.type.found.req=\u610F\u5916\u7684\u7C7B\u578B\n\u9700\u8981: {1}\n\u627E\u5230: {0} ## The following are all possible strings for the first argument ({0}) of the ## above string. -compiler.misc.type.req.class=\u7c7b -compiler.misc.type.req.class.array=\u7c7b\u6216\u6570\u7ec4 -compiler.misc.type.req.ref=\u5f15\u7528 -compiler.misc.type.req.exact=\u4e0d\u5e26\u9650\u5236\u8303\u56f4\u7684\u7c7b\u6216\u63a5\u53e3 -compiler.misc.type.parameter=\u7c7b\u578b\u53c2\u6570 {0} +compiler.misc.type.req.class=\u7C7B +compiler.misc.type.req.class.array=\u7C7B\u6216\u6570\u7EC4 +compiler.misc.type.req.ref=\u5F15\u7528 +compiler.misc.type.req.exact=\u4E0D\u5E26\u9650\u5236\u8303\u56F4\u7684\u7C7B\u6216\u63A5\u53E3 +compiler.misc.type.parameter=\u7C7B\u578B\u53C2\u6570{0} ##### ## The following are all possible strings for the last argument of all those ## diagnostics whose key ends in ".1" -compiler.misc.undetermined.type=\u672a\u786e\u5b9a\u7684\u7c7b\u578b -ncompiler.misc.type.variable.has.undetermined.type=\u7c7b\u578b\u53d8\u91cf {0} \u5e26\u6709\u672a\u786e\u5b9a\u7684\u7c7b\u578b -compiler.misc.no.unique.maximal.instance.exists=\u5bf9\u4e8e\u4e0a\u9650\u4e3a {1} \u7684\u7c7b\u578b\u53d8\u91cf {0}\uff0c\u4e0d\u5b58\u5728\u552f\u4e00\u6700\u5927\u5b9e\u4f8b -compiler.misc.no.unique.minimal.instance.exists=\u5bf9\u4e8e\u4e0b\u9650\u4e3a {1} \u7684\u7c7b\u578b\u53d8\u91cf {0}\uff0c\u4e0d\u5b58\u5728\u552f\u4e00\u6700\u5c0f\u5b9e\u4f8b -compiler.misc.no.conforming.instance.exists=\u4e0d\u5b58\u5728\u7c7b\u578b\u53d8\u91cf {0} \u7684\u5b9e\u4f8b\uff0c\u4ee5\u4f7f {1} \u4e0e {2} \u4e00\u81f4 -compiler.misc.no.conforming.assignment.exists=\u4e0d\u5b58\u5728\u7c7b\u578b\u53d8\u91cf {0} \u7684\u5b9e\u4f8b\uff0c\u4ee5\u4f7f\u53c2\u6570\u7c7b\u578b {1} \u4e0e\u5f62\u5f0f\u53c2\u6570\u7c7b\u578b {2} \u4e00\u81f4 -compiler.misc.arg.length.mismatch=\u65e0\u6cd5\u4ece\u53c2\u6570\u8fdb\u884c\u5b9e\u4f8b\u5316\uff0c\u56e0\u4e3a\u5b9e\u9645\u53c2\u6570\u5217\u8868\u548c\u5f62\u5f0f\u53c2\u6570\u5217\u8868\u957f\u5ea6\u4e0d\u540c -compiler.misc.inferred.do.not.conform.to.bounds=\u63a8\u65ad\u7c7b\u578b\u4e0d\u7b26\u5408\u58f0\u660e\u7684\u9650\u5236\u8303\u56f4\n\u63a8\u65ad\uff1a{0}\n\u9650\u5236\u8303\u56f4\uff1a{1} -compiler.misc.inferred.do.not.conform.to.params=\u5b9e\u9645\u53c2\u6570\u4e0d\u7b26\u5408\u63a8\u65ad\u5f62\u5f0f\u53c2\u6570\n\u9700\u8981\uff1a{0}\n\u627e\u5230: {1} +compiler.misc.undetermined.type=\u672A\u786E\u5B9A\u7684\u7C7B\u578B +compiler.misc.type.variable.has.undetermined.type=\u7C7B\u578B\u53D8\u91CF{0}\u5E26\u6709\u672A\u786E\u5B9A\u7684\u7C7B\u578B +compiler.misc.no.unique.maximal.instance.exists=\u5BF9\u4E8E\u4E0A\u9650\u4E3A{1}\u7684\u7C7B\u578B\u53D8\u91CF{0}, \u4E0D\u5B58\u5728\u552F\u4E00\u6700\u5927\u5B9E\u4F8B +compiler.misc.no.unique.minimal.instance.exists=\u5BF9\u4E8E\u4E0B\u9650\u4E3A{1}\u7684\u7C7B\u578B\u53D8\u91CF{0}, \u4E0D\u5B58\u5728\u552F\u4E00\u6700\u5C0F\u5B9E\u4F8B +compiler.misc.infer.no.conforming.instance.exists=\u4E0D\u5B58\u5728\u7C7B\u578B\u53D8\u91CF{0}\u7684\u5B9E\u4F8B, \u4EE5\u4F7F{1}\u4E0E{2}\u4E00\u81F4 +compiler.misc.infer.no.conforming.assignment.exists=\u4E0D\u5B58\u5728\u7C7B\u578B\u53D8\u91CF{0}\u7684\u5B9E\u4F8B, \u4EE5\u4F7F\u53C2\u6570\u7C7B\u578B{1}\u4E0E\u5F62\u5F0F\u53C2\u6570\u7C7B\u578B{2}\u4E00\u81F4 +compiler.misc.infer.arg.length.mismatch=\u65E0\u6CD5\u4ECE\u53C2\u6570\u8FDB\u884C\u5B9E\u4F8B\u5316, \u56E0\u4E3A\u5B9E\u9645\u53C2\u6570\u5217\u8868\u548C\u5F62\u5F0F\u53C2\u6570\u5217\u8868\u957F\u5EA6\u4E0D\u540C +compiler.misc.inferred.do.not.conform.to.bounds=\u63A8\u65AD\u7C7B\u578B\u4E0D\u7B26\u5408\u58F0\u660E\u7684\u8303\u56F4\n\u63A8\u65AD: {0}\n\u8303\u56F4: {1} +compiler.misc.inferred.do.not.conform.to.params=\u5B9E\u9645\u53C2\u6570\u4E0D\u7B26\u5408\u63A8\u65AD\u7684\u5F62\u5F0F\u53C2\u6570\n\u9700\u8981: {0}\n\u627E\u5230: {1} +compiler.misc.diamond={0}<> +compiler.misc.diamond.invalid.arg=\u6B64\u4E0A\u4E0B\u6587\u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528\u4E3A{1}\u63A8\u65AD\u7684\u7C7B\u578B\u53C2\u6570{0} +compiler.misc.diamond.invalid.args=\u6B64\u4E0A\u4E0B\u6587\u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528\u4E3A{1}\u63A8\u65AD\u7684\u7C7B\u578B\u53C2\u6570{0} +compiler.misc.explicit.param.do.not.conform.to.bounds=\u663E\u5F0F\u7C7B\u578B\u53C2\u6570{0}\u4E0D\u7B26\u5408\u58F0\u660E\u7684\u8303\u56F4{1} + +compiler.misc.arg.length.mismatch=\u5B9E\u9645\u53C2\u6570\u5217\u8868\u548C\u5F62\u5F0F\u53C2\u6570\u5217\u8868\u957F\u5EA6\u4E0D\u540C +compiler.misc.no.conforming.assignment.exists=\u65E0\u6CD5\u901A\u8FC7\u65B9\u6CD5\u8C03\u7528\u8F6C\u6362\u5C06\u5B9E\u9645\u53C2\u6570{0}\u8F6C\u6362\u4E3A{1} +compiler.misc.varargs.argument.mismatch=\u53C2\u6570\u7C7B\u578B{0}\u4E0D\u7B26\u5408 vararg \u5143\u7D20\u7C7B\u578B{1} ##### ## The first argument ({0}) is a "kindname". -compiler.err.abstract.cant.be.accessed.directly=\u65e0\u6cd5\u76f4\u63a5\u8bbf\u95ee {2} \u4e2d\u7684\u62bd\u8c61 {0} {1} +compiler.err.abstract.cant.be.accessed.directly=\u65E0\u6CD5\u76F4\u63A5\u8BBF\u95EE{2}\u4E2D\u7684\u62BD\u8C61{0} {1} ## The first argument ({0}) is a "kindname". -compiler.err.non-static.cant.be.ref=\u65e0\u6cd5\u4ece\u9759\u6001\u4e0a\u4e0b\u6587\u4e2d\u5f15\u7528\u975e\u9759\u6001 {0} {1} +compiler.err.non-static.cant.be.ref=\u65E0\u6CD5\u4ECE\u9759\u6001\u4E0A\u4E0B\u6587\u4E2D\u5F15\u7528\u975E\u9759\u6001 {0} {1} ## Both arguments ({0}, {1}) are "kindname"s. {0} is a comma-separated list ## of kindnames (the list should be identical to that provided in source. -compiler.err.unexpected.type=\u610f\u5916\u7684\u7c7b\u578b\n\u9700\u8981\uff1a {0}\n\u627e\u5230\uff1a {1} +compiler.err.unexpected.type=\u610F\u5916\u7684\u7C7B\u578B\n\u9700\u8981: {0}\n\u627E\u5230: {1} ## The first argument {0} is a "kindname" (e.g. 'constructor', 'field', etc.) ## The second argument {1} is the non-resolved symbol ## The third argument {2} is a list of type parameters (non-empty if {1} is a method) ## The fourth argument {3} is a list of argument types (non-empty if {1} is a method) -compiler.err.cant.resolve=\u627e\u4e0d\u5230\u7b26\u53f7\n\u7b26\u53f7\uff1a {0} {3}{1}{2} +compiler.err.cant.resolve=\u627E\u4E0D\u5230\u7B26\u53F7\n\u7B26\u53F7: {0} {1} -compiler.err.cant.resolve.args=\u627e\u4e0d\u5230\u7b26\u53f7\n\u7b26\u53f7\uff1a {0} {1}({3}) +compiler.err.cant.resolve.args=\u627E\u4E0D\u5230\u7B26\u53F7\n\u7B26\u53F7: {0} {1}({3}) -compiler.err.cant.resolve.args.params=\u627e\u4e0d\u5230\u7b26\u53f7\n\u7b26\u53f7\uff1a {0} <{2}>{1}({3}) +compiler.err.cant.resolve.args.params=\u627E\u4E0D\u5230\u7B26\u53F7\n\u7B26\u53F7: {0} <{2}>{1}({3}) ## arguments from {0} to {3} have the same meaning as above ## The fifth argument {4} is the location "kindname" (e.g. 'constructor', 'field', etc.) ## The sixth argument {5} is the location type -compiler.err.cant.resolve.location=\u627e\u4e0d\u5230\u7b26\u53f7\n\u7b26\u53f7\uff1a {0} {3}{1}{2}\n\u4f4d\u7f6e\uff1a {4} {5} - -compiler.err.cant.resolve.location.args=\u627e\u4e0d\u5230\u7b26\u53f7\n\u7b26\u53f7\uff1a {0} {1}({3})\nlocation: {4} {5} +compiler.err.cant.resolve.location=\u627E\u4E0D\u5230\u7B26\u53F7\n\u7B26\u53F7: {0} {1}\n\u4F4D\u7F6E: {4} {5} -compiler.err.cant.resolve.location.args.params=\u627e\u4e0d\u5230\u7b26\u53f7\n\u7b26\u53f7\uff1a {0} <{2}>{1}({3})\n\u4f4d\u7f6e\uff1a {4} {5} +compiler.err.cant.resolve.location.args=\u627E\u4E0D\u5230\u7B26\u53F7\n\u7B26\u53F7: {0} {1}({3})\n\u4F4D\u7F6E: {4} {5} -compiler.err.cant.apply.diamond=\u83f1\u5f62\u8fd0\u7b97\u7b26\u65e0\u6cd5\u63a8\u65ad {0} \u7684\u7c7b\u578b\uff1b\n\u539f\u56e0: {1} +compiler.err.cant.resolve.location.args.params=\u627E\u4E0D\u5230\u7B26\u53F7\n\u7B26\u53F7: {0} <{2}>{1}({3})\n\u4F4D\u7F6E: {4} {5} ## The following are all possible string for "kindname". ## They should be called whatever the JLS calls them after it been translated @@ -659,88 +706,98 @@ # compiler.misc.kindname.constructor=\ # static member compiler.misc.kindname.annotation=@interface -compiler.misc.kindname.constructor=\u6784\u9020\u51fd\u6570 -compiler.misc.kindname.interface=\u63a5\u53e3 +compiler.misc.kindname.constructor=\u6784\u9020\u5668 +compiler.misc.kindname.enum=\u679A\u4E3E +compiler.misc.kindname.interface=\u63A5\u53E3 compiler.misc.kindname.static=\u9759\u6001 -compiler.misc.kindname.type.variable=\u7c7b\u578b\u53d8\u91cf -compiler.misc.kindname.type.variable.bound=\u7c7b\u578b\u53d8\u91cf\u7684\u9650\u5236\u8303\u56f4 -compiler.misc.kindname.variable=\u53d8\u91cf -compiler.misc.kindname.value=\u503c -compiler.misc.kindname.method=\u65b9\u6cd5 -compiler.misc.kindname.class=\u7c7b -compiler.misc.kindname.package=\u8f6f\u4ef6\u5305 +compiler.misc.kindname.type.variable=\u7C7B\u578B\u53D8\u91CF +compiler.misc.kindname.type.variable.bound=\u7C7B\u578B\u53D8\u91CF\u7684\u9650\u5236\u8303\u56F4 +compiler.misc.kindname.variable=\u53D8\u91CF +compiler.misc.kindname.value=\u503C +compiler.misc.kindname.method=\u65B9\u6CD5 +compiler.misc.kindname.class=\u7C7B +compiler.misc.kindname.package=\u7A0B\u5E8F\u5305 ##### -compiler.misc.no.args=\u6ca1\u6709\u53c2\u6570 +compiler.misc.no.args=\u6CA1\u6709\u53C2\u6570 -compiler.err.override.static={0}\n\u8986\u76d6\u7684\u65b9\u6cd5\u4e3a\u9759\u6001 -compiler.err.override.meth={0}\n\u8986\u76d6\u7684\u65b9\u6cd5\u4e3a {1} +compiler.err.override.static={0}\n\u8986\u76D6\u7684\u65B9\u6CD5\u4E3A static +compiler.err.override.meth={0}\n\u88AB\u8986\u76D6\u7684\u65B9\u6CD5\u4E3A{1} -compiler.err.override.meth.doesnt.throw={0}\n\u88ab\u8986\u76d6\u7684\u65b9\u6cd5\u4e0d\u629b\u51fa {1} +compiler.err.override.meth.doesnt.throw={0}\n\u88AB\u8986\u76D6\u7684\u65B9\u6CD5\u672A\u629B\u51FA{1} # In the following string {1} is a space separated list of Java Keywords, as # they would have been declared in the source code -compiler.err.override.weaker.access={0}\n\u6b63\u5728\u5c1d\u8bd5\u6307\u5b9a\u66f4\u4f4e\u7684\u8bbf\u95ee\u6743\u9650\uff1b\u4e3a {1} +compiler.err.override.weaker.access={0}\n\u6B63\u5728\u5C1D\u8BD5\u5206\u914D\u66F4\u4F4E\u7684\u8BBF\u95EE\u6743\u9650; \u4EE5\u524D\u4E3A{1} -compiler.err.override.incompatible.ret={0}\n\u8fd4\u56de\u7c7b\u578b {1} \u4e0e {2} \u4e0d\u517c\u5bb9 +compiler.err.override.incompatible.ret={0}\n\u8FD4\u56DE\u7C7B\u578B{1}\u4E0E{2}\u4E0D\u517C\u5BB9 -compiler.warn.override.unchecked.ret=[unchecked] {0}\n\u8fd4\u56de\u7c7b\u578b\u9700\u8981\u4ece {1} \u5230 {2} \u7684\u672a\u7ecf\u68c0\u67e5\u8f6c\u6362 +compiler.warn.override.unchecked.ret={0}\n\u8FD4\u56DE\u7C7B\u578B\u9700\u8981\u4ECE{1}\u5230{2}\u7684\u672A\u7ECF\u68C0\u67E5\u7684\u8F6C\u6362 -compiler.warn.override.unchecked.thrown=[unchecked] {0}\n\u88ab\u8986\u76d6\u7684\u65b9\u6cd5\u4e0d\u629b\u51fa {1} +compiler.warn.override.unchecked.thrown={0}\n\u88AB\u8986\u76D6\u7684\u65B9\u6CD5\u672A\u629B\u51FA{1} ## The following are all possible strings for the first argument ({0}) of the ## above strings. -compiler.misc.cant.override={1} \u4e2d\u7684 {0} \u65e0\u6cd5\u8986\u76d6 {3} \u4e2d\u7684 {2} -compiler.misc.cant.implement={1} \u4e2d\u7684 {0} \u65e0\u6cd5\u5b9e\u73b0 {3} \u4e2d\u7684 {2} -compiler.misc.clashes.with={1} \u4e2d\u7684 {0} \u4e0e {3} \u4e2d\u7684 {2} \u51b2\u7a81 -compiler.misc.unchecked.override={1} \u4e2d\u7684 {0} \u8986\u76d6\u4e86 {3} \u4e2d\u7684 {2} -compiler.misc.unchecked.implement={1} \u4e2d\u7684 {0} \u5b9e\u73b0\u4e86 {3} \u4e2d\u7684 {2} -compiler.misc.unchecked.clash.with={1} \u4e2d\u7684 {0} \u8986\u76d6\u4e86 {3} \u4e2d\u7684 {2} -compiler.misc.varargs.override={1} \u4e2d\u7684 {0} \u8986\u76d6\u4e86 {3} \u4e2d\u7684 {2} -compiler.misc.varargs.implement={1} \u4e2d\u7684 {0} \u5b9e\u73b0\u4e86 {3} \u4e2d\u7684 {2} -compiler.misc.varargs.clash.with={1} \u4e2d\u7684 {0} \u8986\u76d6\u4e86 {3} \u4e2d\u7684 {2} +compiler.misc.cant.override={1}\u4E2D\u7684{0}\u65E0\u6CD5\u8986\u76D6{3}\u4E2D\u7684{2} +compiler.misc.cant.implement={1}\u4E2D\u7684{0}\u65E0\u6CD5\u5B9E\u73B0{3}\u4E2D\u7684{2} +compiler.misc.clashes.with={1}\u4E2D\u7684{0}\u4E0E{3}\u4E2D\u7684{2}\u51B2\u7A81 +compiler.misc.unchecked.override={1}\u4E2D\u7684{0}\u8986\u76D6\u4E86{3}\u4E2D\u7684{2} +compiler.misc.unchecked.implement={1}\u4E2D\u7684{0}\u5B9E\u73B0\u4E86{3}\u4E2D\u7684{2} +compiler.misc.unchecked.clash.with={1}\u4E2D\u7684{0}\u8986\u76D6\u4E86{3}\u4E2D\u7684{2} +compiler.misc.varargs.override={1}\u4E2D\u7684{0}\u8986\u76D6\u4E86{3}\u4E2D\u7684{2} +compiler.misc.varargs.implement={1}\u4E2D\u7684{0}\u5B9E\u73B0\u4E86{3}\u4E2D\u7684{2} +compiler.misc.varargs.clash.with={1}\u4E2D\u7684{0}\u8986\u76D6\u4E86{3}\u4E2D\u7684{2} +compiler.misc.non.denotable.type=\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528\u4E0D\u53EF\u6307\u793A\u7684\u7C7B\u578B{0} + +compiler.misc.inapplicable.method={0} {1}.{2}\u4E0D\u9002\u7528\n({3}) ######################################## # Diagnostics for language feature changes ######################################## -compiler.err.unsupported.fp.lit=-source {0} \u4e2d\u4e0d\u652f\u6301\u5341\u516d\u8fdb\u5236\u6d6e\u70b9\u5b57\u9762\u503c\n\uff08\u8bf7\u4f7f\u7528 -source 5 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528\u5341\u516d\u8fdb\u5236\u6d6e\u70b9\u5b57\u9762\u503c\uff09 +compiler.err.unsupported.fp.lit=-source {0} \u4E2D\u4E0D\u652F\u6301\u5341\u516D\u8FDB\u5236\u6D6E\u70B9\u6587\u5B57\n(\u8BF7\u4F7F\u7528 -source 5 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528\u5341\u516D\u8FDB\u5236\u6D6E\u70B9\u6587\u5B57) -compiler.err.unsupported.binary.lit=-source {0} \u4e2d\u4e0d\u652f\u6301\u4e8c\u8fdb\u5236\u5b57\u9762\u503c\n\uff08\u8bf7\u4f7f\u7528 -source 7 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528\u4e8c\u8fdb\u5236\u5b57\u9762\u503c\uff09 +compiler.err.unsupported.binary.lit=-source {0} \u4E2D\u4E0D\u652F\u6301\u4E8C\u8FDB\u5236\u6587\u5B57\n(\u8BF7\u4F7F\u7528 -source 7 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528\u4E8C\u8FDB\u5236\u6587\u5B57) -compiler.err.unsupported.underscore.lit=-source {0} \u4e2d\u4e0d\u652f\u6301\u5b57\u9762\u503c\u4f7f\u7528\u4e0b\u5212\u7ebf\n\uff08\u8bf7\u4f7f\u7528 -source 7 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u5141\u8bb8\u5b57\u9762\u503c\u4f7f\u7528\u4e0b\u5212\u7ebf\uff09 +compiler.err.unsupported.underscore.lit=-source {0} \u4E2D\u4E0D\u652F\u6301\u6587\u5B57\u4E2D\u5B58\u5728\u4E0B\u5212\u7EBF\n(\u8BF7\u4F7F\u7528 -source 7 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u5141\u8BB8\u6587\u5B57\u4E2D\u5B58\u5728\u4E0B\u5212\u7EBF) -compiler.warn.enum.as.identifier=\u4ece\u53d1\u884c\u7248 5 \u5f00\u59cb\uff0c"enum" \u4e3a\u5173\u952e\u5b57\uff0c\u800c\u4e0d\u7528\u4f5c\u6807\u8bc6\u7b26\n\uff08\u8bf7\u4f7f\u7528 -source 5 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u5c06 "enum"' \u7528\u4f5c\u5173\u952e\u5b57\uff09 +compiler.err.try.with.resources.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301 try-with-resources\n(\u8BF7\u4F7F\u7528 -source 7 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528 try-with-resources) -compiler.warn.assert.as.identifier=\u4ece\u7248\u672c 1.4 \u5f00\u59cb\uff0c''assert'' \u662f\u4e00\u4e2a\u5173\u952e\u5b57\uff0c\u4f46\u4e0d\u80fd\u7528\u4f5c\u6807\u8bc6\u7b26\n\uff08\u8bf7\u4f7f\u7528 -source 1.4 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u4fbf\u5c06 ''assert'' \u7528\u4f5c\u5173\u952e\u5b57\uff09 +compiler.warn.enum.as.identifier=\u4ECE\u53D1\u884C\u7248 5 \u5F00\u59CB, ''enum'' \u4E3A\u5173\u952E\u5B57, \u800C\u4E0D\u7528\u4F5C\u6807\u8BC6\u7B26\n(\u8BF7\u4F7F\u7528 -source 5 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u5C06 ''enum'' \u7528\u4F5C\u5173\u952E\u5B57) -compiler.err.enum.as.identifier=\u4ece\u53d1\u884c\u7248 5 \u5f00\u59cb\uff0c"enum" \u4e3a\u5173\u952e\u5b57\uff0c\u800c\u4e0d\u7528\u4f5c\u6807\u8bc6\u7b26\n\uff08\u8bf7\u4f7f\u7528 -source 1.4 \u6216\u66f4\u4f4e\u7248\u672c\u4ee5\u5c06 "enum" \u7528\u4f5c\u6807\u8bc6\u7b26\uff09 +compiler.warn.assert.as.identifier=\u4ECE\u53D1\u884C\u7248 1.4 \u5F00\u59CB, ''assert'' \u662F\u4E00\u4E2A\u5173\u952E\u5B57, \u4F46\u4E0D\u80FD\u7528\u4F5C\u6807\u8BC6\u7B26\n(\u8BF7\u4F7F\u7528 -source 1.4 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u5C06 ''assert'' \u7528\u4F5C\u5173\u952E\u5B57) -compiler.err.assert.as.identifier=\u4ece\u7248\u672c 1.4 \u5f00\u59cb\uff0c''assert'' \u662f\u4e00\u4e2a\u5173\u952e\u5b57\uff0c\u4f46\u4e0d\u80fd\u7528\u4f5c\u6807\u8bc6\u7b26\n\uff08\u8bf7\u4f7f\u7528 -source 1.3 \u6216\u66f4\u4f4e\u7248\u672c\u4ee5\u4fbf\u5c06 ''assert'' \u7528\u4f5c\u6807\u8bc6\u7b26\uff09 +compiler.err.enum.as.identifier=\u4ECE\u53D1\u884C\u7248 5 \u5F00\u59CB, ''enum'' \u4E3A\u5173\u952E\u5B57, \u800C\u4E0D\u7528\u4F5C\u6807\u8BC6\u7B26\n(\u8BF7\u4F7F\u7528 -source 1.4 \u6216\u66F4\u4F4E\u7248\u672C\u4EE5\u5C06 ''enum'' \u7528\u4F5C\u6807\u8BC6\u7B26) -compiler.err.generics.not.supported.in.source=-source {0} \u4e2d\u4e0d\u652f\u6301\u6cdb\u578b\n\uff08\u8bf7\u4f7f\u7528 -source 5 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528\u6cdb\u578b\uff09 +compiler.err.assert.as.identifier=\u4ECE\u53D1\u884C\u7248 1.4 \u5F00\u59CB, ''assert'' \u662F\u4E00\u4E2A\u5173\u952E\u5B57, \u4F46\u4E0D\u80FD\u7528\u4F5C\u6807\u8BC6\u7B26\n(\u8BF7\u4F7F\u7528 -source 1.3 \u6216\u66F4\u4F4E\u7248\u672C\u4EE5\u5C06 ''assert'' \u7528\u4F5C\u6807\u8BC6\u7B26) + +compiler.err.generics.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301\u6CDB\u578B\n(\u8BF7\u4F7F\u7528 -source 5 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528\u6CDB\u578B) -compiler.err.varargs.not.supported.in.source=-source {0} \u4e2d\u4e0d\u652f\u6301 variable-arity \u65b9\u6cd5\n\uff08\u8bf7\u4f7f\u7528 -source 5 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528 variable-arity \u65b9\u6cd5\uff09 +compiler.err.varargs.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301 variable-arity \u65B9\u6CD5\n(\u8BF7\u4F7F\u7528 -source 5 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528 variable-arity \u65B9\u6CD5) -compiler.err.annotations.not.supported.in.source=-source {0} \u4e2d\u4e0d\u652f\u6301\u6ce8\u91ca\n\uff08\u8bf7\u4f7f\u7528 -source 5 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528\u6ce8\u91ca\uff09 +compiler.err.annotations.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301\u6CE8\u91CA\n(\u8BF7\u4F7F\u7528 -source 5 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528\u6CE8\u91CA) -compiler.err.type.annotations.not.supported.in.source=-source {0} \u4e2d\u4e0d\u652f\u6301\u7c7b\u578b\u6ce8\u91ca\n\uff08\u8bf7\u4f7f\u7528 -source 7 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528\u7c7b\u578b\u6ce8\u91ca\uff09 +#308 compiler.err.type.annotations.not.supported.in.source=\ +#308 type annotations are not supported in -source {0}\n\ +#308 (use -source 7 or higher to enable type annotations) -compiler.err.foreach.not.supported.in.source=-source {0} \u4e2d\u4e0d\u652f\u6301 for-each \u5faa\u73af\n\uff08\u8bf7\u4f7f\u7528 -source 5 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528 for-each \u5faa\u73af\uff09 +compiler.err.foreach.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301 for-each \u5FAA\u73AF\n(\u8BF7\u4F7F\u7528 -source 5 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528 for-each \u5FAA\u73AF) -compiler.err.static.import.not.supported.in.source=-source {0} \u4e2d\u4e0d\u652f\u6301\u9759\u6001\u5bfc\u5165\u58f0\u660e\n\uff08\u8bf7\u4f7f\u7528 -source 5 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528\u9759\u6001\u5bfc\u5165\u58f0\u660e\uff09 +compiler.err.static.import.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301\u9759\u6001\u5BFC\u5165\u58F0\u660E\n(\u8BF7\u4F7F\u7528 -source 5 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528\u9759\u6001\u5BFC\u5165\u58F0\u660E) -compiler.err.enums.not.supported.in.source=-source {0} \u4e2d\u4e0d\u652f\u6301\u679a\u4e3e\n\uff08\u8bf7\u4f7f\u7528 -source 5 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528\u679a\u4e3e\uff09 +compiler.err.enums.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301\u679A\u4E3E\n(\u8BF7\u4F7F\u7528 -source 5 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528\u679A\u4E3E) -compiler.err.diamond.not.supported.in.source=-source {0} \u4e2d\u4e0d\u652f\u6301\u83f1\u5f62\u8fd0\u7b97\u7b26\n\uff08\u8bf7\u4f7f\u7528 -source 7 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u542f\u7528\u83f1\u5f62\u8fd0\u7b97\u7b26\uff09 +compiler.err.diamond.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301 diamond \u8FD0\u7B97\u7B26\n(\u8BF7\u4F7F\u7528 -source 7 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528 diamond \u8FD0\u7B97\u7B26) -compiler.err.string.switch.not.supported.in.source=-source {0} \u4e2d\u4e0d\u652f\u6301 switch \u4f7f\u7528\u5b57\u7b26\u4e32\n\uff08\u8bf7\u4f7f\u7528 -source 7 \u6216\u66f4\u9ad8\u7248\u672c\u4ee5\u5141\u8bb8 switch \u4f7f\u7528\u5b57\u7b26\u4e32\uff09 +compiler.err.multicatch.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301 multi-catch \u8BED\u53E5\n(\u8BF7\u4F7F\u7528 -source 7 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528 multi-catch \u8BED\u53E5) + +compiler.err.string.switch.not.supported.in.source=-source {0} \u4E2D\u4E0D\u652F\u6301 switch \u4E2D\u5B58\u5728\u5B57\u7B26\u4E32\n(\u8BF7\u4F7F\u7528 -source 7 \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u5141\u8BB8 switch \u4E2D\u5B58\u5728\u5B57\u7B26\u4E32) ######################################## # Diagnostics for where clause implementation # used by the RichDiagnosticFormatter. ######################################## -compiler.misc.type.null=<null> +compiler.misc.type.null=<\u7A7A\u503C> # X#n (where n is an int id) is disambiguated tvar name compiler.misc.type.var={0}#{1} @@ -753,30 +810,30 @@ # where clause for captured type: contains upper ('extends {1}') and lower # ('super {2}') bound along with the wildcard that generated this captured type ({3}) -compiler.misc.where.captured={0} \u901a\u8fc7\u6355\u83b7 {3} \u6269\u5c55 {1} \u8d85\u7ea7\u7c7b\u578b\uff1a{2} +compiler.misc.where.captured={0}\u4ECE{3}\u7684\u6355\u83B7\u6269\u5C55{1} \u8D85 {2} # compact where clause for captured type: contains upper ('extends {1}') along # with the wildcard that generated this captured type ({3}) -compiler.misc.where.captured.1={0} \u901a\u8fc7\u6355\u83b7 {3} \u6269\u5c55 {1} +compiler.misc.where.captured.1={0}\u4ECE{3}\u7684\u6355\u83B7\u6269\u5C55{1} # where clause for type variable: contains upper bound(s) ('extends {1}') along with # the kindname ({2}) and location ({3}) in which the typevar has been declared -compiler.misc.where.typevar={0} \u6269\u5c55 {2} {3} \u4e2d\u58f0\u660e\u7684 {1} +compiler.misc.where.typevar={0}\u6269\u5C55\u5DF2\u5728{2} {3}\u4E2D\u58F0\u660E\u7684{1} # compact where clause for type variable: contains the kindname ({2}) and location ({3}) # in which the typevar has been declared -compiler.misc.where.typevar.1={2} {3} \u4e2d\u58f0\u660e\u7684 {0} +compiler.misc.where.typevar.1={0}\u5DF2\u5728{2} {3}\u4E2D\u58F0\u660E # where clause for type variable: contains all the upper bound(s) ('extends {1}') # of this intersection type -compiler.misc.where.intersection={0} \u6269\u5c55 {1} +compiler.misc.where.intersection={0}\u6269\u5C55{1} ### Where clause headers ### -compiler.misc.where.description.captured=\u5176\u4e2d {0} \u662f\u4e00\u4e2a\u65b0\u7684\u7c7b\u578b\u53d8\u91cf\uff1a -compiler.misc.where.description.typevar=\u5176\u4e2d {0} \u662f\u4e00\u4e2a\u7c7b\u578b\u53d8\u91cf\uff1a -compiler.misc.where.description.intersection=\u5176\u4e2d {0} \u662f\u4ea4\u96c6\u7c7b\u578b\uff1a -compiler.misc.where.description.captured.1=\u5176\u4e2d {0} \u662f\u65b0\u7684\u7c7b\u578b\u53d8\u91cf\uff1a -compiler.misc.where.description.typevar.1=\u5176\u4e2d {0} \u662f\u7c7b\u578b\u53d8\u91cf\uff1a -compiler.misc.where.description.intersection.1=\u5176\u4e2d {0} \u662f\u4ea4\u96c6\u7c7b\u578b\uff1a +compiler.misc.where.description.captured=\u5176\u4E2D, {0}\u662F\u65B0\u7C7B\u578B\u53D8\u91CF: +compiler.misc.where.description.typevar=\u5176\u4E2D, {0}\u662F\u7C7B\u578B\u53D8\u91CF: +compiler.misc.where.description.intersection=\u5176\u4E2D, {0}\u662F\u4EA4\u53C9\u7C7B\u578B: +compiler.misc.where.description.captured.1=\u5176\u4E2D, {0}\u662F\u65B0\u7C7B\u578B\u53D8\u91CF: +compiler.misc.where.description.typevar.1=\u5176\u4E2D, {0}\u662F\u7C7B\u578B\u53D8\u91CF: +compiler.misc.where.description.intersection.1=\u5176\u4E2D, {0}\u662F\u4EA4\u53C9\u7C7B\u578B:
--- a/src/share/classes/com/sun/tools/javac/resources/javac_ja.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/resources/javac_ja.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2009, 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 @@ -25,31 +25,32 @@ ## standard options -javac.opt.g=\u3059\u3079\u3066\u306e\u30c7\u30d0\u30c3\u30b0\u60c5\u5831\u3092\u751f\u6210\u3059\u308b -javac.opt.g.none=\u30c7\u30d0\u30c3\u30b0\u60c5\u5831\u3092\u751f\u6210\u3057\u306a\u3044 -javac.opt.g.lines.vars.source=\u3044\u304f\u3064\u304b\u306e\u30c7\u30d0\u30c3\u30b0\u60c5\u5831\u3060\u3051\u3092\u751f\u6210\u3059\u308b -javac.opt.nowarn=\u8b66\u544a\u3092\u767a\u751f\u3055\u305b\u306a\u3044 -javac.opt.verbose=\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u52d5\u4f5c\u306b\u3064\u3044\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u51fa\u529b\u3059\u308b -javac.opt.deprecation=\u63a8\u5968\u3055\u308c\u306a\u3044 API \u304c\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u30bd\u30fc\u30b9\u306e\u4f4d\u7f6e\u3092\u51fa\u529b\u3059\u308b -javac.opt.classpath=\u30e6\u30fc\u30b6\u30fc\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u3092\u691c\u7d22\u3059\u308b\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b -javac.opt.sourcepath=\u5165\u529b\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u7d22\u3059\u308b\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b -javac.opt.bootclasspath=\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u4f4d\u7f6e\u3092\u7f6e\u304d\u63db\u3048\u308b -javac.opt.Xbootclasspath.p=\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306b\u4ed8\u52a0\u3059\u308b -javac.opt.Xbootclasspath.a=\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306b\u8ffd\u52a0\u3059\u308b -javac.opt.endorseddirs=\u63a8\u5968\u898f\u683c\u30d1\u30b9\u306e\u4f4d\u7f6e\u3092\u7f6e\u304d\u63db\u3048\u308b -javac.opt.extdirs=\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u62e1\u5f35\u6a5f\u80fd\u306e\u4f4d\u7f6e\u3092\u7f6e\u304d\u63db\u3048\u308b -javac.opt.processorpath=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u3092\u691c\u7d22\u3059\u308b\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b -javac.opt.processor=\u5b9f\u884c\u3059\u308b\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306e\u540d\u524d\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u691c\u51fa\u51e6\u7406\u3092\u30d0\u30a4\u30d1\u30b9 -javac.opt.proc.none.only=\u6ce8\u91c8\u51e6\u7406\u3084\u30b3\u30f3\u30d1\u30a4\u30eb\u3092\u5b9f\u884c\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u5236\u5fa1\u3057\u307e\u3059\u3002 -javac.opt.d=\u751f\u6210\u3055\u308c\u305f\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u683c\u7d0d\u3059\u308b\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b -javac.opt.sourceDest=\u751f\u6210\u3055\u308c\u305f\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u683c\u7d0d\u3059\u308b\u5834\u6240\u3092\u6307\u5b9a\u3059\u308b -javac.opt.J=<flag> \u3092\u5b9f\u884c\u30b7\u30b9\u30c6\u30e0\u306b\u76f4\u63a5\u6e21\u3059 -javac.opt.encoding=\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u304c\u4f7f\u7528\u3059\u308b\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u6307\u5b9a\u3059\u308b -javac.opt.target=\u7279\u5b9a\u306e VM \u30d0\u30fc\u30b8\u30e7\u30f3\u7528\u306e\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\u3059\u308b -javac.opt.source=\u6307\u5b9a\u3055\u308c\u305f\u30ea\u30ea\u30fc\u30b9\u3068\u30bd\u30fc\u30b9\u306e\u4e92\u63db\u6027\u3092\u4fdd\u3064 -javac.opt.Werror=\u8b66\u544a\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3092\u7d42\u4e86\u3059\u308b -javac.opt.A=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306b\u6e21\u3055\u308c\u308b\u30aa\u30d7\u30b7\u30e7\u30f3 -javac.opt.implicit=\u6697\u9ed9\u7684\u306b\u53c2\u7167\u3055\u308c\u308b\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3059\u308b +javac.opt.g=\u3059\u3079\u3066\u306E\u30C7\u30D0\u30C3\u30B0\u60C5\u5831\u3092\u751F\u6210\u3059\u308B +javac.opt.g.none=\u30C7\u30D0\u30C3\u30B0\u60C5\u5831\u3092\u751F\u6210\u3057\u306A\u3044 +javac.opt.g.lines.vars.source=\u3044\u304F\u3064\u304B\u306E\u30C7\u30D0\u30C3\u30B0\u60C5\u5831\u306E\u307F\u3092\u751F\u6210\u3059\u308B +javac.opt.nowarn=\u8B66\u544A\u3092\u767A\u751F\u3055\u305B\u306A\u3044 +javac.opt.verbose=\u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u52D5\u4F5C\u306B\u3064\u3044\u3066\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B +javac.opt.deprecation=\u63A8\u5968\u3055\u308C\u306A\u3044API\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u30BD\u30FC\u30B9\u306E\u4F4D\u7F6E\u3092\u51FA\u529B\u3059\u308B +javac.opt.classpath=\u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304A\u3088\u3073\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B +javac.opt.sourcepath=\u5165\u529B\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B +javac.opt.bootclasspath=\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306E\u4F4D\u7F6E\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B +javac.opt.Xbootclasspath.p=\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306B\u4ED8\u52A0\u3059\u308B +javac.opt.Xbootclasspath.a=\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306B\u8FFD\u52A0\u3059\u308B +javac.opt.endorseddirs=\u63A8\u5968\u898F\u683C\u30D1\u30B9\u306E\u4F4D\u7F6E\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B +javac.opt.extdirs=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u62E1\u5F35\u6A5F\u80FD\u306E\u4F4D\u7F6E\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B +javac.opt.processorpath=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B +javac.opt.processor=\u5B9F\u884C\u3059\u308B\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306E\u540D\u524D\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u691C\u51FA\u51E6\u7406\u3092\u30D0\u30A4\u30D1\u30B9 +javac.opt.proc.none.only=\u6CE8\u91C8\u51E6\u7406\u3084\u30B3\u30F3\u30D1\u30A4\u30EB\u3092\u5B9F\u884C\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002 +javac.opt.d=\u751F\u6210\u3055\u308C\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u683C\u7D0D\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B +javac.opt.sourceDest=\u751F\u6210\u3055\u308C\u305F\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u683C\u7D0D\u3059\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B +javac.opt.J=<flag>\u3092\u5B9F\u884C\u30B7\u30B9\u30C6\u30E0\u306B\u76F4\u63A5\u6E21\u3059 +javac.opt.encoding=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u4F7F\u7528\u3059\u308B\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u6307\u5B9A\u3059\u308B +javac.opt.target=\u7279\u5B9A\u306EVM\u30D0\u30FC\u30B8\u30E7\u30F3\u7528\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3059\u308B +javac.opt.source=\u6307\u5B9A\u3055\u308C\u305F\u30EA\u30EA\u30FC\u30B9\u3068\u30BD\u30FC\u30B9\u306E\u4E92\u63DB\u6027\u3092\u4FDD\u3064 +javac.opt.Werror=\u8B66\u544A\u304C\u767A\u751F\u3057\u305F\u5834\u5408\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3092\u7D42\u4E86\u3059\u308B +javac.opt.A=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306B\u6E21\u3055\u308C\u308B\u30AA\u30D7\u30B7\u30E7\u30F3 +javac.opt.implicit=\u6697\u9ED9\u7684\u306B\u53C2\u7167\u3055\u308C\u308B\u30D5\u30A1\u30A4\u30EB\u306B\u3064\u3044\u3066\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u6307\u5B9A\u3059\u308B +javac.opt.pkginfo=package-info\u30D5\u30A1\u30A4\u30EB\u306E\u51E6\u7406\u3092\u6307\u5B9A\u3059\u308B javac.opt.arg.class=<class> javac.opt.arg.class.list=<class1>[,<class2>,<class3>...] javac.opt.arg.flag=<flag> @@ -63,62 +64,62 @@ ## extended options -javac.opt.maxerrs=\u51fa\u529b\u3059\u308b\u30a8\u30e9\u30fc\u306e\u6700\u5927\u6570\u3092\u8a2d\u5b9a\u3059\u308b -javac.opt.maxwarns=\u51fa\u529b\u3059\u308b\u8b66\u544a\u306e\u6700\u5927\u6570\u3092\u8a2d\u5b9a\u3059\u308b -javac.opt.nogj=\u8a00\u8a9e\u306e\u6c4e\u7528\u6027\u3092\u53d7\u3051\u4ed8\u3051\u306a\u3044 -javac.opt.moreinfo=\u578b\u5909\u6570\u306e\u62e1\u5f35\u60c5\u5831\u3092\u51fa\u529b\u3059\u308b -javac.opt.printflat=\u5185\u90e8\u30af\u30e9\u30b9\u306e\u5909\u63db\u5f8c\u306b\u62bd\u8c61\u69cb\u6587\u30c4\u30ea\u30fc\u3092\u51fa\u529b\u3059\u308b -javac.opt.printsearch=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u691c\u7d22\u4f4d\u7f6e\u60c5\u5831\u3092\u51fa\u529b\u3059\u308b -javac.opt.prompt=\u5404\u30a8\u30e9\u30fc\u3067\u505c\u6b62\u3059\u308b -javac.opt.retrofit=\u65e2\u5b58\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u6c4e\u7528\u578b\u3067\u7d44\u307f\u66ff\u3048\u308b -javac.opt.s=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u4ee3\u308f\u308a\u306b java \u30bd\u30fc\u30b9\u3092\u767a\u884c\u3059\u308b -javac.opt.scramble=\u30d0\u30a4\u30c8\u30b3\u30fc\u30c9\u306e private \u8b58\u5225\u5b50\u306b\u30b9\u30af\u30e9\u30f3\u30d6\u30eb\u3092\u304b\u3051\u308b -javac.opt.scrambleall=\u30d0\u30a4\u30c8\u30b3\u30fc\u30c9\u306e package \u53ef\u8996\u8b58\u5225\u5b50\u306b\u30b9\u30af\u30e9\u30f3\u30d6\u30eb\u3092\u304b\u3051\u308b -javac.opt.version=\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831 +javac.opt.maxerrs=\u51FA\u529B\u3059\u308B\u30A8\u30E9\u30FC\u306E\u6700\u5927\u6570\u3092\u8A2D\u5B9A\u3059\u308B +javac.opt.maxwarns=\u51FA\u529B\u3059\u308B\u8B66\u544A\u306E\u6700\u5927\u6570\u3092\u8A2D\u5B9A\u3059\u308B +javac.opt.nogj=\u8A00\u8A9E\u306E\u6C4E\u7528\u6027\u3092\u53D7\u3051\u4ED8\u3051\u306A\u3044 +javac.opt.moreinfo=\u578B\u5909\u6570\u306E\u62E1\u5F35\u60C5\u5831\u3092\u51FA\u529B\u3059\u308B +javac.opt.printflat=\u5185\u90E8\u30AF\u30E9\u30B9\u306E\u5909\u63DB\u5F8C\u306B\u62BD\u8C61\u69CB\u6587\u30C4\u30EA\u30FC\u3092\u51FA\u529B\u3059\u308B +javac.opt.printsearch=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u691C\u7D22\u4F4D\u7F6E\u60C5\u5831\u3092\u51FA\u529B\u3059\u308B +javac.opt.prompt=\u5404\u30A8\u30E9\u30FC\u3067\u505C\u6B62\u3059\u308B +javac.opt.retrofit=\u65E2\u5B58\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u6C4E\u7528\u578B\u3067\u7D44\u307F\u66FF\u3048\u308B +javac.opt.s=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u304B\u308F\u308A\u306Bjava\u30BD\u30FC\u30B9\u3092\u767A\u884C\u3059\u308B +javac.opt.scramble=\u30D0\u30A4\u30C8\u30B3\u30FC\u30C9\u306Eprivate\u8B58\u5225\u5B50\u306B\u30B9\u30AF\u30E9\u30F3\u30D6\u30EB\u3092\u304B\u3051\u308B +javac.opt.scrambleall=\u30D0\u30A4\u30C8\u30B3\u30FC\u30C9\u306Epackage\u53EF\u8996\u8B58\u5225\u5B50\u306B\u30B9\u30AF\u30E9\u30F3\u30D6\u30EB\u3092\u304B\u3051\u308B +javac.opt.version=\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831 javac.opt.arg.pathname=<pathname> javac.opt.arg.file=<filename> -javac.opt.Xlint=\u63a8\u5968\u306e\u8b66\u544a\u3092\u6709\u52b9\u306b\u3059\u308b -javac.opt.Xlint.suboptlist=\u7279\u5b9a\u306e\u8b66\u544a\u3092\u6709\u52b9\u307e\u305f\u306f\u7121\u52b9\u306b\u3059\u308b -javac.opt.Xstdout=\u6a19\u6e96\u51fa\u529b\u3092\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3059\u308b -javac.opt.X=\u975e\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u6982\u8981\u3092\u51fa\u529b\u3059\u308b -javac.opt.help=\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u6982\u8981\u3092\u51fa\u529b\u3059\u308b -javac.opt.print=\u6307\u5b9a\u3057\u305f\u578b\u306e\u30c6\u30ad\u30b9\u30c8\u8868\u793a\u3092\u51fa\u529b\u3059\u308b -javac.opt.printRounds=\u6ce8\u91c8\u51e6\u7406\u306e\u5f80\u5fa9\u306b\u3064\u3044\u3066\u306e\u60c5\u5831\u3092\u5370\u5237\u3059\u308b -javac.opt.printProcessorInfo=\u30d7\u30ed\u30bb\u30c3\u30b5\u304c\u51e6\u7406\u3092\u4f9d\u983c\u3055\u308c\u308b\u6ce8\u91c8\u306b\u3064\u3044\u3066\u306e\u60c5\u5831\u3092\u5370\u5237\u3059\u308b -javac.opt.prefer=\u6697\u9ed9\u7684\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3055\u308c\u308b\u30af\u30e9\u30b9\u306b\u3064\u3044\u3066\u3001\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3068\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u4e21\u65b9\u304c\u898b\u3064\u304b\u3063\u305f\u969b\u3069\u3061\u3089\u3092\u8aad\u307f\u8fbc\u3080\u304b\u6307\u5b9a\u3059\u308b +javac.opt.Xlint=\u63A8\u5968\u306E\u8B66\u544A\u3092\u6709\u52B9\u306B\u3059\u308B +javac.opt.Xlint.suboptlist=\u7279\u5B9A\u306E\u8B66\u544A\u3092\u6709\u52B9\u307E\u305F\u306F\u7121\u52B9\u306B\u3059\u308B +javac.opt.Xstdout=\u6A19\u6E96\u51FA\u529B\u3092\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3059\u308B +javac.opt.X=\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u6982\u8981\u3092\u51FA\u529B\u3059\u308B +javac.opt.help=\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u6982\u8981\u3092\u51FA\u529B\u3059\u308B +javac.opt.print=\u6307\u5B9A\u3057\u305F\u578B\u306E\u30C6\u30AD\u30B9\u30C8\u8868\u793A\u3092\u51FA\u529B\u3059\u308B +javac.opt.printRounds=\u6CE8\u91C8\u51E6\u7406\u306E\u5F80\u5FA9\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B +javac.opt.printProcessorInfo=\u30D7\u30ED\u30BB\u30C3\u30B5\u304C\u51E6\u7406\u3092\u4F9D\u983C\u3055\u308C\u308B\u6CE8\u91C8\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B +javac.opt.prefer=\u6697\u9ED9\u7684\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u308B\u30AF\u30E9\u30B9\u306B\u3064\u3044\u3066\u3001\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3068\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u4E21\u65B9\u304C\u898B\u3064\u304B\u3063\u305F\u969B\u3069\u3061\u3089\u3092\u8AAD\u307F\u8FBC\u3080\u304B\u6307\u5B9A\u3059\u308B ## errors -javac.err.empty.A.argument=-A \u306b\u306f\u5f15\u6570\u304c\u5fc5\u8981\u3067\u3059\u3002''-Akey'' \u307e\u305f\u306f ''-Akey=value'' \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044 -javac.err.invalid.arg={0} \u306f\u7121\u52b9\u306a\u5f15\u6570\u3067\u3059\u3002 -javac.err.invalid.A.key=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u30aa\u30d7\u30b7\u30e7\u30f3 ''{0}'' \u306e\u30ad\u30fc\u306b\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u4e00\u9023\u306e\u8b58\u5225\u5b50\u304c\u3001\u30c9\u30c3\u30c8\u3067\u533a\u5207\u3089\u308c\u3066\u3044\u307e\u305b\u3093 -javac.err.invalid.flag={0} \u306f\u7121\u52b9\u306a\u30d5\u30e9\u30b0\u3067\u3059\u3002 -javac.err.invalid.target={0} \u306f\u7121\u52b9\u306a VM \u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u3059\u3002 -javac.err.no.source.files=\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -javac.err.req.arg={0} \u306b\u306f\u5f15\u6570\u304c\u5fc5\u8981\u3067\u3059 -javac.err.invalid.source={0} \u306f\u7121\u52b9\u306a\u30bd\u30fc\u30b9\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u3059\u3002 -javac.err.error.writing.file={0} \u306e\u66f8\u304d\u8fbc\u307f\u30a8\u30e9\u30fc\u3067\u3059\u3002{1} -javac.warn.source.target.conflict=\u30ea\u30ea\u30fc\u30b9 {0} \u306e\u30bd\u30fc\u30b9\u306b\u306f\u30ea\u30ea\u30fc\u30b9 {1} \u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u304c\u5fc5\u8981\u3067\u3059\u3002 -javac.warn.target.default.source.conflict=\u30bf\u30fc\u30b2\u30c3\u30c8\u30ea\u30ea\u30fc\u30b9 {0} \u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30bd\u30fc\u30b9\u30ea\u30ea\u30fc\u30b9 {1} \u3068\u7af6\u5408\u3057\u3066\u3044\u307e\u3059\u3002 -javac.err.dir.not.found=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u3042\u308a\u307e\u305b\u3093: {0} -javac.err.file.not.found=\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: {0} -javac.err.file.not.directory=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306f\u3042\u308a\u307e\u305b\u3093: {0} -javac.err.file.not.file=\u30d5\u30a1\u30a4\u30eb\u3067\u306f\u3042\u308a\u307e\u305b\u3093: {0} +javac.err.empty.A.argument=-A\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002''-Akey''\u307E\u305F\u306F''-Akey=value''\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044 +javac.err.invalid.arg={0}\u306F\u7121\u52B9\u306A\u5F15\u6570\u3067\u3059 +javac.err.invalid.A.key=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3''{0}''\u306E\u30AD\u30FC\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u4E00\u9023\u306E\u8B58\u5225\u5B50\u304C\u3001\u30C9\u30C3\u30C8\u3067\u533A\u5207\u3089\u308C\u3066\u3044\u307E\u305B\u3093 +javac.err.invalid.flag={0}\u306F\u7121\u52B9\u306A\u30D5\u30E9\u30B0\u3067\u3059 +javac.err.invalid.target={0}\u306F\u7121\u52B9\u306A\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u3059 +javac.err.no.source.files=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093 +javac.err.req.arg={0}\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059 +javac.err.invalid.source={0}\u306F\u7121\u52B9\u306A\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u3059 +javac.err.error.writing.file={0}\u306E\u66F8\u8FBC\u307F\u30A8\u30E9\u30FC\u3067\u3059\u3002{1} +javac.warn.source.target.conflict=\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306B\u306F\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{1}\u304C\u5FC5\u8981\u3067\u3059 +javac.warn.target.default.source.conflict=\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u304C\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{1}\u3068\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059 +javac.err.dir.not.found=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u3042\u308A\u307E\u305B\u3093: {0} +javac.err.file.not.found=\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0} +javac.err.file.not.directory=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093: {0} +javac.err.file.not.file=\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093: {0} ## messages -javac.msg.usage.header=\u4f7f\u3044\u65b9: {0} <options> <source files>\n\u4f7f\u7528\u53ef\u80fd\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u6b21\u306e\u3082\u306e\u304c\u3042\u308a\u307e\u3059\u3002 +javac.msg.usage.header=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <source files>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002 -javac.msg.usage=\u4f7f\u3044\u65b9: {0} <options> <source files>\n\u4f7f\u7528\u53ef\u80fd\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u30ea\u30b9\u30c8\u306b\u3064\u3044\u3066\u306f\u3001-help \u3092\u4f7f\u7528\u3057\u307e\u3059 +javac.msg.usage=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <source files>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001-help\u3092\u4F7F\u7528\u3057\u307E\u3059 + +javac.msg.usage.nonstandard.footer=\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002 -javac.msg.usage.nonstandard.footer=\u3053\u308c\u3089\u306f\u975e\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3042\u308a\u4e88\u544a\u306a\u3057\u306b\u5909\u66f4\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002 - -javac.msg.bug=\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u4f8b\u5916\u304c\u767a\u751f\u3057\u307e\u3057\u305f ({0})\u3002Bug Parade \u306b\u540c\u3058\u30d0\u30b0\u304c\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u3092\u3054\u78ba\u8a8d\u306e\u4e0a\u3001Java Developer Connection (http://java.sun.com/webapps/bugreport) \u306b\u3066\u30d0\u30b0\u306e\u767b\u9332\u3092\u304a\u9858\u3044\u3044\u305f\u3057\u307e\u3059\u3002\u30ec\u30dd\u30fc\u30c8\u306b\u306f\u3001\u305d\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3068\u4e0b\u8a18\u306e\u8a3a\u65ad\u5185\u5bb9\u3092\u542b\u3081\u3066\u304f\u3060\u3055\u3044\u3002\u3054\u5354\u529b\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\u3002 +javac.msg.bug=\u30B3\u30F3\u30D1\u30A4\u30E9\u3067\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F({0})\u3002Bug Parade\u306B\u540C\u3058\u30D0\u30B0\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u3053\u3068\u3092\u3054\u78BA\u8A8D\u306E\u4E0A\u3001Java Developer Connection(http://java.sun.com/webapps/bugreport)\u3067\u30D0\u30B0\u306E\u767B\u9332\u3092\u304A\u9858\u3044\u3044\u305F\u3057\u307E\u3059\u3002\u30EC\u30DD\u30FC\u30C8\u306B\u306F\u3001\u305D\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u3068\u4E0B\u8A18\u306E\u8A3A\u65AD\u5185\u5BB9\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u3054\u5354\u529B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002 + +javac.msg.io=\n\n\u5165\u51FA\u529B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\n\u8A73\u7D30\u306F\u6B21\u306E\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9\u3067\u8ABF\u67FB\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n -javac.msg.io=\n\n\u5165\u51fa\u529b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\n\u8a73\u7d30\u306f\u6b21\u306e\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u3067\u8abf\u67fb\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n +javac.msg.proc.annotation.uncaught.exception=\n\n\u6CE8\u91C8\u51E6\u7406\u3067\u6355\u6349\u3055\u308C\u306A\u3044\u4F8B\u5916\u304C\u30B9\u30ED\u30FC\u3055\u308C\u307E\u3057\u305F\u3002\n\u8A73\u7D30\u306F\u6B21\u306E\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9\u3067\u8ABF\u67FB\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n -javac.msg.proc.annotation.uncaught.exception=\n\n\u6ce8\u91c8\u51e6\u7406\u3067\u30ad\u30e3\u30c3\u30c1\u3055\u308c\u306a\u3044\u4f8b\u5916\u304c\u30b9\u30ed\u30fc\u3055\u308c\u307e\u3057\u305f\u3002\n\u8a73\u7d30\u306f\u6b21\u306e\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u3067\u8abf\u67fb\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n - -javac.msg.resource=\n\n\u30b7\u30b9\u30c6\u30e0\u30ea\u30bd\u30fc\u30b9\u304c\u4e0d\u8db3\u3057\u3066\u3044\u307e\u3059\u3002\n\u8a73\u7d30\u306f\u6b21\u306e\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u3067\u8abf\u67fb\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n +javac.msg.resource=\n\n\u30B7\u30B9\u30C6\u30E0\u30FB\u30EA\u30BD\u30FC\u30B9\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002\n\u8A73\u7D30\u306F\u6B21\u306E\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9\u3067\u8ABF\u67FB\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n javac.version={0} {1} -javac.fullVersion={0} \u30d5\u30eb\u30d0\u30fc\u30b8\u30e7\u30f3 "{1}" +javac.fullVersion={0}\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"{1}"
--- a/src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2009, 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 @@ -25,100 +25,101 @@ ## standard options -javac.opt.g=\u751f\u6210\u6240\u6709\u8c03\u8bd5\u4fe1\u606f -javac.opt.g.none=\u4e0d\u751f\u6210\u4efb\u4f55\u8c03\u8bd5\u4fe1\u606f -javac.opt.g.lines.vars.source=\u53ea\u751f\u6210\u67d0\u4e9b\u8c03\u8bd5\u4fe1\u606f -javac.opt.nowarn=\u4e0d\u751f\u6210\u4efb\u4f55\u8b66\u544a -javac.opt.verbose=\u8f93\u51fa\u6709\u5173\u7f16\u8bd1\u5668\u6b63\u5728\u6267\u884c\u7684\u64cd\u4f5c\u7684\u6d88\u606f -javac.opt.deprecation=\u8f93\u51fa\u4f7f\u7528\u5df2\u8fc7\u65f6\u7684 API \u7684\u6e90\u4f4d\u7f6e -javac.opt.classpath=\u6307\u5b9a\u67e5\u627e\u7528\u6237\u7c7b\u6587\u4ef6\u548c\u6ce8\u91ca\u5904\u7406\u7a0b\u5e8f\u7684\u4f4d\u7f6e -javac.opt.sourcepath=\u6307\u5b9a\u67e5\u627e\u8f93\u5165\u6e90\u6587\u4ef6\u7684\u4f4d\u7f6e -javac.opt.bootclasspath=\u8986\u76d6\u5f15\u5bfc\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e -javac.opt.Xbootclasspath.p=\u7f6e\u4e8e\u5f15\u5bfc\u7c7b\u8def\u5f84\u4e4b\u524d -javac.opt.Xbootclasspath.a=\u7f6e\u4e8e\u5f15\u5bfc\u7c7b\u8def\u5f84\u4e4b\u540e -javac.opt.endorseddirs=\u8986\u76d6\u7b7e\u540d\u7684\u6807\u51c6\u8def\u5f84\u7684\u4f4d\u7f6e -javac.opt.extdirs=\u8986\u76d6\u5b89\u88c5\u7684\u6269\u5c55\u76ee\u5f55\u7684\u4f4d\u7f6e -javac.opt.processorpath=\u6307\u5b9a\u67e5\u627e\u6ce8\u91ca\u5904\u7406\u7a0b\u5e8f\u7684\u4f4d\u7f6e -javac.opt.processor=\u8981\u8fd0\u884c\u7684\u6ce8\u91ca\u5904\u7406\u7a0b\u5e8f\u7684\u540d\u79f0\uff1b\u7ed5\u8fc7\u9ed8\u8ba4\u7684\u641c\u7d22\u8fdb\u7a0b -javac.opt.proc.none.only=\u63a7\u5236\u662f\u5426\u6267\u884c\u6ce8\u91ca\u5904\u7406\u548c/\u6216\u7f16\u8bd1\u3002 -javac.opt.d=\u6307\u5b9a\u5b58\u653e\u751f\u6210\u7684\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e -javac.opt.sourceDest=\u6307\u5b9a\u5b58\u653e\u751f\u6210\u7684\u6e90\u6587\u4ef6\u7684\u4f4d\u7f6e -javac.opt.J=\u76f4\u63a5\u5c06 <\u6807\u5fd7> \u4f20\u9012\u7ed9\u8fd0\u884c\u65f6\u7cfb\u7edf -javac.opt.encoding=\u6307\u5b9a\u6e90\u6587\u4ef6\u4f7f\u7528\u7684\u5b57\u7b26\u7f16\u7801 -javac.opt.target=\u751f\u6210\u7279\u5b9a VM \u7248\u672c\u7684\u7c7b\u6587\u4ef6 -javac.opt.source=\u63d0\u4f9b\u4e0e\u6307\u5b9a\u7248\u672c\u7684\u6e90\u517c\u5bb9\u6027 -javac.opt.Werror=\u51fa\u73b0\u8b66\u544a\u5219\u4e2d\u6b62\u7f16\u8bd1 -javac.opt.A=\u4f20\u9012\u7ed9\u6ce8\u91ca\u5904\u7406\u7a0b\u5e8f\u7684\u9009\u9879 -javac.opt.implicit=\u6307\u5b9a\u662f\u5426\u4e3a\u9690\u5f0f\u5f15\u7528\u6587\u4ef6\u751f\u6210\u7c7b\u6587\u4ef6 -javac.opt.arg.class=<class> +javac.opt.g=\u751F\u6210\u6240\u6709\u8C03\u8BD5\u4FE1\u606F +javac.opt.g.none=\u4E0D\u751F\u6210\u4EFB\u4F55\u8C03\u8BD5\u4FE1\u606F +javac.opt.g.lines.vars.source=\u53EA\u751F\u6210\u67D0\u4E9B\u8C03\u8BD5\u4FE1\u606F +javac.opt.nowarn=\u4E0D\u751F\u6210\u4EFB\u4F55\u8B66\u544A +javac.opt.verbose=\u8F93\u51FA\u6709\u5173\u7F16\u8BD1\u5668\u6B63\u5728\u6267\u884C\u7684\u64CD\u4F5C\u7684\u6D88\u606F +javac.opt.deprecation=\u8F93\u51FA\u4F7F\u7528\u5DF2\u8FC7\u65F6\u7684 API \u7684\u6E90\u4F4D\u7F6E +javac.opt.classpath=\u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u548C\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u7684\u4F4D\u7F6E +javac.opt.sourcepath=\u6307\u5B9A\u67E5\u627E\u8F93\u5165\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E +javac.opt.bootclasspath=\u8986\u76D6\u5F15\u5BFC\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E +javac.opt.Xbootclasspath.p=\u7F6E\u4E8E\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u4E4B\u524D +javac.opt.Xbootclasspath.a=\u7F6E\u4E8E\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u4E4B\u540E +javac.opt.endorseddirs=\u8986\u76D6\u7B7E\u540D\u7684\u6807\u51C6\u8DEF\u5F84\u7684\u4F4D\u7F6E +javac.opt.extdirs=\u8986\u76D6\u6240\u5B89\u88C5\u6269\u5C55\u7684\u4F4D\u7F6E +javac.opt.processorpath=\u6307\u5B9A\u67E5\u627E\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u7684\u4F4D\u7F6E +javac.opt.processor=\u8981\u8FD0\u884C\u7684\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u7684\u540D\u79F0; \u7ED5\u8FC7\u9ED8\u8BA4\u7684\u641C\u7D22\u8FDB\u7A0B +javac.opt.proc.none.only=\u63A7\u5236\u662F\u5426\u6267\u884C\u6CE8\u91CA\u5904\u7406\u548C/\u6216\u7F16\u8BD1\u3002 +javac.opt.d=\u6307\u5B9A\u653E\u7F6E\u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E +javac.opt.sourceDest=\u6307\u5B9A\u653E\u7F6E\u751F\u6210\u7684\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E +javac.opt.J=\u76F4\u63A5\u5C06 <\u6807\u8BB0> \u4F20\u9012\u7ED9\u8FD0\u884C\u65F6\u7CFB\u7EDF +javac.opt.encoding=\u6307\u5B9A\u6E90\u6587\u4EF6\u4F7F\u7528\u7684\u5B57\u7B26\u7F16\u7801 +javac.opt.target=\u751F\u6210\u7279\u5B9A VM \u7248\u672C\u7684\u7C7B\u6587\u4EF6 +javac.opt.source=\u63D0\u4F9B\u4E0E\u6307\u5B9A\u53D1\u884C\u7248\u7684\u6E90\u517C\u5BB9\u6027 +javac.opt.Werror=\u51FA\u73B0\u8B66\u544A\u65F6\u7EC8\u6B62\u7F16\u8BD1 +javac.opt.A=\u4F20\u9012\u7ED9\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u7684\u9009\u9879 +javac.opt.implicit=\u6307\u5B9A\u662F\u5426\u4E3A\u9690\u5F0F\u5F15\u7528\u6587\u4EF6\u751F\u6210\u7C7B\u6587\u4EF6 +javac.opt.pkginfo=\u6307\u5B9A package-info \u6587\u4EF6\u7684\u5904\u7406 +javac.opt.arg.class=<\u7C7B> javac.opt.arg.class.list=<class1>[,<class2>,<class3>...] -javac.opt.arg.flag=<\u6807\u5fd7> -javac.opt.arg.key.equals.value=key[=value] -javac.opt.arg.path=<\u8def\u5f84> -javac.opt.arg.dirs=<\u76ee\u5f55> -javac.opt.arg.directory=<\u76ee\u5f55> -javac.opt.arg.encoding=<\u7f16\u7801> -javac.opt.arg.release=<\u7248\u672c> -javac.opt.arg.number=<\u7f16\u53f7> +javac.opt.arg.flag=<\u6807\u8BB0> +javac.opt.arg.key.equals.value=\u5173\u952E\u5B57[=\u503C] +javac.opt.arg.path=<\u8DEF\u5F84> +javac.opt.arg.dirs=<\u76EE\u5F55> +javac.opt.arg.directory=<\u76EE\u5F55> +javac.opt.arg.encoding=<\u7F16\u7801> +javac.opt.arg.release=<\u53D1\u884C\u7248> +javac.opt.arg.number=<\u7F16\u53F7> ## extended options -javac.opt.maxerrs=\u8bbe\u7f6e\u8981\u8f93\u51fa\u7684\u9519\u8bef\u7684\u6700\u5927\u6570\u76ee -javac.opt.maxwarns=\u8bbe\u7f6e\u8981\u8f93\u51fa\u7684\u8b66\u544a\u7684\u6700\u5927\u6570\u76ee -javac.opt.nogj=\u8bed\u8a00\u4e2d\u4e0d\u63a5\u53d7\u6cdb\u578b -javac.opt.moreinfo=\u8f93\u51fa\u7c7b\u578b\u53d8\u91cf\u7684\u6269\u5c55\u4fe1\u606f -javac.opt.printflat=\u5728\u5185\u90e8\u7c7b\u8f6c\u6362\u4e4b\u540e\u8f93\u51fa\u62bd\u8c61\u8bed\u6cd5\u6811 -javac.opt.printsearch=\u8f93\u51fa\u6709\u5173\u641c\u7d22\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e\u7684\u4fe1\u606f -javac.opt.prompt=\u5728\u6bcf\u6b21\u51fa\u9519\u540e\u505c\u6b62 -javac.opt.retrofit=\u66f4\u65b0\u4f7f\u7528\u6cdb\u578b\u7684\u73b0\u6709\u7c7b\u6587\u4ef6 -javac.opt.s=\u53d1\u51fa java \u6e90\u800c\u4e0d\u662f\u7c7b\u6587\u4ef6 -javac.opt.scramble=\u5728\u5b57\u8282\u7801\u4e2d\u6df7\u6dc6\u4e13\u7528\u6807\u8bc6\u7b26 -javac.opt.scrambleall=\u5728\u5b57\u8282\u7801\u4e2d\u6df7\u6dc6\u8f6f\u4ef6\u5305\u53ef\u89c1\u6807\u8bc6\u7b26 -javac.opt.version=\u7248\u672c\u4fe1\u606f -javac.opt.arg.pathname=<\u8def\u5f84\u540d> -javac.opt.arg.file=<\u6587\u4ef6\u540d> -javac.opt.Xlint=\u542f\u7528\u5efa\u8bae\u7684\u8b66\u544a -javac.opt.Xlint.suboptlist=\u542f\u7528\u6216\u7981\u7528\u7279\u5b9a\u7684\u8b66\u544a -javac.opt.Xstdout=\u91cd\u5b9a\u5411\u6807\u51c6\u8f93\u51fa -javac.opt.X=\u8f93\u51fa\u975e\u6807\u51c6\u9009\u9879\u7684\u63d0\u8981 -javac.opt.help=\u8f93\u51fa\u6807\u51c6\u9009\u9879\u7684\u63d0\u8981 -javac.opt.print=\u8f93\u51fa\u6307\u5b9a\u7c7b\u578b\u7684\u6587\u672c\u8868\u793a -javac.opt.printRounds=\u8f93\u51fa\u6709\u5173\u6ce8\u91ca\u5904\u7406\u5faa\u73af\u7684\u4fe1\u606f -javac.opt.printProcessorInfo=\u8f93\u51fa\u6709\u5173\u8bf7\u6c42\u5904\u7406\u7a0b\u5e8f\u5904\u7406\u54ea\u4e9b\u6ce8\u91ca\u7684\u4fe1\u606f -javac.opt.prefer=\u6307\u5b9a\u8bfb\u53d6\u6587\u4ef6\uff0c\u5f53\u540c\u65f6\u627e\u5230\u9690\u5f0f\u7f16\u8bd1\u7c7b\u7684\u6e90\u6587\u4ef6\u548c\u7c7b\u6587\u4ef6\u65f6 +javac.opt.maxerrs=\u8BBE\u7F6E\u8981\u8F93\u51FA\u7684\u9519\u8BEF\u7684\u6700\u5927\u6570\u76EE +javac.opt.maxwarns=\u8BBE\u7F6E\u8981\u8F93\u51FA\u7684\u8B66\u544A\u7684\u6700\u5927\u6570\u76EE +javac.opt.nogj=\u8BED\u8A00\u4E2D\u4E0D\u63A5\u53D7\u6CDB\u578B +javac.opt.moreinfo=\u8F93\u51FA\u7C7B\u578B\u53D8\u91CF\u7684\u6269\u5C55\u4FE1\u606F +javac.opt.printflat=\u5728\u5185\u90E8\u7C7B\u8F6C\u6362\u4E4B\u540E\u8F93\u51FA\u62BD\u8C61\u8BED\u6CD5\u6811 +javac.opt.printsearch=\u8F93\u51FA\u6709\u5173\u641C\u7D22\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\u7684\u4FE1\u606F +javac.opt.prompt=\u5728\u6BCF\u6B21\u51FA\u9519\u540E\u505C\u6B62 +javac.opt.retrofit=\u66F4\u65B0\u4F7F\u7528\u6CDB\u578B\u7684\u73B0\u6709\u7C7B\u6587\u4EF6 +javac.opt.s=\u53D1\u51FA java \u6E90\u800C\u4E0D\u662F\u7C7B\u6587\u4EF6 +javac.opt.scramble=\u5728\u5B57\u8282\u7801\u4E2D\u6DF7\u6DC6\u4E13\u7528\u6807\u8BC6\u7B26 +javac.opt.scrambleall=\u5728\u5B57\u8282\u7801\u4E2D\u6DF7\u6DC6\u7A0B\u5E8F\u5305\u53EF\u89C1\u6807\u8BC6\u7B26 +javac.opt.version=\u7248\u672C\u4FE1\u606F +javac.opt.arg.pathname=<\u8DEF\u5F84\u540D> +javac.opt.arg.file=<\u6587\u4EF6\u540D> +javac.opt.Xlint=\u542F\u7528\u5EFA\u8BAE\u7684\u8B66\u544A +javac.opt.Xlint.suboptlist=\u542F\u7528\u6216\u7981\u7528\u7279\u5B9A\u7684\u8B66\u544A +javac.opt.Xstdout=\u91CD\u5B9A\u5411\u6807\u51C6\u8F93\u51FA +javac.opt.X=\u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u63D0\u8981 +javac.opt.help=\u8F93\u51FA\u6807\u51C6\u9009\u9879\u7684\u63D0\u8981 +javac.opt.print=\u8F93\u51FA\u6307\u5B9A\u7C7B\u578B\u7684\u6587\u672C\u8868\u793A +javac.opt.printRounds=\u8F93\u51FA\u6709\u5173\u6CE8\u91CA\u5904\u7406\u5FAA\u73AF\u7684\u4FE1\u606F +javac.opt.printProcessorInfo=\u8F93\u51FA\u6709\u5173\u8BF7\u6C42\u5904\u7406\u7A0B\u5E8F\u5904\u7406\u54EA\u4E9B\u6CE8\u91CA\u7684\u4FE1\u606F +javac.opt.prefer=\u6307\u5B9A\u8BFB\u53D6\u6587\u4EF6, \u5F53\u540C\u65F6\u627E\u5230\u9690\u5F0F\u7F16\u8BD1\u7C7B\u7684\u6E90\u6587\u4EF6\u548C\u7C7B\u6587\u4EF6\u65F6 ## errors -javac.err.empty.A.argument=-A \u9700\u8981\u4e00\u4e2a\u53c2\u6570\uff1b\u4f7f\u7528 ''-Akey'' \u6216 ''-Akey=value'' -javac.err.invalid.arg=\u65e0\u6548\u7684\u53c2\u6570\uff1a {0} -javac.err.invalid.A.key=\u6ce8\u91ca\u5904\u7406\u5668\u9009\u9879"{0}"\u4e2d\u7684\u5173\u952e\u5b57\u4e0d\u662f\u4ee5\u70b9\u5206\u9694\u7684\u6807\u8bc6\u7b26\u5e8f\u5217 -javac.err.invalid.flag=\u65e0\u6548\u7684\u6807\u5fd7\uff1a {0} -javac.err.invalid.target=\u65e0\u6548\u7684\u76ee\u6807\u7248\u672c\uff1a {0} -javac.err.no.source.files=\u65e0\u6e90\u6587\u4ef6 -javac.err.req.arg={0} \u9700\u8981\u53c2\u6570 -javac.err.invalid.source=\u65e0\u6548\u7684\u6e90\u7248\u672c\uff1a {0} -javac.err.error.writing.file=\u5199\u5165 {0} \u65f6\u51fa\u9519\uff1b{1} -javac.warn.source.target.conflict=\u6e90\u7248\u672c {0} \u9700\u8981\u76ee\u6807\u7248\u672c {1} -javac.warn.target.default.source.conflict=\u76ee\u6807\u7248\u672c {0} \u4e0e\u9ed8\u8ba4\u7684\u6e90\u7248\u672c {1} \u51b2\u7a81 -javac.err.dir.not.found=\u627e\u4e0d\u5230\u76ee\u5f55: {0} -javac.err.file.not.found=\u627e\u4e0d\u5230\u6587\u4ef6\uff1a {0} -javac.err.file.not.directory=\u4e0d\u662f\u76ee\u5f55: {0} -javac.err.file.not.file=\u4e0d\u662f\u6587\u4ef6: {0} +javac.err.empty.A.argument=-A \u9700\u8981\u4E00\u4E2A\u53C2\u6570; \u4F7F\u7528 ''-Akey'' \u6216 ''-Akey=value'' +javac.err.invalid.arg=\u65E0\u6548\u7684\u53C2\u6570: {0} +javac.err.invalid.A.key=\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u9009\u9879 ''{0}'' \u4E2D\u7684\u5173\u952E\u5B57\u4E0D\u662F\u4EE5\u70B9\u5206\u9694\u7684\u6807\u8BC6\u7B26\u5E8F\u5217 +javac.err.invalid.flag=\u65E0\u6548\u7684\u6807\u8BB0: {0} +javac.err.invalid.target=\u65E0\u6548\u7684\u76EE\u6807\u53D1\u884C\u7248: {0} +javac.err.no.source.files=\u65E0\u6E90\u6587\u4EF6 +javac.err.req.arg={0}\u9700\u8981\u53C2\u6570 +javac.err.invalid.source=\u65E0\u6548\u7684\u6E90\u53D1\u884C\u7248: {0} +javac.err.error.writing.file=\u5199\u5165{0}\u65F6\u51FA\u9519; {1} +javac.warn.source.target.conflict=\u6E90\u53D1\u884C\u7248 {0} \u9700\u8981\u76EE\u6807\u53D1\u884C\u7248 {1} +javac.warn.target.default.source.conflict=\u76EE\u6807\u53D1\u884C\u7248 {0} \u4E0E\u9ED8\u8BA4\u7684\u6E90\u53D1\u884C\u7248 {1} \u51B2\u7A81 +javac.err.dir.not.found=\u627E\u4E0D\u5230\u76EE\u5F55: {0} +javac.err.file.not.found=\u627E\u4E0D\u5230\u6587\u4EF6: {0} +javac.err.file.not.directory=\u4E0D\u662F\u76EE\u5F55: {0} +javac.err.file.not.file=\u4E0D\u662F\u6587\u4EF6: {0} ## messages -javac.msg.usage.header=\u7528\u6cd5\uff1a{0} <\u9009\u9879> <\u6e90\u6587\u4ef6>\n\u5176\u4e2d\uff0c\u53ef\u80fd\u7684\u9009\u9879\u5305\u62ec\uff1a +javac.msg.usage.header=\u7528\u6CD5: {0} <options> <source files>\n\u5176\u4E2D, \u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC: -javac.msg.usage=\u7528\u6cd5: {0} <options> <source files>\n-help \u7528\u4e8e\u5217\u51fa\u53ef\u80fd\u7684\u9009\u9879 +javac.msg.usage=\u7528\u6CD5: {0} <options> <source files>\n-help \u7528\u4E8E\u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879 + +javac.msg.usage.nonstandard.footer=\u8FD9\u4E9B\u9009\u9879\u90FD\u662F\u975E\u6807\u51C6\u9009\u9879, \u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002 -javac.msg.usage.nonstandard.footer=\u8fd9\u4e9b\u9009\u9879\u90fd\u662f\u975e\u6807\u51c6\u9009\u9879\uff0c\u5982\u6709\u66f4\u6539\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002 - -javac.msg.bug=\u7f16\u8bd1\u5668 ({0}) \u4e2d\u51fa\u73b0\u5f02\u5e38\u3002 \u5982\u679c\u5728 Bug Parade \u4e2d\u6ca1\u6709\u627e\u5230\u8be5\u9519\u8bef\uff0c\u8bf7\u5728 Java Developer Connection (http://java.sun.com/webapps/bugreport) \u5bf9\u8be5\u9519\u8bef\u8fdb\u884c\u5f52\u6863\u3002 \u8bf7\u5728\u62a5\u544a\u4e2d\u9644\u4e0a\u60a8\u7684\u7a0b\u5e8f\u548c\u4ee5\u4e0b\u8bca\u65ad\u4fe1\u606f\u3002\u8c22\u8c22\u60a8\u7684\u5408\u4f5c\u3002 +javac.msg.bug=\u7F16\u8BD1\u5668 ({0}) \u4E2D\u51FA\u73B0\u5F02\u5E38\u9519\u8BEF\u3002 \u5982\u679C\u5728 Bug Parade \u4E2D\u6CA1\u6709\u627E\u5230\u8BE5\u9519\u8BEF, \u8BF7\u5728 Java Developer Connection (http://java.sun.com/webapps/bugreport) \u4E2D\u5EFA\u7ACB Bug\u3002\u8BF7\u5728\u62A5\u544A\u4E2D\u9644\u4E0A\u60A8\u7684\u7A0B\u5E8F\u548C\u4EE5\u4E0B\u8BCA\u65AD\u4FE1\u606F\u3002\u8C22\u8C22\u3002 + +javac.msg.io=\n\n\u53D1\u751F\u8F93\u5165/\u8F93\u51FA\u9519\u8BEF\u3002\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605\u4EE5\u4E0B\u5806\u6808\u8DDF\u8E2A\u3002\n -javac.msg.io=\n\n\u53d1\u751f\u8f93\u5165/\u8f93\u51fa\u9519\u8bef\u3002\n\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u4ee5\u4e0b\u5806\u6808\u8ffd\u8e2a\u3002\n +javac.msg.proc.annotation.uncaught.exception=\n\n\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u629B\u51FA\u672A\u6355\u83B7\u7684\u5F02\u5E38\u9519\u8BEF\u3002\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605\u4EE5\u4E0B\u5806\u6808\u8DDF\u8E2A\u3002\n -javac.msg.proc.annotation.uncaught.exception=\n\n\u6ce8\u91ca\u5904\u7406\u7a0b\u5e8f\u629b\u51fa\u672a\u6355\u83b7\u7684\u5f02\u5e38\u3002\n\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u4ee5\u4e0b\u5806\u6808\u8ffd\u8e2a\u3002\n - -javac.msg.resource=\n\n\u7cfb\u7edf\u8d44\u6e90\u4e0d\u8db3\u3002\n\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u4ee5\u4e0b\u5806\u6808\u8ffd\u8e2a\u3002\n +javac.msg.resource=\n\n\u7CFB\u7EDF\u8D44\u6E90\u4E0D\u8DB3\u3002\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605\u4EE5\u4E0B\u5806\u6808\u8DDF\u8E2A\u3002\n javac.version={0} {1} -javac.fullVersion={0} \u5b8c\u6574\u7248\u672c "{1}" +javac.fullVersion={0}\u5B8C\u6574\u7248\u672C "{1}"
--- a/src/share/classes/com/sun/tools/javac/tree/JCTree.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/tree/JCTree.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -465,9 +465,10 @@ public List<JCImport> getImports() { ListBuffer<JCImport> imports = new ListBuffer<JCImport>(); for (JCTree tree : defs) { - if (tree.getTag() == IMPORT) + int tag = tree.getTag(); + if (tag == IMPORT) imports.append((JCImport)tree); - else + else if (tag != SKIP) break; } return imports.toList(); @@ -640,7 +641,6 @@ public JCExpression restype; public List<JCTypeParameter> typarams; public List<JCVariableDecl> params; - public List<JCTypeAnnotation> receiverAnnotations; public List<JCExpression> thrown; public JCBlock body; public JCExpression defaultValue; // for annotation types @@ -650,7 +650,6 @@ JCExpression restype, List<JCTypeParameter> typarams, List<JCVariableDecl> params, - List<JCTypeAnnotation> receiver, List<JCExpression> thrown, JCBlock body, JCExpression defaultValue, @@ -661,7 +660,6 @@ this.restype = restype; this.typarams = typarams; this.params = params; - this.receiverAnnotations = (receiver != null ? receiver : List.<JCTypeAnnotation>nil()); this.thrown = thrown; this.body = body; this.defaultValue = defaultValue; @@ -680,7 +678,6 @@ public List<JCVariableDecl> getParameters() { return params; } - public List<JCTypeAnnotation> getReceiverAnnotations() { return receiverAnnotations; } public List<JCExpression> getThrows() { return thrown; } @@ -1402,8 +1399,6 @@ public static class JCNewArray extends JCExpression implements NewArrayTree { public JCExpression elemtype; public List<JCExpression> dims; - public List<JCTypeAnnotation> annotations; - public List<List<JCTypeAnnotation>> dimAnnotations; public List<JCExpression> elems; protected JCNewArray(JCExpression elemtype, List<JCExpression> dims, @@ -1411,8 +1406,6 @@ { this.elemtype = elemtype; this.dims = dims; - this.annotations = List.nil(); - this.dimAnnotations = List.nil(); this.elems = elems; } @Override @@ -1923,11 +1916,9 @@ public static class JCTypeParameter extends JCTree implements TypeParameterTree { public Name name; public List<JCExpression> bounds; - public List<JCTypeAnnotation> annotations; - protected JCTypeParameter(Name name, List<JCExpression> bounds, List<JCTypeAnnotation> annotations) { + protected JCTypeParameter(Name name, List<JCExpression> bounds) { this.name = name; this.bounds = bounds; - this.annotations = annotations; } @Override public void accept(Visitor v) { v.visitTypeParameter(this); } @@ -1937,9 +1928,6 @@ public List<JCExpression> getBounds() { return bounds; } - public List<JCTypeAnnotation> getAnnotations() { - return annotations; - } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitTypeParameter(this, d); @@ -2030,16 +2018,6 @@ } } - public static class JCTypeAnnotation extends JCAnnotation { - public TypeAnnotationPosition annotation_position; - public Attribute.TypeCompound attribute_field; - - protected JCTypeAnnotation(JCTree annotationType, List<JCExpression> args) { - super(annotationType, args); - this.annotation_position = new TypeAnnotationPosition(); - } - } - public static class JCModifiers extends JCTree implements com.sun.source.tree.ModifiersTree { public long flags; public List<JCAnnotation> annotations; @@ -2067,40 +2045,6 @@ } } - public static class JCAnnotatedType extends JCExpression -//308 implements com.sun.source.tree.AnnotatedTypeTree - { - public List<JCTypeAnnotation> annotations; - public JCExpression underlyingType; - protected JCAnnotatedType(List<JCTypeAnnotation> annotations, JCExpression underlyingType) { - throw new UnsupportedOperationException(); -//308 this.annotations = annotations; -//308 this.underlyingType = underlyingType; - } - @Override - public void accept(Visitor v) { v.visitAnnotatedType(this); } - - public Kind getKind() { - throw new UnsupportedOperationException(); -//308 return Kind.ANNOTATED_TYPE; - } - public List<JCTypeAnnotation> getAnnotations() { - return annotations; - } - public JCExpression getUnderlyingType() { - return underlyingType; - } - @Override - public <R,D> R accept(TreeVisitor<R,D> v, D d) { - throw new UnsupportedOperationException(); -//308 return v.visitAnnotatedType(this, d); - } - @Override - public int getTag() { - return ANNOTATED_TYPE; - } - } - public static class JCErroneous extends JCExpression implements com.sun.source.tree.ErroneousTree { public List<? extends JCTree> errs; @@ -2168,7 +2112,6 @@ JCExpression restype, List<JCTypeParameter> typarams, List<JCVariableDecl> params, - List<JCTypeAnnotation> receiver, List<JCExpression> thrown, JCBlock body, JCExpression defaultValue); @@ -2290,11 +2233,10 @@ public void visitTypeBoundKind(TypeBoundKind that) { visitTree(that); } public void visitAnnotation(JCAnnotation that) { visitTree(that); } public void visitModifiers(JCModifiers that) { visitTree(that); } - public void visitAnnotatedType(JCAnnotatedType that) { visitTree(that); } public void visitErroneous(JCErroneous that) { visitTree(that); } public void visitLetExpr(LetExpr that) { visitTree(that); } - public void visitTree(JCTree that) { assert false; } + public void visitTree(JCTree that) { Assert.error(); } } }
--- a/src/share/classes/com/sun/tools/javac/tree/Pretty.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/tree/Pretty.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -224,15 +224,6 @@ } } - public void printTypeAnnotations(List<JCTypeAnnotation> trees) throws IOException { - if (trees.nonEmpty()) - print(" "); - for (List<JCTypeAnnotation> l = trees; l.nonEmpty(); l = l.tail) { - printExpr(l.head); - print(" "); - } - } - /** Print documentation comment, if it exists * @param tree The tree for which a documentation comment should be printed. */ @@ -890,33 +881,21 @@ try { if (tree.elemtype != null) { print("new "); - printTypeAnnotations(tree.annotations); JCTree elem = tree.elemtype; - printBaseElementType(elem); - boolean isElemAnnoType = elem instanceof JCAnnotatedType; - int i = 0; - List<List<JCTypeAnnotation>> da = tree.dimAnnotations; + if (elem.getTag() == JCTree.TYPEARRAY) + printBaseElementType((JCArrayTypeTree) elem); + else + printExpr(elem); for (List<JCExpression> l = tree.dims; l.nonEmpty(); l = l.tail) { - if (da.size() > i) { - printTypeAnnotations(da.get(i)); - } print("["); - i++; printExpr(l.head); print("]"); } - if (tree.elems != null) { - if (isElemAnnoType) { - printTypeAnnotations(((JCAnnotatedType)tree.elemtype).annotations); - } - print("[]"); - } - if (isElemAnnoType) - elem = ((JCAnnotatedType)elem).underlyingType; if (elem instanceof JCArrayTypeTree) printBrackets((JCArrayTypeTree) elem); } if (tree.elems != null) { + if (tree.elemtype != null) print("[]"); print("{"); printExprs(tree.elems); print("}"); @@ -1173,11 +1152,6 @@ JCTree elem; while (true) { elem = tree.elemtype; - if (elem.getTag() == JCTree.ANNOTATED_TYPE) { - JCAnnotatedType atype = (JCAnnotatedType) elem; - printTypeAnnotations(atype.annotations); - elem = atype.underlyingType; - } print("[]"); if (elem.getTag() != JCTree.TYPEARRAY) break; tree = (JCArrayTypeTree) elem; @@ -1272,15 +1246,6 @@ } } - public void visitAnnotatedType(JCAnnotatedType tree) { - try { - printTypeAnnotations(tree.annotations); - printExpr(tree.underlyingType); - } catch (IOException e) { - throw new UncheckedIOException(e); - } - } - public void visitTree(JCTree tree) { try { print("(UNKNOWN: " + tree + ")");
--- a/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2011, 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 @@ -71,13 +71,6 @@ return lb.toList(); } -//308 public JCTree visitAnnotatedType(AnnotatedTypeTree node, P p) { -//308 JCAnnotatedType t = (JCAnnotatedType) node; -//308 List<JCTypeAnnotation> annotations = copy(t.annotations, p); -//308 JCExpression underlyingType = copy(t.underlyingType, p); -//308 return M.at(t.pos).AnnotatedType(annotations, underlyingType); -//308 } - public JCTree visitAnnotation(AnnotationTree node, P p) { JCAnnotation t = (JCAnnotation) node; JCTree annotationType = copy(t.annotationType, p); @@ -240,11 +233,10 @@ JCExpression restype = copy(t.restype, p); List<JCTypeParameter> typarams = copy(t.typarams, p); List<JCVariableDecl> params = copy(t.params, p); - List<JCTypeAnnotation> receiver = copy(t.receiverAnnotations, p); List<JCExpression> thrown = copy(t.thrown, p); JCBlock body = copy(t.body, p); JCExpression defaultValue = copy(t.defaultValue, p); - return M.at(t.pos).MethodDef(mods, t.name, restype, typarams, params, receiver, thrown, body, defaultValue); + return M.at(t.pos).MethodDef(mods, t.name, restype, typarams, params, thrown, body, defaultValue); } public JCTree visitMethodInvocation(MethodInvocationTree node, P p) { @@ -372,9 +364,8 @@ public JCTree visitTypeParameter(TypeParameterTree node, P p) { JCTypeParameter t = (JCTypeParameter) node; - List<JCTypeAnnotation> annos = copy(t.annotations, p); List<JCExpression> bounds = copy(t.bounds, p); - return M.at(t.pos).TypeParameter(t.name, bounds, annos); + return M.at(t.pos).TypeParameter(t.name, bounds); } public JCTree visitInstanceOf(InstanceOfTree node, P p) {
--- a/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -311,12 +311,6 @@ case(JCTree.POSTINC): case(JCTree.POSTDEC): return getStartPos(((JCUnary) tree).arg); - case(JCTree.ANNOTATED_TYPE): { - JCAnnotatedType node = (JCAnnotatedType) tree; - if (node.annotations.nonEmpty()) - return getStartPos(node.annotations.head); - return getStartPos(node.underlyingType); - } case(JCTree.NEWCLASS): { JCNewClass node = (JCNewClass)tree; if (node.encl != null) @@ -420,8 +414,6 @@ return getEndPos(((JCUnary) tree).arg, endPositions); case(JCTree.WHILELOOP): return getEndPos(((JCWhileLoop) tree).body, endPositions); - case(JCTree.ANNOTATED_TYPE): - return getEndPos(((JCAnnotatedType) tree).underlyingType, endPositions); case(JCTree.ERRONEOUS): { JCErroneous node = (JCErroneous)tree; if (node.errs != null && node.errs.nonEmpty()) @@ -453,7 +445,7 @@ public static int finalizerPos(JCTree tree) { if (tree.getTag() == JCTree.TRY) { JCTry t = (JCTry) tree; - assert t.finalizer != null; + Assert.checkNonNull(t.finalizer); return firstStatPos(t.finalizer); } else if (tree.getTag() == JCTree.SYNCHRONIZED) { return endPos(((JCSynchronized) tree).body); @@ -909,8 +901,6 @@ */ public static JCExpression typeIn(JCExpression tree) { switch (tree.getTag()) { - case JCTree.ANNOTATED_TYPE: - return ((JCAnnotatedType)tree).underlyingType; case JCTree.IDENT: /* simple names */ case JCTree.TYPEIDENT: /* primitive name */ case JCTree.SELECT: /* qualified name */ @@ -930,8 +920,6 @@ return innermostType(((JCArrayTypeTree)type).elemtype); case JCTree.WILDCARD: return innermostType(((JCWildcard)type).inner); - case JCTree.ANNOTATED_TYPE: - return innermostType(((JCAnnotatedType)type).underlyingType); default: return type; }
--- a/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -122,15 +122,15 @@ public JCCompilationUnit TopLevel(List<JCAnnotation> packageAnnotations, JCExpression pid, List<JCTree> defs) { - assert packageAnnotations != null; + Assert.checkNonNull(packageAnnotations); for (JCTree node : defs) - assert node instanceof JCClassDecl + Assert.check(node instanceof JCClassDecl || node instanceof JCImport || node instanceof JCSkip || node instanceof JCErroneous || (node instanceof JCExpressionStatement - && ((JCExpressionStatement)node).expr instanceof JCErroneous) - : node.getClass().getSimpleName(); + && ((JCExpressionStatement)node).expr instanceof JCErroneous), + node.getClass().getSimpleName()); JCCompilationUnit tree = new JCCompilationUnit(packageAnnotations, pid, defs, null, null, null, null); tree.pos = pos; @@ -169,27 +169,11 @@ List<JCExpression> thrown, JCBlock body, JCExpression defaultValue) { - return MethodDef( - mods, name, restype, typarams, params, - null, thrown, body, defaultValue); - } - - public JCMethodDecl MethodDef(JCModifiers mods, - Name name, - JCExpression restype, - List<JCTypeParameter> typarams, - List<JCVariableDecl> params, - List<JCTypeAnnotation> receiver, - List<JCExpression> thrown, - JCBlock body, - JCExpression defaultValue) - { JCMethodDecl tree = new JCMethodDecl(mods, name, restype, typarams, params, - receiver, thrown, body, defaultValue, @@ -458,11 +442,7 @@ } public JCTypeParameter TypeParameter(Name name, List<JCExpression> bounds) { - return TypeParameter(name, bounds, List.<JCTypeAnnotation>nil()); - } - - public JCTypeParameter TypeParameter(Name name, List<JCExpression> bounds, List<JCTypeAnnotation> annos) { - JCTypeParameter tree = new JCTypeParameter(name, bounds, annos); + JCTypeParameter tree = new JCTypeParameter(name, bounds); tree.pos = pos; return tree; } @@ -485,12 +465,6 @@ return tree; } - public JCTypeAnnotation TypeAnnotation(JCTree annotationType, List<JCExpression> args) { - JCTypeAnnotation tree = new JCTypeAnnotation(annotationType, args); - tree.pos = pos; - return tree; - } - public JCModifiers Modifiers(long flags, List<JCAnnotation> annotations) { JCModifiers tree = new JCModifiers(flags, annotations); boolean noFlags = (flags & (Flags.ModifierFlags | Flags.ANNOTATION)) == 0; @@ -502,12 +476,6 @@ return Modifiers(flags, List.<JCAnnotation>nil()); } - public JCAnnotatedType AnnotatedType(List<JCTypeAnnotation> annotations, JCExpression underlyingType) { - JCAnnotatedType tree = new JCAnnotatedType(annotations, underlyingType); - tree.pos = pos; - return tree; - } - public JCErroneous Erroneous() { return Erroneous(List.<JCTree>nil()); } @@ -679,19 +647,14 @@ } return tp.setType(t); } -//where - private JCExpression Selectors(JCExpression base, Symbol sym, Symbol limit) { - if (sym == limit) return base; - else return Select(Selectors(base, sym.owner, limit), sym); - } /** Create a list of trees representing given list of types. */ public List<JCExpression> Types(List<Type> ts) { - ListBuffer<JCExpression> types = new ListBuffer<JCExpression>(); + ListBuffer<JCExpression> lb = new ListBuffer<JCExpression>(); for (List<Type> l = ts; l.nonEmpty(); l = l.tail) - types.append(Type(l.head)); - return types.toList(); + lb.append(Type(l.head)); + return lb.toList(); } /** Create a variable definition from a variable symbol and an initializer @@ -821,7 +784,6 @@ Type(mtype.getReturnType()), TypeParams(mtype.getTypeArguments()), Params(mtype.getParameterTypes(), m), - null, Types(mtype.getThrownTypes()), body, null,
--- a/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -85,7 +85,6 @@ scan(tree.restype); scan(tree.typarams); scan(tree.params); - scan(tree.receiverAnnotations); scan(tree.thrown); scan(tree.defaultValue); scan(tree.body); @@ -208,11 +207,8 @@ } public void visitNewArray(JCNewArray tree) { - scan(tree.annotations); scan(tree.elemtype); scan(tree.dims); - for (List<JCTypeAnnotation> annos : tree.dimAnnotations) - scan(annos); scan(tree.elems); } @@ -281,7 +277,6 @@ } public void visitTypeParameter(JCTypeParameter tree) { - scan(tree.annotations); scan(tree.bounds); } @@ -305,11 +300,6 @@ scan(tree.args); } - public void visitAnnotatedType(JCAnnotatedType tree) { - scan(tree.annotations); - scan(tree.underlyingType); - } - public void visitErroneous(JCErroneous tree) { } @@ -319,6 +309,6 @@ } public void visitTree(JCTree tree) { - assert false; + Assert.error(); } }
--- a/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -283,11 +283,6 @@ } public void visitNewArray(JCNewArray tree) { - tree.annotations = translate(tree.annotations); - List<List<JCTypeAnnotation>> dimAnnos = List.nil(); - for (List<JCTypeAnnotation> origDimAnnos : tree.dimAnnotations) - dimAnnos = dimAnnos.append(translate(origDimAnnos)); - tree.dimAnnotations = dimAnnos; tree.elemtype = translate(tree.elemtype); tree.dims = translate(tree.dims); tree.elems = translate(tree.elems); @@ -374,7 +369,6 @@ } public void visitTypeParameter(JCTypeParameter tree) { - tree.annotations = translate(tree.annotations); tree.bounds = translate(tree.bounds); result = tree; } @@ -412,12 +406,6 @@ result = tree; } - public void visitAnnotatedType(JCAnnotatedType tree) { - tree.annotations = translate(tree.annotations); - tree.underlyingType = translate(tree.underlyingType); - result = tree; - } - public void visitTree(JCTree tree) { throw new AssertionError(tree); }
--- a/src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2011, 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 @@ -117,7 +117,7 @@ protected abstract String formatDiagnostic(JCDiagnostic d, Locale locale); public String formatPosition(JCDiagnostic d, PositionKind pk,Locale l) { - assert (d.getPosition() != Position.NOPOS); + Assert.check(d.getPosition() != Position.NOPOS); return String.valueOf(getPosition(d, pk)); } //where
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/com/sun/tools/javac/util/Assert.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.tools.javac.util; + + +/** + * Simple facility for unconditional assertions. + * The methods in this class are described in terms of equivalent assert + * statements, assuming that assertions have been enabled. + * + * <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. + * This code and its internal interfaces are subject to change or + * deletion without notice.</b> + */ +public class Assert { + /** Equivalent to + * assert cond; + */ + public static void check(boolean cond) { + if (!cond) + error(); + } + + /** Equivalent to + * assert (o == null); + */ + public static void checkNull(Object o) { + if (o != null) + error(); + } + + /** Equivalent to + * assert (t != null); return t; + */ + public static <T> T checkNonNull(T t) { + if (t == null) + error(); + return t; + } + + /** Equivalent to + * assert cond : value; + */ + public static void check(boolean cond, int value) { + if (!cond) + error(String.valueOf(value)); + } + + /** Equivalent to + * assert cond : value; + */ + public static void check(boolean cond, long value) { + if (!cond) + error(String.valueOf(value)); + } + + /** Equivalent to + * assert cond : value; + */ + public static void check(boolean cond, Object value) { + if (!cond) + error(String.valueOf(value)); + } + + /** Equivalent to + * assert cond : value; + */ + public static void check(boolean cond, String msg) { + if (!cond) + error(msg); + } + + /** Equivalent to + * assert (o == null) : value; + */ + public static void checkNull(Object o, Object value) { + if (o != null) + error(String.valueOf(value)); + } + + /** Equivalent to + * assert (o == null) : value; + */ + public static void checkNull(Object o, String msg) { + if (o != null) + error(msg); + } + + /** Equivalent to + * assert (o != null) : value; + */ + public static <T> T checkNonNull(T t, String msg) { + if (t == null) + error(msg); + return t; + } + + /** Equivalent to + * assert false; + */ + public static void error() { + throw new AssertionError(); + } + + /** Equivalent to + * assert false : msg; + */ + public static void error(String msg) { + throw new AssertionError(msg); + } + + /** Prevent instantiation. */ + private Assert() { } +}
--- a/src/share/classes/com/sun/tools/javac/util/Bits.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/util/Bits.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -85,7 +85,7 @@ /** Include x in this set. */ public void incl(int x) { - assert x >= 0; + Assert.check(x >= 0); sizeTo((x >>> wordshift) + 1); bits[x >>> wordshift] = bits[x >>> wordshift] | (1 << (x & wordmask)); @@ -113,7 +113,7 @@ /** Exclude x from this set. */ public void excl(int x) { - assert x >= 0; + Assert.check(x >= 0); sizeTo((x >>> wordshift) + 1); bits[x >>> wordshift] = bits[x >>> wordshift] & ~(1 << (x & wordmask)); @@ -169,7 +169,7 @@ * Delight" by Henry S. Warren Jr. (figure 5-13) */ private static int trailingZeroBits(int x) { - assert wordlen == 32; + Assert.check(wordlen == 32); if (x == 0) return 32; int n = 1; if ((x & 0xffff) == 0) { n += 16; x >>>= 16; }
--- a/src/share/classes/com/sun/tools/javac/util/Context.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/util/Context.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -145,7 +145,7 @@ o = fac.make(); if (o instanceof Factory<?>) throw new AssertionError("T extends Context.Factory"); - assert ht.get(key) == o; + Assert.check(ht.get(key) == o); } /* The following cast can't fail unless there was
--- a/src/share/classes/com/sun/tools/javac/util/List.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/util/List.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -184,7 +184,7 @@ // return this.prependList(xs.tail).prepend(xs.head); List<A> result = this; List<A> rev = xs.reverse(); - assert rev != xs; + Assert.check(rev != xs); // since xs.reverse() returned a new list, we can reuse the // individual List objects, instead of allocating new ones. while (rev.nonEmpty()) {
--- a/src/share/classes/com/sun/tools/javac/util/Names.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/util/Names.java Sat Apr 09 00:45:10 2011 +0100 @@ -73,8 +73,8 @@ public final Name java_io_Serializable; public final Name serialVersionUID; public final Name java_lang_Enum; - public final Name java_dyn_MethodHandle; - public final Name java_dyn_InvokeDynamic; + public final Name transient_java_dyn_MethodHandle; // transient - 292 + public final Name java_lang_invoke_MethodHandle; public final Name package_info; public final Name ConstantValue; public final Name LineNumberTable; @@ -115,7 +115,6 @@ public final Name value; public final Name getMessage; public final Name getClass; - public final Name invoke; //allowTransitionalJSR292 only public final Name TYPE; public final Name TYPE_USE; public final Name TYPE_PARAMETER; @@ -185,8 +184,8 @@ java_lang_Cloneable = fromString("java.lang.Cloneable"); java_io_Serializable = fromString("java.io.Serializable"); java_lang_Enum = fromString("java.lang.Enum"); - java_dyn_MethodHandle = fromString("java.dyn.MethodHandle"); - java_dyn_InvokeDynamic = fromString("java.dyn.InvokeDynamic"); + transient_java_dyn_MethodHandle = fromString("java.dyn.MethodHandle"); //transient - 292 + java_lang_invoke_MethodHandle = fromString("java.lang.invoke.MethodHandle"); package_info = fromString("package-info"); serialVersionUID = fromString("serialVersionUID"); ConstantValue = fromString("ConstantValue"); @@ -230,7 +229,6 @@ value = fromString("value"); getMessage = fromString("getMessage"); getClass = fromString("getClass"); - invoke = fromString("invoke"); //allowTransitionalJSR292 only TYPE = fromString("TYPE"); TYPE_USE = fromString("TYPE_USE");
--- a/src/share/classes/com/sun/tools/javac/util/UnsharedNameTable.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javac/util/UnsharedNameTable.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -107,7 +107,7 @@ hashes[h] = firstTableEntry = element.next; } else { - assert previousNonNullTableEntry != null : "previousNonNullTableEntry cannot be null here."; + Assert.checkNonNull(previousNonNullTableEntry, "previousNonNullTableEntry cannot be null here."); previousNonNullTableEntry.next = element.next; } } @@ -133,7 +133,7 @@ hashes[h] = newEntry; } else { - assert previousNonNullTableEntry.next == null : "previousNonNullTableEntry.next must be null."; + Assert.checkNull(previousNonNullTableEntry.next, "previousNonNullTableEntry.next must be null."); previousNonNullTableEntry.next = newEntry; }
--- a/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2004, 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 @@ -23,85 +23,62 @@ # questions. # -main.errors=\u30a8\u30e9\u30fc {0} \u500b -main.error=\u30a8\u30e9\u30fc {0} \u500b -main.warnings=\u8b66\u544a {0} \u500b -main.warning=\u8b66\u544a {0} \u500b -main.usage=\u4f7f\u7528\u6cd5: javadoc [options] [packagenames] [sourcefiles] [@files]\n\ - -overview <file> HTML \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u6982\u8981\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u8aad\u307f\u8fbc\u3080\n\ - -public public \u30af\u30e9\u30b9\u3068\u30e1\u30f3\u30d0\u306e\u307f\u3092\u793a\u3059\n\ - -protected protected/public \u30af\u30e9\u30b9\u3068\u30e1\u30f3\u30d0\u3092\u793a\u3059 (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\ - -package package/protected/public \u30af\u30e9\u30b9\u3068\u30e1\u30f3\u30d0\u3092\u793a\u3059\n\ - -private \u3059\u3079\u3066\u306e\u30af\u30e9\u30b9\u3068\u30e1\u30f3\u30d0\u3092\u793a\u3059\n\ - -help \u30b3\u30de\u30f3\u30c9\u884c\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8868\u793a\u3057\u3066\u7d42\u4e86\u3059\u308b\n\ - -doclet <class> \u4ee3\u66ff doclet \u3092\u4ecb\u3057\u3066\u51fa\u529b\u3092\u751f\u6210\u3059\u308b\n\ - -docletpath <path> doclet \u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u63a2\u3059\u5834\u6240\u3092\u6307\u5b9a\u3059\u308b\n\ - -sourcepath <pathlist> \u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u3042\u308b\u5834\u6240\u3092\u6307\u5b9a\u3059\u308b\n\ - -classpath <pathlist> \u30e6\u30fc\u30b6\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u3042\u308b\u5834\u6240\u3092\u6307\u5b9a\u3059\u308b\n\ - -exclude <pkglist> \u9664\u5916\u3059\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u30ea\u30b9\u30c8\u3092\u6307\u5b9a\u3059\u308b\n\ - -subpackages <subpkglist> \u518d\u5e30\u7684\u306b\u30ed\u30fc\u30c9\u3059\u308b\u30b5\u30d6\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u6307\u5b9a\u3059\u308b\n\ - -breakiterator BreakIterator \u3067\u6700\u521d\u306e\u6587\u3092\u8a08\u7b97\u3059\u308b\n\ - -bootclasspath <pathlist> \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u30ed\u30fc\u30c0\u306b\u3088\u308a\u30ed\u30fc\u30c9\u3055\u308c\u305f\n\ -\t\t\t \u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u4f4d\u7f6e\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\n\ - -source <release> \u6307\u5b9a\u3055\u308c\u305f\u30ea\u30ea\u30fc\u30b9\u3068\u30bd\u30fc\u30b9\u306e\u4e92\u63db\u6027\u304c\u63d0\u4f9b\u3055\u308c\u308b\n\ - -extdirs <dirlist> \u62e1\u5f35\u6a5f\u80fd\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305f\u4f4d\u7f6e\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\n\ - -verbose Javadoc \u306e\u52d5\u4f5c\u306b\u3064\u3044\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u51fa\u529b\u3059\u308b\n\ - -locale <name> en_US \u3084 en_US_WIN \u306a\u3069\u306e\u4f7f\u7528\u3059\u308b\u30ed\u30b1\u30fc\u30eb\n\ - -encoding <name> \u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u540d\n\ - -quiet \u72b6\u614b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3057\u306a\u3044\n\ - -J<flag> <flag> \u3092\u5b9f\u884c\u30b7\u30b9\u30c6\u30e0\u306b\u76f4\u63a5\u6e21\u3059\n -main.option.already.seen=\u30aa\u30d7\u30b7\u30e7\u30f3 {0} \u306f 1 \u56de\u3057\u304b\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002 -main.requires_argument=\u30aa\u30d7\u30b7\u30e7\u30f3 {0} \u306b\u306f\u5f15\u6570\u304c\u5fc5\u8981\u3067\u3059\u3002 -main.locale_first=\u30aa\u30d7\u30b7\u30e7\u30f3 -locale \u306f\u3001\u30b3\u30de\u30f3\u30c9\u884c\u306e\u6700\u521d\u306b\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 -main.invalid_flag=\u30d5\u30e9\u30b0 {0} \u306f\u7121\u52b9\u3067\u3059\u3002 -main.No_packages_or_classes_specified=\u30d1\u30c3\u30b1\u30fc\u30b8\u307e\u305f\u306f\u30af\u30e9\u30b9\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -main.incompatible.access.flags=-public\u3001-private\u3001-package\u3001\u307e\u305f\u306f -protected \u306e\u3046\u3061\u306e 2 \u3064\u4ee5\u4e0a\u3092\u6307\u5b9a\u3057\u307e\u3057\u305f\u3002 -main.cant.read={0} \u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3002 -main.Loading_source_files_for_package=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306e\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059... -main.Loading_source_file_for_class=\u30af\u30e9\u30b9 {0} \u306e\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059... -main.Loading_source_file=\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb {0} \u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059... -main.Building_tree=Javadoc \u60c5\u5831\u3092\u69cb\u7bc9\u3057\u3066\u3044\u307e\u3059... -main.no_source_files_for_package=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306e\u30bd\u30fc\u30b9\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -main.fatal.error=\u81f4\u547d\u7684\u30a8\u30e9\u30fc -main.fatal.exception=\u81f4\u547d\u7684\u4f8b\u5916 -main.out.of.memory=java.lang.OutOfMemoryError: \u30e1\u30e2\u30ea\u3092\u5897\u3084\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\ -\u305f\u3068\u3048\u3070\u3001Sun \u306e classic \u3082\u3057\u304f\u306f hotspot VM \u3067\u306f\u3001-J-Xmx32m \u306e\u3088\u3046\u306b\n\ --J-Xmx \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 -main.done_in=[{0} ms \u3067\u5b8c\u4e86] -main.doclet_method_must_be_static=doclet \u30af\u30e9\u30b9 {0} \u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9 {1} \u306f static \u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -main.must_return_int=doclet \u30af\u30e9\u30b9 {0} \u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9 {1} \u306f int \u3092\u8fd4\u3055\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -main.must_return_boolean=doclet \u30af\u30e9\u30b9 {0} \u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9 {1} \u306f boolean \u3092\u8fd4\u3055\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -main.must_return_languageversion=doclet \u30af\u30e9\u30b9 {0} \u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9 {1} \u306f LanguageVersion \u3092\u8fd4\u3055\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -main.more_than_one_doclet_specified_0_and_1=2 \u3064\u306e doclet ({0} \u3068 {1}) \u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002 -main.doclet_class_not_found=doclet \u30af\u30e9\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -main.doclet_method_not_found=doclet \u30af\u30e9\u30b9 {0} \u306b\u306f\u30e1\u30bd\u30c3\u30c9 {1} \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -main.doclet_method_not_accessible=doclet \u30af\u30e9\u30b9 {0} \u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9 {1} \u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3002 -main.internal_error_exception_thrown=doclet \u30af\u30e9\u30b9 {0} \u306e\u5185\u90e8\u30a8\u30e9\u30fc\u3067\u3059\u3002\u30e1\u30bd\u30c3\u30c9 {1} \u306f\u4f8b\u5916 {2} \u3092\u30b9\u30ed\u30fc\u3057\u307e\u3057\u305f\u3002 -main.exception_thrown=doclet \u30af\u30e9\u30b9 {0} \u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9 {1} \u306f\u4f8b\u5916 {2} \u3092\u30b9\u30ed\u30fc\u3057\u307e\u3057\u305f\u3002 -main.illegal_locale_name=\u30ed\u30b1\u30fc\u30eb {0} \u304c\u7121\u52b9\u3067\u3059\u3002 -main.malformed_locale_name=\u30ed\u30b1\u30fc\u30eb\u540d {0} \u306e\u66f8\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002 -main.file_not_found=\u30d5\u30a1\u30a4\u30eb {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -main.illegal_package_name=\u30d1\u30c3\u30b1\u30fc\u30b8\u540d {0} \u306f\u4e0d\u5f53\u3067\u3059\u3002 -tag.illegal_char_in_arr_dim={0} \u30bf\u30b0: \u914d\u5217\u306e\u5927\u304d\u3055\u3001\u30e1\u30bd\u30c3\u30c9\u30d1\u30e9\u30e1\u30fc\u30bf {1} \u306b\u69cb\u6587\u30a8\u30e9\u30fc\u304c\u3042\u308a\u307e\u3059\u3002 -tag.illegal_see_tag={0} \u30bf\u30b0: \u30e1\u30bd\u30c3\u30c9\u30d1\u30e9\u30e1\u30fc\u30bf {1} \u306b\u69cb\u6587\u30a8\u30e9\u30fc\u304c\u3042\u308a\u307e\u3059\u3002 -tag.missing_comma_space={0} \u30bf\u30b0: \u30e1\u30bd\u30c3\u30c9\u30d1\u30e9\u30e1\u30fc\u30bf {1} \u306b\u30b3\u30f3\u30de\u307e\u305f\u306f\u7a7a\u767d\u6587\u5b57\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -tag.tag_has_no_arguments=\u30bf\u30b0 {0} \u306b\u5f15\u6570\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -tag.see.missing_sharp={0} \u30bf\u30b0: '#' \u304c\u3042\u308a\u307e\u305b\u3093: "{1}" -tag.see.can_not_find_member={0} \u30bf\u30b0: {2} \u3067 {1} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 -tag.see.no_close_bracket_on_url={0} \u30bf\u30b0: \u9589\u3058\u30bf\u30b0 '>' \u304c\u3042\u308a\u307e\u305b\u3093: "{1}" -tag.see.no_close_quote={0} \u30bf\u30b0: \u9589\u3058\u5f15\u7528\u7b26\u304c\u3042\u308a\u307e\u305b\u3093: "{1}" -tag.see.class_not_found=@see \u30bf\u30b0\u7528\u306e\u30af\u30e9\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: "{1}" -tag.see.class_not_specified={0} \u30bf\u30b0: \u30af\u30e9\u30b9\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093: "{1}" -tag.see.illegal_character={0} \u30bf\u30b0:{2} \u306b\u4e0d\u6b63\u306a\u6587\u5b57 {1} \u304c\u3042\u308a\u307e\u3059\u3002 -tag.see.malformed_see_tag=\u30bf\u30b0 {0}: \u66f8\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093: "{1}" -tag.throws.exception_not_found=\u30bf\u30b0 {0}\u3001\u30af\u30e9\u30b9 {1} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -tag.End_delimiter_missing_for_possible_SeeTag=\u30b3\u30e1\u30f3\u30c8\u6587\u5b57\u5217 "{0}" \u3067\u3001\u6709\u52b9\u306a see \u30bf\u30b0\u306b\u7d42\u7aef\u30c7\u30ea\u30df\u30bf } \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -tag.Improper_Use_Of_Link_Tag=\u30a4\u30f3\u30e9\u30a4\u30f3\u30bf\u30b0 "{0}" \u306b\u7d42\u4e86\u6587\u5b57 ''}'' \u304c\u3042\u308a\u307e\u305b\u3093\u3002 -javadoc.File_Read_Error=\u30d5\u30a1\u30a4\u30eb {0} \u306e\u8aad\u307f\u8fbc\u307f\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -javadoc.Body_missing_from_html_file=HTML \u30d5\u30a1\u30a4\u30eb\u306b body \u30bf\u30b0\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -javadoc.End_body_missing_from_html_file=HTML \u30d5\u30a1\u30a4\u30eb\u306b body \u306e\u9589\u3058\u30bf\u30b0\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -javadoc.Multiple_package_comments=\u30d1\u30c3\u30b1\u30fc\u30b8 "{0}" \u306b\u8907\u6570\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u30b3\u30e1\u30f3\u30c8\u306e\u30bd\u30fc\u30b9\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002 -javadoc.class_not_found=\u30af\u30e9\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -javadoc.error=\u30a8\u30e9\u30fc -javadoc.warning=\u8b66\u544a -tag.serialField.illegal_character=@serialField \u30bf\u30b0\u306b\u4e0d\u6b63\u306a\u6587\u5b57 {0} \u304c\u3042\u308a\u307e\u3059: {1} +main.errors=\u30A8\u30E9\u30FC{0}\u500B +main.error=\u30A8\u30E9\u30FC{0}\u500B +main.warnings=\u8B66\u544A{0}\u500B +main.warning=\u8B66\u544A{0}\u500B +main.usage=\u4F7F\u7528\u65B9\u6CD5: javadoc [options] [packagenames] [sourcefiles] [@files]\n-overview<file> HTML\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u6982\u8981\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8AAD\u307F\u8FBC\u3080\n-public public\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u306E\u307F\u3092\u793A\u3059\n-protected protected/public\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u3092\u793A\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8)\n-package package/protected/public\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u3092\u793A\u3059\n-private \u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u3092\u793A\u3059\n-help \u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8868\u793A\u3057\u3066\u7D42\u4E86\u3059\u308B\n-doclet<class> \u4EE3\u66FFdoclet\u3092\u4ECB\u3057\u3066\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n-docletpath<path> doclet\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u63A2\u3059\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n-sourcepath<pathlist> \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n-classpath<pathlist> \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n-exclude<pkglist> \u9664\u5916\u3059\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30EA\u30B9\u30C8\u3092\u6307\u5B9A\u3059\u308B\n-subpackages<subpkglist> \u518D\u5E30\u7684\u306B\u30ED\u30FC\u30C9\u3059\u308B\u30B5\u30D6\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u6307\u5B9A\u3059\u308B\n-breakiterator BreakIterator\u3067\u6700\u521D\u306E\u6587\u3092\u8A08\u7B97\u3059\u308B\n-bootclasspath<pathlist> \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30ED\u30FC\u30C0\u30FC\u306B\u3088\u308A\u30ED\u30FC\u30C9\u3055\u308C\u305F\n\t\t\t \u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u4F4D\u7F6E\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n-source<release> \u6307\u5B9A\u3055\u308C\u305F\u30EA\u30EA\u30FC\u30B9\u3068\u30BD\u30FC\u30B9\u306E\u4E92\u63DB\u6027\u3092\u4FDD\u3064\n-extdirs<dirlist> \u62E1\u5F35\u6A5F\u80FD\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u4F4D\u7F6E\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n-verbose Javadoc\u306E\u52D5\u4F5C\u306B\u3064\u3044\u3066\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n-locale<name> en_US\u3084en_US_WIN\u306A\u3069\u306E\u4F7F\u7528\u3059\u308B\u30ED\u30B1\u30FC\u30EB\n-encoding<name> \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u540D\n-quiet \u72B6\u614B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3057\u306A\u3044\n-J<flag> <flag>\u3092\u5B9F\u884C\u30B7\u30B9\u30C6\u30E0\u306B\u76F4\u63A5\u6E21\u3059\n-X \u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u6982\u8981\u3092\u51FA\u529B\u3059\u308B\n +main.Xusage=-Xmaxerrs <number> \u51FA\u529B\u3059\u308B\u30A8\u30E9\u30FC\u306E\u6700\u5927\u6570\u3092\u8A2D\u5B9A\u3059\u308B\n-Xmaxwarns <number> \u51FA\u529B\u3059\u308B\u8B66\u544A\u306E\u6700\u5927\u6570\u3092\u8A2D\u5B9A\u3059\u308B\n\n\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002 +main.option.already.seen={0}\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u8907\u6570\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +main.requires_argument=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002 +main.locale_first=\u30AA\u30D7\u30B7\u30E7\u30F3-locale\u306F\u3001\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u306E\u6700\u521D\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +main.invalid_flag={0}\u306F\u7121\u52B9\u306A\u30D5\u30E9\u30B0\u3067\u3059 +main.No_packages_or_classes_specified=\u30D1\u30C3\u30B1\u30FC\u30B8\u307E\u305F\u306F\u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +main.incompatible.access.flags=-public\u3001-private\u3001-package\u307E\u305F\u306F-protected\u306E\u3046\u3061\u306E2\u3064\u4EE5\u4E0A\u3092\u6307\u5B9A\u3057\u307E\u3057\u305F\u3002 +main.cant.read={0}\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093 +main.Loading_source_files_for_package=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306E\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u8FBC\u3093\u3067\u3044\u307E\u3059... +main.Loading_source_file_for_class=\u30AF\u30E9\u30B9{0}\u306E\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u8FBC\u3093\u3067\u3044\u307E\u3059... +main.Loading_source_file=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB{0}\u3092\u8AAD\u307F\u8FBC\u3093\u3067\u3044\u307E\u3059... +main.Building_tree=Javadoc\u60C5\u5831\u3092\u69CB\u7BC9\u3057\u3066\u3044\u307E\u3059... +main.no_source_files_for_package=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306E\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093 +main.fatal.error=\u81F4\u547D\u7684\u30A8\u30E9\u30FC +main.fatal.exception=\u81F4\u547D\u7684\u4F8B\u5916 +main.out.of.memory=java.lang.OutOfMemoryError: \u30E1\u30E2\u30EA\u30FC\u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u305F\u3068\u3048\u3070\u3001JDK\u306Eclassic\u3082\u3057\u304F\u306Fhotspot VM\u3067\u306F\u3001-J-Xmx32m\u306E\u3088\u3046\u306B\n-J-Xmx\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002 +main.done_in=[{0}\u30DF\u30EA\u79D2\u3067\u5B8C\u4E86] +main.doclet_method_must_be_static=doclet\u30AF\u30E9\u30B9{0}\u3067\u306F\u3001\u30E1\u30BD\u30C3\u30C9{1}\u306Fstatic\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +main.must_return_int=doclet\u30AF\u30E9\u30B9{0}\u3067\u306F\u3001\u30E1\u30BD\u30C3\u30C9{1}\u306Fint\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +main.must_return_boolean=doclet\u30AF\u30E9\u30B9{0}\u3067\u306F\u3001\u30E1\u30BD\u30C3\u30C9{1}\u306Fboolean\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +main.must_return_languageversion=doclet\u30AF\u30E9\u30B9{0}\u3067\u306F\u3001\u30E1\u30BD\u30C3\u30C9{1}\u306FLanguageVersion\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +main.more_than_one_doclet_specified_0_and_1=\u8907\u6570\u306Edoclet({0}\u3068{1})\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +main.doclet_class_not_found=doclet\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 +main.doclet_method_not_found=doclet\u30AF\u30E9\u30B9{0}\u306B\u306F\u30E1\u30BD\u30C3\u30C9{1}\u304C\u3042\u308A\u307E\u305B\u3093 +main.doclet_method_not_accessible=doclet\u30AF\u30E9\u30B9{0}\u3067\u306F\u3001\u30E1\u30BD\u30C3\u30C9{1}\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093 +main.internal_error_exception_thrown=doclet\u30AF\u30E9\u30B9{0}\u306E\u5185\u90E8\u30A8\u30E9\u30FC\u3067\u3059\u3002\u30E1\u30BD\u30C3\u30C9{1}\u306F\u4F8B\u5916{2}\u3092\u30B9\u30ED\u30FC\u3057\u307E\u3057\u305F +main.exception_thrown=doclet\u30AF\u30E9\u30B9{0}\u3067\u306F\u3001\u30E1\u30BD\u30C3\u30C9{1}\u306F\u4F8B\u5916{2}\u3092\u30B9\u30ED\u30FC\u3057\u307E\u3057\u305F +main.illegal_locale_name=\u30ED\u30B1\u30FC\u30EB{0}\u304C\u7121\u52B9\u3067\u3059 +main.malformed_locale_name=\u30ED\u30B1\u30FC\u30EB\u540D{0}\u306E\u66F8\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093 +main.file_not_found=\u30D5\u30A1\u30A4\u30EB"{0}"\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 +main.illegal_package_name=\u30D1\u30C3\u30B1\u30FC\u30B8\u540D"{0}"\u306F\u4E0D\u6B63\u3067\u3059 +tag.illegal_char_in_arr_dim=\u30BF\u30B0{0}: \u914D\u5217\u306E\u5927\u304D\u3055\u3001\u30E1\u30BD\u30C3\u30C9\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF{1}\u306B\u69CB\u6587\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3059 +tag.illegal_see_tag=\u30BF\u30B0{0}: \u30E1\u30BD\u30C3\u30C9\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF{1}\u306B\u69CB\u6587\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3059 +tag.missing_comma_space=\u30BF\u30B0{0}: \u30E1\u30BD\u30C3\u30C9\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF{1}\u306B\u30AB\u30F3\u30DE\u307E\u305F\u306F\u7A7A\u767D\u6587\u5B57\u304C\u3042\u308A\u307E\u305B\u3093 +tag.tag_has_no_arguments={0}\u30BF\u30B0\u306B\u5F15\u6570\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +tag.see.missing_sharp=\u30BF\u30B0{0}: ''#''\u304C\u3042\u308A\u307E\u305B\u3093: "{1}" +tag.see.can_not_find_member=\u30BF\u30B0{0}: {2}\u3067{1}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 +tag.see.no_close_bracket_on_url=\u30BF\u30B0{0}: \u9589\u3058\u30BF\u30B0''>''\u304C\u3042\u308A\u307E\u305B\u3093: "{1}" +tag.see.no_close_quote=\u30BF\u30B0{0}: \u9589\u3058\u5F15\u7528\u7B26\u304C\u3042\u308A\u307E\u305B\u3093: "{1}" +tag.see.class_not_found=@see\u30BF\u30B0\u7528\u306E\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: "{1}" +tag.see.class_not_specified=\u30BF\u30B0{0}: \u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093: "{1}" +tag.see.illegal_character=\u30BF\u30B0{0}: "{2}"\u306B\u4E0D\u6B63\u306A\u6587\u5B57"{1}"\u304C\u3042\u308A\u307E\u3059 +tag.see.malformed_see_tag=\u30BF\u30B0{0}: \u66F8\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093: "{1}" +tag.throws.exception_not_found={0}\u30BF\u30B0\u3001\u30AF\u30E9\u30B9{1}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +tag.End_delimiter_missing_for_possible_SeeTag=\u30B3\u30E1\u30F3\u30C8\u6587\u5B57\u5217"{0}"\u3067\u3001\u6709\u52B9\u306Asee\u30BF\u30B0\u306B\u7D42\u7AEF\u30C7\u30EA\u30DF\u30BF}\u304C\u3042\u308A\u307E\u305B\u3093 +tag.Improper_Use_Of_Link_Tag=\u30A4\u30F3\u30E9\u30A4\u30F3\u30FB\u30BF\u30B0"{0}"\u306B\u7D42\u4E86\u6587\u5B57''}''\u304C\u3042\u308A\u307E\u305B\u3093 +javadoc.File_Read_Error=\u30D5\u30A1\u30A4\u30EB{0}\u306E\u8AAD\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +javadoc.Body_missing_from_html_file=HTML\u30D5\u30A1\u30A4\u30EB\u306Bbody\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093 +javadoc.End_body_missing_from_html_file=HTML\u30D5\u30A1\u30A4\u30EB\u306Bbody\u306E\u9589\u3058\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093 +javadoc.Multiple_package_comments=\u30D1\u30C3\u30B1\u30FC\u30B8"{0}"\u306B\u8907\u6570\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30B3\u30E1\u30F3\u30C8\u306E\u30BD\u30FC\u30B9\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F +javadoc.class_not_found=\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +javadoc.error=\u30A8\u30E9\u30FC +javadoc.warning=\u8B66\u544A +tag.serialField.illegal_character=@serialField\u30BF\u30B0\u306B\u4E0D\u6B63\u306A\u6587\u5B57{0}\u304C\u3042\u308A\u307E\u3059: {1}\u3002
--- a/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2004, 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 @@ -23,85 +23,62 @@ # questions. # -main.errors={0} \u9519\u8bef -main.error={0} \u9519\u8bef -main.warnings={0} \u8b66\u544a -main.warning={0} \u8b66\u544a -main.usage=\u7528\u6cd5\uff1ajavadoc [\u9009\u9879] [\u8f6f\u4ef6\u5305\u540d\u79f0] [\u6e90\u6587\u4ef6] [@file]\n\ --overview <\u6587\u4ef6> \u8bfb\u53d6 HTML \u6587\u4ef6\u7684\u6982\u8ff0\u6587\u6863\n\ --public \u4ec5\u663e\u793a\u516c\u5171\u7c7b\u548c\u6210\u5458\n\ --protected \u663e\u793a\u53d7\u4fdd\u62a4/\u516c\u5171\u7c7b\u548c\u6210\u5458\uff08\u9ed8\u8ba4\uff09\n\ --package \u663e\u793a\u8f6f\u4ef6\u5305/\u53d7\u4fdd\u62a4/\u516c\u5171\u7c7b\u548c\u6210\u5458\n\ --private \u663e\u793a\u6240\u6709\u7c7b\u548c\u6210\u5458\n\ --help \u663e\u793a\u547d\u4ee4\u884c\u9009\u9879\u5e76\u9000\u51fa\n\ --doclet <\u7c7b> \u901a\u8fc7\u66ff\u4ee3 doclet \u751f\u6210\u8f93\u51fa\n\ --docletpath <\u8def\u5f84> \u6307\u5b9a\u67e5\u627e doclet \u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e\n\ --sourcepath <\u8def\u5f84\u5217\u8868> \u6307\u5b9a\u67e5\u627e\u6e90\u6587\u4ef6\u7684\u4f4d\u7f6e\n\ --classpath <\u8def\u5f84\u5217\u8868> \u6307\u5b9a\u67e5\u627e\u7528\u6237\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e\n\ --exclude <\u8f6f\u4ef6\u5305\u5217\u8868> \u6307\u5b9a\u8981\u6392\u9664\u7684\u8f6f\u4ef6\u5305\u7684\u5217\u8868\n\ --subpackages <\u5b50\u8f6f\u4ef6\u5305\u5217\u8868> \u6307\u5b9a\u8981\u9012\u5f52\u88c5\u5165\u7684\u5b50\u8f6f\u4ef6\u5305\n\ --breakiterator \u4f7f\u7528 BreakIterator \u8ba1\u7b97\u7b2c 1 \u53e5\n\ --bootclasspath <\u8def\u5f84\u5217\u8868> \u8986\u76d6\u5f15\u5bfc\u7c7b\u52a0\u8f7d\u5668\u6240\u88c5\u5165\u7684\n\ -\t\t\t \u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e\n\ --source <\u7248\u672c> \u63d0\u4f9b\u4e0e\u6307\u5b9a\u7248\u672c\u7684\u6e90\u517c\u5bb9\u6027\n\ --extdirs <\u76ee\u5f55\u5217\u8868> \u8986\u76d6\u5b89\u88c5\u7684\u6269\u5c55\u76ee\u5f55\u7684\u4f4d\u7f6e\n\ --verbose \u8f93\u51fa\u6709\u5173 Javadoc \u6b63\u5728\u6267\u884c\u7684\u64cd\u4f5c\u7684\u6d88\u606f\n\ --locale <\u540d\u79f0> \u8981\u4f7f\u7528\u7684\u8bed\u8a00\u73af\u5883\uff0c\u4f8b\u5982 en_US \u6216 en_US_WIN\n\ --encoding <\u540d\u79f0> \u6e90\u6587\u4ef6\u7f16\u7801\u540d\u79f0\n\ --quiet \u4e0d\u663e\u793a\u72b6\u6001\u6d88\u606f\n\ --J<\u6807\u5fd7> \u76f4\u63a5\u5c06 <\u6807\u5fd7> \u4f20\u9012\u7ed9\u8fd0\u884c\u65f6\u7cfb\u7edf\n -main.option.already.seen={0} \u9009\u9879\u53ef\u80fd\u88ab\u6307\u5b9a\u4e86\u4e0d\u6b62\u4e00\u6b21\u3002 -main.requires_argument=\u9009\u9879 {0} \u9700\u8981\u53c2\u6570\u3002 -main.locale_first=\u5728\u547d\u4ee4\u884c\u4e2d\uff0c\u9009\u9879 -locale \u5fc5\u987b\u4e3a\u7b2c\u4e00\u4e2a\u9009\u9879\u3002 -main.invalid_flag=\u65e0\u6548\u7684\u6807\u5fd7\uff1a {0} -main.No_packages_or_classes_specified=\u672a\u6307\u5b9a\u8f6f\u4ef6\u5305\u6216\u7c7b\u3002 -main.incompatible.access.flags=\u6307\u5b9a\u4e86\u591a\u4e2a -public\u3001-private\u3001-package \u6216 -protected\u3002 -main.cant.read=\u65e0\u6cd5\u8bfb\u53d6 {0} -main.Loading_source_files_for_package=\u6b63\u5728\u88c5\u5165\u8f6f\u4ef6\u5305 {0} \u7684\u6e90\u6587\u4ef6... -main.Loading_source_file_for_class=\u6b63\u5728\u88c5\u5165\u7c7b {0} \u7684\u6e90\u6587\u4ef6... -main.Loading_source_file=\u6b63\u5728\u88c5\u5165\u6e90\u6587\u4ef6 {0}... -main.Building_tree=\u6b63\u5728\u6784\u9020 Javadoc \u4fe1\u606f... -main.no_source_files_for_package=\u6ca1\u6709\u8f6f\u4ef6\u5305 {0} \u7684\u6e90\u6587\u4ef6 -main.fatal.error=\u81f4\u547d\u9519\u8bef -main.fatal.exception=\u81f4\u547d\u5f02\u5e38 -main.out.of.memory=java.lang.OutOfMemoryError\uff1a\u8bf7\u589e\u52a0\u5185\u5b58\u3002\n\ -\u4f8b\u5982\uff0c\u5bf9\u4e8e JDK Classic \u6216 HotSpot VM\uff0c\u8bf7\u6dfb\u52a0\u9009\u9879 -J-Xmx\uff0c\n\ -\u5982 -J-Xmx32m\u3002 -main.done_in=[\u5728{0} \u6beb\u79d2\u5185\u5b8c\u6210] -main.doclet_method_must_be_static=\u5728 doclet \u7c7b {0} \u4e2d\uff0c\u65b9\u6cd5 {1} \u5fc5\u987b\u4e3a\u9759\u6001\u3002 -main.must_return_int=\u5728 doclet \u7c7b {0} \u4e2d\uff0c\u65b9\u6cd5 {1} \u5fc5\u987b\u8fd4\u56de\u6574\u578b\u503c\u3002 -main.must_return_boolean=\u5728 doclet \u7c7b {0} \u4e2d\uff0c\u65b9\u6cd5 {1} \u5fc5\u987b\u8fd4\u56de\u5e03\u5c14\u503c\u3002 -main.must_return_languageversion=\u5728 doclet \u7c7b {0} \u4e2d\uff0c\u65b9\u6cd5 {1} \u5fc5\u987b\u8fd4\u56de\u8bed\u8a00\u7248\u672c\u3002 -main.more_than_one_doclet_specified_0_and_1=\u6307\u5b9a\u4e86\u591a\u4e2a doclet\uff08{0} \u548c {1}\uff09\u3002 -main.doclet_class_not_found=\u627e\u4e0d\u5230 doclet \u7c7b {0} -main.doclet_method_not_found=doclet \u7c7b {0} \u4e0d\u5305\u542b {1} \u65b9\u6cd5 -main.doclet_method_not_accessible=\u5728 doclet \u7c7b {0} \u4e2d\uff0c\u65e0\u6cd5\u8bbf\u95ee\u65b9\u6cd5 {1} -main.internal_error_exception_thrown=\u5185\u90e8\u9519\u8bef\uff1a\u5728 doclet \u7c7b {0} \u4e2d\uff0c\u65b9\u6cd5 {1} \u5df2\u629b\u51fa\u5f02\u5e38 {2} -main.exception_thrown=\u5728 doclet \u7c7b {0} \u4e2d\uff0c\u65b9\u6cd5 {1} \u5df2\u629b\u51fa\u5f02\u5e38 {2} -main.illegal_locale_name=\u8bed\u8a00\u73af\u5883\u4e0d\u53ef\u7528\uff1a{0} -main.malformed_locale_name=\u4e0d\u89c4\u5219\u7684\u8bed\u8a00\u73af\u5883\u540d\u79f0\uff1a{0} -main.file_not_found=\u627e\u4e0d\u5230\u6587\u4ef6\uff1a"{0}" -main.illegal_package_name=\u975e\u6cd5\u7684\u8f6f\u4ef6\u5305\u540d\u79f0\uff1a"{0}" -tag.illegal_char_in_arr_dim=\u6807\u8bb0 {0}\uff1a\u6570\u7ec4\u7ef4\u6570\u3001\u65b9\u6cd5\u53c2\u6570\u4e2d\u6709\u8bed\u6cd5\u9519\u8bef\uff1a{1} -tag.illegal_see_tag=\u6807\u8bb0 {0}\uff1a\u65b9\u6cd5\u53c2\u6570\u4e2d\u6709\u8bed\u6cd5\u9519\u8bef\uff1a{1} -tag.missing_comma_space=\u6807\u8bb0 {0}\uff1a\u65b9\u6cd5\u53c2\u6570\u4e2d\u7f3a\u5c11\u9017\u53f7\u6216\u7a7a\u683c\uff1a{1} -tag.tag_has_no_arguments={0} \u6807\u8bb0\u6ca1\u6709\u53c2\u6570\u3002 -tag.see.missing_sharp=\u6807\u8bb0 {0}\uff1a\u7f3a\u5c11 "#"\uff1a"{1}" -tag.see.can_not_find_member=\u6807\u8bb0 {0}\uff1a\u5728 {2} \u4e2d\u627e\u4e0d\u5230 {1} -tag.see.no_close_bracket_on_url=\u6807\u8bb0 {0}\uff1a\u7f3a\u5c11\u6700\u540e\u7684 ">"\uff1a"{1}" -tag.see.no_close_quote=\u6807\u8bb0 {0}\uff1a\u65e0\u53f3\u5f15\u53f7\uff1a"{1}" -tag.see.class_not_found=\u627e\u4e0d\u5230 @see \u6807\u8bb0\u7684\u7c7b {0}\uff1a"{1}" -tag.see.class_not_specified=\u6807\u8bb0 {0}\uff1a\u672a\u6307\u5b9a\u7c7b\uff1a"{1}" -tag.see.illegal_character=\u6807\u8bb0 {0}\uff1a"{2}" \u4e2d\u7684 "{1}" \u4e3a\u975e\u6cd5\u5b57\u7b26 -tag.see.malformed_see_tag=\u6807\u8bb0 {0}\uff1a\u4e0d\u89c4\u5219\uff1a"{1}" -tag.throws.exception_not_found=\u6807\u8bb0 {0}\uff1a\u627e\u4e0d\u5230\u7c7b {1}\u3002 -tag.End_delimiter_missing_for_possible_SeeTag=\u6ce8\u91ca\u5b57\u7b26\u4e32\u4e2d\u53ef\u80fd\u51fa\u73b0\u7684\u53c2\u89c1\u6807\u8bb0\u7f3a\u5c11\u7ed3\u675f\u5206\u9694\u7b26 }\uff1a"{0}" -tag.Improper_Use_Of_Link_Tag=\u5185\u5d4c\u6807\u8bb0\u7f3a\u5c11\u7ed3\u675f "}" \u5b57\u7b26\uff1a"{0}" -javadoc.File_Read_Error=\u8bfb\u53d6\u6587\u4ef6 {0} \u65f6\u51fa\u9519 -javadoc.Body_missing_from_html_file=HTML \u4e2d\u7f3a\u5c11\u4e3b\u4f53\u6807\u8bb0 -javadoc.End_body_missing_from_html_file=HTML \u6587\u4ef6\u4e2d\u7f3a\u5c11\u4e3b\u4f53\u7ed3\u675f\u6807\u8bb0 -javadoc.Multiple_package_comments=\u627e\u5230\u8f6f\u4ef6\u5305 "{0}" \u7684\u591a\u4e2a\u8f6f\u4ef6\u5305\u6ce8\u91ca\u6e90 -javadoc.class_not_found=\u627e\u4e0d\u5230\u7c7b {0}\u3002 -javadoc.error=\u9519\u8bef -javadoc.warning=\u8b66\u544a -tag.serialField.illegal_character=@serialField \u6807\u8bb0\u4e2d\u7684\u975e\u6cd5\u5b57\u7b26 {0}\uff1a{1}\u3002 +main.errors={0} \u4E2A\u9519\u8BEF +main.error={0} \u4E2A\u9519\u8BEF +main.warnings={0} \u4E2A\u8B66\u544A +main.warning={0} \u4E2A\u8B66\u544A +main.usage=\u7528\u6CD5: javadoc [options] [packagenames] [sourcefiles] [@files]\n-overview <file> \u4ECE HTML \u6587\u4EF6\u8BFB\u53D6\u6982\u89C8\u6587\u6863\n-public \u4EC5\u663E\u793A public \u7C7B\u548C\u6210\u5458\n-protected \u663E\u793A protected/public \u7C7B\u548C\u6210\u5458 (\u9ED8\u8BA4\u503C)\n-package \u663E\u793A package/protected/public \u7C7B\u548C\u6210\u5458\n-private \u663E\u793A\u6240\u6709\u7C7B\u548C\u6210\u5458\n-help \u663E\u793A\u547D\u4EE4\u884C\u9009\u9879\u5E76\u9000\u51FA\n-doclet <class> \u901A\u8FC7\u66FF\u4EE3 doclet \u751F\u6210\u8F93\u51FA\n-docletpath <path> \u6307\u5B9A\u67E5\u627E doclet \u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n-sourcepath <pathlist> \u6307\u5B9A\u67E5\u627E\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E\n-classpath <pathlist> \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n-exclude <pkglist> \u6307\u5B9A\u8981\u6392\u9664\u7684\u7A0B\u5E8F\u5305\u5217\u8868\n-subpackages <subpkglist> \u6307\u5B9A\u8981\u9012\u5F52\u52A0\u8F7D\u7684\u5B50\u7A0B\u5E8F\u5305\n-breakiterator \u8BA1\u7B97\u5E26\u6709 BreakIterator \u7684\u7B2C\u4E00\u4E2A\u8BED\u53E5\n-bootclasspath <pathlist> \u8986\u76D6\u7531\u5F15\u5BFC\u7C7B\u52A0\u8F7D\u5668\u6240\u52A0\u8F7D\u7684\n\t\t\t \u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n-source <release> \u63D0\u4F9B\u4E0E\u6307\u5B9A\u53D1\u884C\u7248\u7684\u6E90\u517C\u5BB9\u6027\n-extdirs <dirlist> \u8986\u76D6\u6240\u5B89\u88C5\u6269\u5C55\u7684\u4F4D\u7F6E\n-verbose \u8F93\u51FA\u6709\u5173 Javadoc \u6B63\u5728\u6267\u884C\u7684\u64CD\u4F5C\u7684\u4FE1\u606F\n-locale <name> \u8981\u4F7F\u7528\u7684\u533A\u57DF\u8BBE\u7F6E, \u4F8B\u5982 en_US \u6216 en_US_WIN\n-encoding <name> \u6E90\u6587\u4EF6\u7F16\u7801\u540D\u79F0\n-quiet \u4E0D\u663E\u793A\u72B6\u6001\u6D88\u606F\n-J<flag> \u76F4\u63A5\u5C06 <flag> \u4F20\u9012\u5230\u8FD0\u884C\u65F6\u7CFB\u7EDF\n-X \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u63D0\u8981\n +main.Xusage=-Xmaxerrs <number> \u8BBE\u7F6E\u8981\u8F93\u51FA\u7684\u6700\u5927\u9519\u8BEF\u6570\n-Xmaxwarns <number> \u8BBE\u7F6E\u8981\u8F93\u51FA\u7684\u6700\u5927\u8B66\u544A\u6570\n\n\u8FD9\u4E9B\u9009\u9879\u90FD\u662F\u975E\u6807\u51C6\u9009\u9879, \u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002 +main.option.already.seen={0}\u9009\u9879\u53EA\u80FD\u6307\u5B9A\u4E00\u6B21\u3002 +main.requires_argument=\u9009\u9879{0}\u9700\u8981\u53C2\u6570\u3002 +main.locale_first=\u5728\u547D\u4EE4\u884C\u4E2D, \u9009\u9879 -locale \u5FC5\u987B\u4E3A\u7B2C\u4E00\u4E2A\u9009\u9879\u3002 +main.invalid_flag=\u65E0\u6548\u7684\u6807\u8BB0: {0} +main.No_packages_or_classes_specified=\u672A\u6307\u5B9A\u7A0B\u5E8F\u5305\u6216\u7C7B\u3002 +main.incompatible.access.flags=\u6307\u5B9A\u4E86\u591A\u4E2A -public, -private, -package \u6216 -protected\u3002 +main.cant.read=\u65E0\u6CD5\u8BFB\u53D6{0} +main.Loading_source_files_for_package=\u6B63\u5728\u52A0\u8F7D\u7A0B\u5E8F\u5305{0}\u7684\u6E90\u6587\u4EF6... +main.Loading_source_file_for_class=\u6B63\u5728\u52A0\u8F7D\u7C7B{0}\u7684\u6E90\u6587\u4EF6... +main.Loading_source_file=\u6B63\u5728\u52A0\u8F7D\u6E90\u6587\u4EF6{0}... +main.Building_tree=\u6B63\u5728\u6784\u9020 Javadoc \u4FE1\u606F... +main.no_source_files_for_package=\u6CA1\u6709\u7A0B\u5E8F\u5305{0}\u7684\u6E90\u6587\u4EF6 +main.fatal.error=\u81F4\u547D\u9519\u8BEF +main.fatal.exception=\u81F4\u547D\u5F02\u5E38\u9519\u8BEF +main.out.of.memory=java.lang.OutOfMemoryError: \u8BF7\u589E\u5927\u5185\u5B58\u3002\n\u4F8B\u5982, \u5BF9\u4E8E JDK \u7ECF\u5178\u6216\u70ED\u70B9 VM, \u8BF7\u589E\u5927\u9009\u9879 -J-Xmx,\n\u4F8B\u5982 -J-Xmx32m\u3002 +main.done_in=[\u5728 {0} \u6BEB\u79D2\u5185\u5B8C\u6210] +main.doclet_method_must_be_static=\u5728 doclet \u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u5FC5\u987B\u4E3A\u9759\u6001\u3002 +main.must_return_int=\u5728 doclet \u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u5FC5\u987B\u8FD4\u56DE\u6574\u578B\u503C\u3002 +main.must_return_boolean=\u5728 doclet \u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u5FC5\u987B\u8FD4\u56DE\u5E03\u5C14\u503C\u3002 +main.must_return_languageversion=\u5728 doclet \u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u5FC5\u987B\u8FD4\u56DE\u8BED\u8A00\u7248\u672C\u3002 +main.more_than_one_doclet_specified_0_and_1=\u6307\u5B9A\u4E86\u591A\u4E2A doclet ({0}\u548C{1})\u3002 +main.doclet_class_not_found=\u627E\u4E0D\u5230 doclet \u7C7B{0} +main.doclet_method_not_found=doclet \u7C7B{0}\u4E0D\u5305\u542B{1}\u65B9\u6CD5 +main.doclet_method_not_accessible=\u5728 doclet \u7C7B{0}\u4E2D, \u65E0\u6CD5\u8BBF\u95EE\u65B9\u6CD5{1} +main.internal_error_exception_thrown=\u5185\u90E8\u9519\u8BEF: \u5728 doclet \u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u5DF2\u629B\u51FA\u5F02\u5E38\u9519\u8BEF{2} +main.exception_thrown=\u5728 doclet \u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u5DF2\u629B\u51FA\u5F02\u5E38\u9519\u8BEF{2} +main.illegal_locale_name=\u8BED\u8A00\u73AF\u5883\u4E0D\u53EF\u7528: {0} +main.malformed_locale_name=\u683C\u5F0F\u9519\u8BEF\u7684\u8BED\u8A00\u73AF\u5883\u540D\u79F0: {0} +main.file_not_found=\u627E\u4E0D\u5230\u6587\u4EF6: "{0}" +main.illegal_package_name=\u975E\u6CD5\u7684\u7A0B\u5E8F\u5305\u540D\u79F0: "{0}" +tag.illegal_char_in_arr_dim=\u6807\u8BB0{0}: \u6570\u7EC4\u7EF4\u4E2D\u6709\u8BED\u6CD5\u9519\u8BEF, \u65B9\u6CD5\u53C2\u6570: {1} +tag.illegal_see_tag=\u6807\u8BB0{0}: \u65B9\u6CD5\u53C2\u6570\u4E2D\u6709\u8BED\u6CD5\u9519\u8BEF: {1} +tag.missing_comma_space=\u6807\u8BB0{0}: \u65B9\u6CD5\u53C2\u6570\u4E2D\u7F3A\u5C11\u9017\u53F7\u6216\u7A7A\u683C: {1} +tag.tag_has_no_arguments={0} \u6807\u8BB0\u6CA1\u6709\u53C2\u6570\u3002 +tag.see.missing_sharp=\u6807\u8BB0{0}: \u7F3A\u5C11 ''#'': "{1}" +tag.see.can_not_find_member=\u6807\u8BB0{0}: \u5728{2}\u4E2D\u627E\u4E0D\u5230{1} +tag.see.no_close_bracket_on_url=\u6807\u8BB0{0}: \u7F3A\u5C11\u6700\u540E\u7684 ''>'': "{1}" +tag.see.no_close_quote=\u6807\u8BB0{0}: \u65E0\u53F3\u5F15\u53F7: "{1}" +tag.see.class_not_found=\u627E\u4E0D\u5230 @see \u6807\u8BB0\u7684\u7C7B{0}: "{1}" +tag.see.class_not_specified=\u6807\u8BB0{0}: \u672A\u6307\u5B9A\u7C7B: "{1}" +tag.see.illegal_character=\u6807\u8BB0{0}: "{2}" \u4E2D\u7684 "{1}" \u4E3A\u975E\u6CD5\u5B57\u7B26 +tag.see.malformed_see_tag=\u6807\u8BB0{0}: \u683C\u5F0F\u9519\u8BEF: "{1}" +tag.throws.exception_not_found=\u6807\u8BB0{0}: \u627E\u4E0D\u5230\u7C7B{1}\u3002 +tag.End_delimiter_missing_for_possible_SeeTag=\u6CE8\u91CA\u5B57\u7B26\u4E32\u4E2D\u53EF\u80FD\u51FA\u73B0\u7684 See \u6807\u8BB0\u7F3A\u5C11\u7ED3\u675F\u5206\u9694\u7B26 }: "{0}" +tag.Improper_Use_Of_Link_Tag=\u5185\u5D4C\u6807\u8BB0\u7F3A\u5C11\u7ED3\u675F ''}'' \u5B57\u7B26: "{0}" +javadoc.File_Read_Error=\u8BFB\u53D6\u6587\u4EF6{0}\u65F6\u51FA\u9519 +javadoc.Body_missing_from_html_file=HTML \u4E2D\u7F3A\u5C11\u4E3B\u4F53\u6807\u8BB0 +javadoc.End_body_missing_from_html_file=HTML \u6587\u4EF6\u4E2D\u7F3A\u5C11\u4E3B\u4F53\u7ED3\u675F\u6807\u8BB0 +javadoc.Multiple_package_comments=\u627E\u5230\u7A0B\u5E8F\u5305 "{0}" \u7684\u591A\u4E2A\u7A0B\u5E8F\u5305\u6CE8\u91CA\u6E90 +javadoc.class_not_found=\u627E\u4E0D\u5230\u7C7B{0}\u3002 +javadoc.error=\u9519\u8BEF +javadoc.warning=\u8B66\u544A +tag.serialField.illegal_character=@serialField \u6807\u8BB0\u4E2D\u7684\u975E\u6CD5\u5B57\u7B26 {0}: {1}\u3002
--- a/src/share/classes/com/sun/tools/javah/resources/l10n_ja.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javah/resources/l10n_ja.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 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 @@ -21,52 +21,76 @@ # 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. -# +# # # User errors, command line errors. # -cant.create.dir=\u51fa\u529b\u7528\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002 -at.args.cant.read=\u30d5\u30a1\u30a4\u30eb {1} \u304b\u3089\u30b3\u30de\u30f3\u30c9\u884c\u5f15\u6570\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3002 -at.args.io.exception=\u30b3\u30de\u30f3\u30c9\u884c\u306e @ \u5f15\u6570\u306e\u51e6\u7406\u4e2d\u306b\u5165\u51fa\u529b\u4f8b\u5916 {0} \u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -old.jni.mixed=\u30aa\u30d7\u30b7\u30e7\u30f3 -jni \u3068 -old \u3092\u540c\u6642\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002-help \u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -old.llni.mixed=\u30aa\u30d7\u30b7\u30e7\u30f3 -old \u3068 -llni \u3092\u540c\u6642\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002-help \u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -old.not.supported=\u3053\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e javah \u3067\u306f\u30aa\u30d7\u30b7\u30e7\u30f3 -old \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -invalid.method.signature=\u7121\u52b9\u306a\u30e1\u30bd\u30c3\u30c9\u7f72\u540d: {0} -jni.llni.mixed=\u30aa\u30d7\u30b7\u30e7\u30f3 -jni \u3068 -llni \u3092\u540c\u6642\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002-help \u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -jni.no.stubs=JNI \u306f\u30b9\u30bf\u30d6\u3092\u5fc5\u8981\u3068\u3057\u307e\u305b\u3093\u3002JNI \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -dir.file.mixed=\u30aa\u30d7\u30b7\u30e7\u30f3 -d \u3068 -o \u3092\u540c\u6642\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002-help \u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -no.classes.specified=\u30b3\u30de\u30f3\u30c9\u884c\u3067\u30af\u30e9\u30b9\u304c\u6307\u5b9a\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002-help \u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -no.outputfile.specified=\u30b3\u30de\u30f3\u30c9\u884c\u3067\u51fa\u529b\u30d5\u30a1\u30a4\u30eb\u304c\u6307\u5b9a\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002-help \u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -no.outputdir.specified=\u30b3\u30de\u30f3\u30c9\u884c\u3067\u51fa\u529b\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u6307\u5b9a\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002-help \u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -no.classpath.specified=\u30b3\u30de\u30f3\u30c9\u884c\u3067\u30af\u30e9\u30b9\u30d1\u30b9\u304c\u6307\u5b9a\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002-help \u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -no.bootclasspath.specified=\u30b3\u30de\u30f3\u30c9\u884c\u3067\u30d6\u30fc\u30c8\u30af\u30e9\u30b9\u30d1\u30b9\u304c\u6307\u5b9a\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002-help \u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -unknown.option={0} \u306f\u4e0d\u6b63\u306a\u5f15\u6570\u3067\u3059\n -tracing.not.supported=\u8b66\u544a: \u30c8\u30ec\u30fc\u30b9\u306f\u73fe\u5728\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u4ee3\u308f\u308a\u306b\u3001 \u4eee\u60f3\u30de\u30b7\u30f3\u306e -verbose:jni \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u3063\u3066\u304f\u3060\u3055\u3044\u3002 +cant.create.dir=\u51FA\u529B\u7528\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002 +at.args.cant.read=\u30D5\u30A1\u30A4\u30EB{1}\u304B\u3089\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u5F15\u6570\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3002 +at.args.file.not.found=\u30D5\u30A1\u30A4\u30EB{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +at.args.io.exception=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u306E@\u5F15\u6570\u306E\u51E6\u7406\u4E2D\u306B\u3001\u6B21\u306E\u5165\u51FA\u529B\u306E\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {0}\u3002 +old.jni.mixed=\u30AA\u30D7\u30B7\u30E7\u30F3-jni\u3068-old\u3092\u540C\u6642\u306B\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +old.llni.mixed=\u30AA\u30D7\u30B7\u30E7\u30F3-old\u3068-llni\u3092\u540C\u6642\u306B\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +old.not.supported=\u3053\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306Ejavah\u3067\u306F\u30AA\u30D7\u30B7\u30E7\u30F3-old\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +invalid.method.signature=\u7121\u52B9\u306A\u30E1\u30BD\u30C3\u30C9\u30FB\u30B7\u30B0\u30CB\u30C1\u30E3: {0} +jni.llni.mixed=\u30AA\u30D7\u30B7\u30E7\u30F3-jni\u3068-llni\u3092\u540C\u6642\u306B\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +jni.no.stubs=JNI\u306F\u30B9\u30BF\u30D6\u3092\u5FC5\u8981\u3068\u3057\u307E\u305B\u3093\u3002JNI\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +jni.sigerror={0}\u306E\u7F72\u540D\u3092\u5224\u5B9A\u3067\u304D\u307E\u305B\u3093 +dir.file.mixed=\u30AA\u30D7\u30B7\u30E7\u30F3-d\u3068-o\u3092\u540C\u6642\u306B\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +no.classes.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +no.outputfile.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u51FA\u529B\u30D5\u30A1\u30A4\u30EB\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +no.outputdir.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u51FA\u529B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +no.classpath.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u30AF\u30E9\u30B9\u30D1\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +no.bootclasspath.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u30D6\u30FC\u30C8\u30FB\u30AF\u30E9\u30B9\u30D1\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +unknown.option={0}\u306F\u4E0D\u6B63\u306A\u5F15\u6570\u3067\u3059\n +tracing.not.supported=\u8B66\u544A: \u30C8\u30EC\u30FC\u30B9\u306F\u73FE\u5728\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u304B\u308F\u308A\u306B\u3001Virtual Machine\u306E-verbose:jni\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002 # # Usage message. # -usage=\u4f7f\u3044\u65b9: javah [options] <classes>\n\n[options] \u306b\u306f\u6b21\u306e\u3082\u306e\u304c\u3042\u308a\u307e\u3059\u3002\n\n\t-help \u30d8\u30eb\u30d7\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3057\u3066\u7d42\u4e86\u3059\u308b\n\t-classpath <path> \u30af\u30e9\u30b9\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30d0\u30b9\n\t-bootclasspath <path> \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30d1\u30b9\n\t-d <dir> \u51fa\u529b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n\t-o <file> \u51fa\u529b\u30d5\u30a1\u30a4\u30eb (-d \u304b -o \u306e\u3069\u3061\u3089\u304b\u4e00\u65b9\u3092\u4f7f\u7528\u3059\u308b)\n\t-jni JNI \u5f62\u5f0f\u306e\u30d8\u30c3\u30c0\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\u3059\u308b (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\t-version \u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u8868\u793a\u3059\u308b\n\t-verbose \u8a73\u7d30\u306a\u51fa\u529b\u3092\u884c\u3046\n\t-force \u5e38\u306b\u51fa\u529b\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304d\u8fbc\u3080\n\n<classes> \u306f\u5b8c\u5168\u6307\u5b9a\u306e\u540d\u524d\u3067\u6307\u5b9a\u3057\u307e\u3059 (java.lang.Object \u306a\u3069)\u3002\n +usage=\u4F7F\u7528\u65B9\u6CD5: javah [options] <classes>\n\n[options]\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002\n\n\t-help \u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3057\u3066\u7D42\u4E86\u3059\u308B\n\t-classpath <path> \u30AF\u30E9\u30B9\u3092\u30ED\u30FC\u30C9\u3059\u308B\u30D1\u30B9\n\t-bootclasspath <path> \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u3092\u30ED\u30FC\u30C9\u3059\u308B\u30D1\u30B9\n\t-d<dir> \u51FA\u529B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n\t-o <file> \u51FA\u529B\u30D5\u30A1\u30A4\u30EB(-d\u304B-o\u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u4F7F\u7528\u3059\u308B)\n\t-jni JNI\u5F62\u5F0F\u306E\u30D8\u30C3\u30C0\u30FC\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8)\n\t-version \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u8868\u793A\u3059\u308B\n\t-verbose \u8A73\u7D30\u306A\u51FA\u529B\u3092\u884C\u3046\n\t-force \u5E38\u306B\u51FA\u529B\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u3080\n\n<classes> \u306F\u5B8C\u5168\u6307\u5B9A\u306E\u540D\u524D\u3067\u6307\u5B9A\u3057\u307E\u3059\n(java.lang.Object\u306A\u3069)\u3002\n + +main.usage=\u4F7F\u7528\u65B9\u6CD5: \n\ javah [options] <classes>\n[options]\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002 +main.opt.o=\ -o <file> \u51FA\u529B\u30D5\u30A1\u30A4\u30EB(-d\u304B-o\u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u4F7F\u7528\u3059\u308B) +main.opt.d=\ -d <dir> \u51FA\u529B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA +main.opt.v=\ -v -verbose \u8A73\u7D30\u306A\u51FA\u529B\u3092\u884C\u3046 +main.opt.h=\ -h --help -? \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3059\u308B +main.opt.version=\ -version \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u8868\u793A\u3059\u308B +main.opt.jni=\ -jni JNI\u5F62\u5F0F\u306E\u30D8\u30C3\u30C0\u30FC\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8) +main.opt.force=\ -force \u5E38\u306B\u51FA\u529B\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u3080 +main.opt.classpath=\ -classpath <path> \u30AF\u30E9\u30B9\u3092\u30ED\u30FC\u30C9\u3059\u308B\u30D1\u30B9 +main.opt.bootclasspath=\ -bootclasspath <path> \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u3092\u30ED\u30FC\u30C9\u3059\u308B\u30D1\u30B9 +main.usage.foot=<classes>\u306F\u5B8C\u5168\u6307\u5B9A\u306E\u540D\u524D\u3067\u6307\u5B9A\u3057\u307E\u3059\n(java.lang.Object\u306A\u3069)\u3002 # # Version string. # -javah.version=javah \u30d0\u30fc\u30b8\u30e7\u30f3 "{0}" +javah.version={0}\u30D0\u30FC\u30B8\u30E7\u30F3"{1}" +javah.fullVersion={0}\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"{1}" # # These should have better diagnostics. # -super.class.not.found=\u8981\u6c42\u3055\u308c\u305f\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -class.not.found=\u30af\u30e9\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -io.exception=\u30e1\u30c3\u30bb\u30fc\u30b8 {0} \u306e\u5165\u51fa\u529b\u30a8\u30e9\u30fc\u304b\u3089\u56de\u5fa9\u3067\u304d\u307e\u305b\u3093\u3002 +super.class.not.found=\u8981\u6C42\u3055\u308C\u305F\u30B9\u30FC\u30D1\u30FC\u30FB\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +class.not.found=\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +io.exception=\u30E1\u30C3\u30BB\u30FC\u30B8{0}\u306E\u5165\u51FA\u529B\u30A8\u30E9\u30FC\u304B\u3089\u56DE\u5FA9\u3067\u304D\u307E\u305B\u3093\u3002 # # Problems in the guts of javah. # -encoding.iso8859_1.not.found=\u51fa\u529b\u7528\u306e ISO8859_1 \u30b3\u30f3\u30d0\u30fc\u30bf\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u30a8\u30e9\u30fc\u304c\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 -tried.to.define.non.static=static \u3067\u306a\u3044\u30d5\u30a3\u30fc\u30eb\u30c9\u306b #define \u3092\u751f\u6210\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\u3002 -jni.unknown.type=\u672a\u77e5\u306e\u578b\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f (JNI). -unknown.array.type=\u53e4\u3044\u5f62\u5f0f\u306e\u30d8\u30c3\u30c0\u3092\u751f\u6210\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u672a\u77e5\u306e\u914d\u5217\u306e\u578b\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002 -unknown.type.for.field=\u53e4\u3044\u5f62\u5f0f\u306e\u30d8\u30c3\u30c0\u3092\u751f\u6210\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u672a\u77e5\u306e\u578b\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002 -unknown.type.in.method.signature=\u53e4\u3044\u5f62\u5f0f\u306e\u30b9\u30bf\u30d6\u3092\u751f\u6210\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u672a\u77e5\u306e\u578b\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002 +encoding.iso8859_1.not.found=\u51FA\u529B\u7528\u306EISO8859_1\u30B3\u30F3\u30D0\u30FC\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 +tried.to.define.non.static=static\u3067\u306A\u3044\u30D5\u30A3\u30FC\u30EB\u30C9\u306B#define\u3092\u751F\u6210\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +jni.unknown.type=\u4E0D\u660E\u306A\u578B\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F(JNI)\u3002 +unknown.array.type=\u53E4\u3044\u5F62\u5F0F\u306E\u30D8\u30C3\u30C0\u30FC\u3092\u751F\u6210\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u4E0D\u660E\u306A\u914D\u5217\u306E\u578B\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 +unknown.type.for.field=\u53E4\u3044\u5F62\u5F0F\u306E\u30D8\u30C3\u30C0\u30FC\u3092\u751F\u6210\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u4E0D\u660E\u306A\u578B\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 +unknown.type.in.method.signature=\u53E4\u3044\u5F62\u5F0F\u306E\u30B9\u30BF\u30D6\u3092\u751F\u6210\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u4E0D\u660E\u306A\u578B\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 + + +err.prefix=\u30A8\u30E9\u30FC: +err.cant.use.option.for.fm=\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u30FB\u30DE\u30CD\u30FC\u30B8\u30E3\u3067{0}\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 +err.internal.error=\u5185\u90E8\u30A8\u30E9\u30FC: {0} +err.ioerror=\u5165\u51FA\u529B\u30A8\u30E9\u30FC: {0} +err.missing.arg={0}\u306E\u5024\u304C\u3042\u308A\u307E\u305B\u3093 +err.no.classes.specified=\u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +err.unknown.option=\u4E0D\u660E\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}
--- a/src/share/classes/com/sun/tools/javah/resources/l10n_zh_CN.properties Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javah/resources/l10n_zh_CN.properties Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 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 @@ -21,98 +21,76 @@ # 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. -# +# # # User errors, command line errors. # -cant.create.dir=\ - \u65e0\u6cd5\u4e3a\u8f93\u51fa\u521b\u5efa\u76ee\u5f55 {0}\u3002 -at.args.cant.read=\ - \u65e0\u6cd5\u4ece\u6587\u4ef6 {1} \u4e2d\u8bfb\u53d6\u547d\u4ee4\u884c\u53c2\u6570\u3002 -at.args.io.exception=\ - \u5904\u7406\u547d\u4ee4\u884c\u4e2d\u7684 @\ -\u53c2\u6570\u65f6\uff0c\u9047\u5230\u4ee5\u4e0b I/O \u95ee\u9898\uff1a{0}\u3002 -old.jni.mixed=\ - \u4e0d\u80fd\u6df7\u7528\u9009\u9879 -jni \u548c -old\u3002\u8bf7\u5c1d\u8bd5\u4f7f\u7528 -help\u3002 -old.llni.mixed=\ - \u4e0d\u80fd\u6df7\u7528\u9009\u9879 -old \u548c -llni\u3002\u8bf7\u5c1d\u8bd5\u4f7f\u7528 -help\u3002 -old.not.supported=\ - \u6b64\u7248\u672c\u7684 javah \u4e0d\u652f\u6301\u9009\u9879 -old\u3002 -invalid.method.signature=\ - \u65e0\u6548\u7684\u65b9\u6cd5\u7b7e\u540d\uff1a {0} -jni.llni.mixed=\ - \u4e0d\u80fd\u6df7\u7528\u9009\u9879 -jni \u548c -llni\u3002\u8bf7\u5c1d\u8bd5\u4f7f\u7528 -help\u3002 -jni.no.stubs=\ - JNI \u4e0d\u9700\u8981\u5b58\u6839\uff0c\u8bf7\u53c2\u9605 JNI \u6587\u6863\u3002 -dir.file.mixed=\ - \u4e0d\u80fd\u6df7\u7528\u9009\u9879 -d \u548c -o\u3002\u8bf7\u5c1d\u8bd5\u4f7f\u7528 -help\u3002 -no.classes.specified=\ - \u672a\u5728\u547d\u4ee4\u884c\u4e2d\u6307\u5b9a\u4efb\u4f55\u7c7b\u3002\u8bf7\u5c1d\u8bd5\u4f7f\u7528 -help\u3002 -no.outputfile.specified=\ - \u672a\u5728\u547d\u4ee4\u884c\u4e2d\u6307\u5b9a\u4efb\u4f55\u8f93\u51fa\u6587\u4ef6\u3002\u8bf7\u5c1d\u8bd5\u4f7f\u7528 -help\u3002 -no.outputdir.specified=\ - \u672a\u5728\u547d\u4ee4\u884c\u4e2d\u6307\u5b9a\u4efb\u4f55\u8f93\u51fa\u76ee\u5f55\u3002\u8bf7\u5c1d\u8bd5\u4f7f\u7528 -help\u3002 -no.classpath.specified=\ - \u672a\u5728\u547d\u4ee4\u884c\u4e2d\u6307\u5b9a\u4efb\u4f55\u7c7b\u8def\u5f84\u3002\u8bf7\u5c1d\u8bd5\u4f7f\u7528 -help\u3002 -no.bootclasspath.specified=\ - \u672a\u5728\u547d\u4ee4\u884c\u4e2d\u6307\u5b9a\u4efb\u4f55\u5f15\u5bfc\u7c7b\u8def\u5f84\u3002\u8bf7\u5c1d\u8bd5\u4f7f\u7528 -help\u3002 -unknown.option=\ - {0} \u662f\u975e\u6cd5\u53c2\u6570\n -tracing.not.supported=\ - \u8b66\u544a\uff1a\u4e0d\u518d\u652f\u6301\u8ddf\u8e2a\u3002\u8bf7\u4f7f\u7528\ - \u865a\u62df\u673a\u7684 -verbose:jni \u9009\u9879\u3002 +cant.create.dir=\u65E0\u6CD5\u4E3A\u8F93\u51FA\u521B\u5EFA\u76EE\u5F55 {0}\u3002 +at.args.cant.read=\u65E0\u6CD5\u4ECE\u6587\u4EF6{1}\u4E2D\u8BFB\u53D6\u547D\u4EE4\u884C\u53C2\u6570\u3002 +at.args.file.not.found=\u627E\u4E0D\u5230\u6587\u4EF6{0}\u3002 +at.args.io.exception=\u5904\u7406\u547D\u4EE4\u884C\u4E2D\u7684 @ \u53C2\u6570\u65F6, \u9047\u5230\u4EE5\u4E0B I/O \u95EE\u9898: {0}\u3002 +old.jni.mixed=\u4E0D\u80FD\u6DF7\u7528\u9009\u9879 -jni \u548C -old\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 -help\u3002 +old.llni.mixed=\u4E0D\u80FD\u6DF7\u7528\u9009\u9879 -old \u548C -llni\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 -help\u3002 +old.not.supported=\u6B64\u7248\u672C\u7684 javah \u4E0D\u652F\u6301\u9009\u9879 -old\u3002 +invalid.method.signature=\u65E0\u6548\u7684\u65B9\u6CD5\u7B7E\u540D: {0} +jni.llni.mixed=\u4E0D\u80FD\u6DF7\u7528\u9009\u9879 -jni \u548C -llni\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 -help\u3002 +jni.no.stubs=JNI \u4E0D\u9700\u8981\u5B58\u6839, \u8BF7\u53C2\u9605 JNI \u6587\u6863\u3002 +jni.sigerror=\u65E0\u6CD5\u786E\u5B9A{0}\u7684\u7B7E\u540D +dir.file.mixed=\u4E0D\u80FD\u6DF7\u7528\u9009\u9879 -d \u548C -o\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 -help\u3002 +no.classes.specified=\u672A\u5728\u547D\u4EE4\u884C\u4E2D\u6307\u5B9A\u4EFB\u4F55\u7C7B\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 -help\u3002 +no.outputfile.specified=\u672A\u5728\u547D\u4EE4\u884C\u4E2D\u6307\u5B9A\u4EFB\u4F55\u8F93\u51FA\u6587\u4EF6\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 -help\u3002 +no.outputdir.specified=\u672A\u5728\u547D\u4EE4\u884C\u4E2D\u6307\u5B9A\u4EFB\u4F55\u8F93\u51FA\u76EE\u5F55\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 -help\u3002 +no.classpath.specified=\u672A\u5728\u547D\u4EE4\u884C\u4E2D\u6307\u5B9A\u4EFB\u4F55\u7C7B\u8DEF\u5F84\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 -help\u3002 +no.bootclasspath.specified=\u672A\u5728\u547D\u4EE4\u884C\u4E2D\u6307\u5B9A\u4EFB\u4F55\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 -help\u3002 +unknown.option={0}\u662F\u975E\u6CD5\u53C2\u6570\n +tracing.not.supported=\u8B66\u544A: \u4E0D\u518D\u652F\u6301\u8DDF\u8E2A\u3002\u8BF7\u4F7F\u7528\u865A\u62DF\u673A\u7684 -verbose:jni \u9009\u9879\u3002 # # Usage message. # -usage=\ -\u7528\u6cd5\uff1ajavah [\u9009\u9879] <\u7c7b>\n\ -\n\ -\u5176\u4e2d [\u9009\u9879] \u5305\u62ec\uff1a\n\ -\n\t\ --help \u8f93\u51fa\u6b64\u5e2e\u52a9\u6d88\u606f\u5e76\u9000\u51fa\n\t\ --classpath <\u8def\u5f84> \u7528\u4e8e\u88c5\u5165\u7c7b\u7684\u8def\u5f84\n\t\ --bootclasspath <\u8def\u5f84> \u7528\u4e8e\u88c5\u5165\u5f15\u5bfc\u7c7b\u7684\u8def\u5f84\n\t\ --d <\u76ee\u5f55> \u8f93\u51fa\u76ee\u5f55\n\t\ --o <\u6587\u4ef6> \u8f93\u51fa\u6587\u4ef6\uff08\u53ea\u80fd\u4f7f\u7528 -d \u6216 -o \u4e2d\u7684\u4e00\u4e2a\uff09\n\t\ --jni \u751f\u6210 JNI\u6837\u5f0f\u7684\u5934\u6587\u4ef6\uff08\u9ed8\u8ba4\uff09\n\t\ --version \u8f93\u51fa\u7248\u672c\u4fe1\u606f\n\t\ --verbose \u542f\u7528\u8be6\u7ec6\u8f93\u51fa\n\t\ --force \u59cb\u7ec8\u5199\u5165\u8f93\u51fa\u6587\u4ef6\n\ -\n\ -\u4f7f\u7528\u5168\u9650\u5b9a\u540d\u79f0\u6307\u5b9a <\u7c7b>\uff08\u4f8b\n\ -\u5982\uff0cjava.lang.Object\uff09\u3002\n +usage=\u7528\u6CD5: javah [options] <classes>\n\n\u5176\u4E2D, [options] \u5305\u62EC:\n\n\t-help \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F\u5E76\u9000\u51FA\n\t-classpath <path> \u4ECE\u4E2D\u52A0\u8F7D\u7C7B\u7684\u8DEF\u5F84\n\t-bootclasspath <path> \u4ECE\u4E2D\u52A0\u8F7D\u5F15\u5BFC\u7C7B\u7684\u8DEF\u5F84\n\t-d <dir> \u8F93\u51FA\u76EE\u5F55\n\t-o <file> \u8F93\u51FA\u6587\u4EF6 (\u53EA\u80FD\u4F7F\u7528 -d \u6216 -o \u4E4B\u4E00)\n\t-jni \u751F\u6210 JNI \u6837\u5F0F\u7684\u6807\u5934\u6587\u4EF6 (\u9ED8\u8BA4\u503C)\n\t-version \u8F93\u51FA\u7248\u672C\u4FE1\u606F\n\t-verbose \u542F\u7528\u8BE6\u7EC6\u8F93\u51FA\n\t-force \u59CB\u7EC8\u5199\u5165\u8F93\u51FA\u6587\u4EF6\n\n<classes> \u662F\u4F7F\u7528\u5176\u5168\u9650\u5B9A\u540D\u79F0\u6307\u5B9A\u7684,\n(\u4F8B\u5982 java.lang.Object)\u3002\n + +main.usage=\u7528\u6CD5: \n\ javah [options] <classes>\n\u5176\u4E2D, [options] \u5305\u62EC: +main.opt.o=\ -o <file> \u8F93\u51FA\u6587\u4EF6 (\u53EA\u80FD\u4F7F\u7528 -d \u6216 -o \u4E4B\u4E00) +main.opt.d=\ -d <dir> \u8F93\u51FA\u76EE\u5F55 +main.opt.v=\ -v -verbose \u542F\u7528\u8BE6\u7EC6\u8F93\u51FA +main.opt.h=\ -h --help -? \u8F93\u51FA\u6B64\u6D88\u606F +main.opt.version=\ -version \u8F93\u51FA\u7248\u672C\u4FE1\u606F +main.opt.jni=\ -jni \u751F\u6210 JNI \u6837\u5F0F\u7684\u6807\u5934\u6587\u4EF6 (\u9ED8\u8BA4\u503C) +main.opt.force=\ -force \u59CB\u7EC8\u5199\u5165\u8F93\u51FA\u6587\u4EF6 +main.opt.classpath=\ -classpath <path> \u4ECE\u4E2D\u52A0\u8F7D\u7C7B\u7684\u8DEF\u5F84 +main.opt.bootclasspath=\ -bootclasspath <path> \u4ECE\u4E2D\u52A0\u8F7D\u5F15\u5BFC\u7C7B\u7684\u8DEF\u5F84 +main.usage.foot=<classes> \u662F\u4F7F\u7528\u5176\u5168\u9650\u5B9A\u540D\u79F0\u6307\u5B9A\u7684\n(\u4F8B\u5982, java.lang.Object)\u3002 # # Version string. # -javah.version=javah \u7248\u672c "{0}" +javah.version={0}\u7248\u672C "{1}" +javah.fullVersion={0}\u5B8C\u6574\u7248\u672C "{1}" # # These should have better diagnostics. # -super.class.not.found=\ - \u627e\u4e0d\u5230\u6240\u9700\u7684\u7236\u7c7b {0}\u3002 -class.not.found=\ - \u627e\u4e0d\u5230\u7c7b {0}\u3002 -io.exception=\ - \u65e0\u6cd5\u4ece I/O \u9519\u8bef\u4e2d\u6062\u590d\uff0c\u6d88\u606f\u4e3a\uff1a \ - {0}\u3002 +super.class.not.found=\u627E\u4E0D\u5230\u6240\u9700\u7684\u8D85\u7C7B{0}\u3002 +class.not.found=\u627E\u4E0D\u5230\u7C7B{0}\u3002 +io.exception=\u65E0\u6CD5\u4ECE I/O \u9519\u8BEF\u4E2D\u6062\u590D, \u6D88\u606F\u4E3A: {0}\u3002 # # Problems in the guts of javah. # -encoding.iso8859_1.not.found=\ - \u627e\u4e0d\u5230\u7528\u4e8e\u8f93\u51fa\u7684 ISO8859_1 \u8f6c\u6362\u5668\u3002\u8fd9\u53ef\u80fd\u662f\ -\u56e0\u4e3a\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u4e86\u9519\u8bef\u3002 -tried.to.define.non.static=\ - \u5c1d\u8bd5\u4e3a\u975e\u9759\u6001\u5b57\u6bb5\u751f\u6210 #define\u3002 -jni.unknown.type=\ - \u9047\u5230\u672a\u77e5\u7c7b\u578b (JNI)\u3002 -unknown.array.type=\ - \u751f\u6210\u65e7\u6837\u5f0f\u7684\u6807\u5934\u65f6\u9047\u5230\u672a\u77e5\u7684\u6570\u7ec4\u7c7b\u578b\u3002 -unknown.type.for.field=\ - \u751f\u6210\u65e7\u6837\u5f0f\u7684\u6807\u5934\u65f6\u9047\u5230\u672a\u77e5\u7684\u7c7b\u578b\u3002 -unknown.type.in.method.signature=\ - \u751f\u6210\u65e7\u6837\u5f0f\u7684\u5b58\u6839\u65f6\u9047\u5230\u672a\u77e5\u7684\u7c7b\u578b\u3002 +encoding.iso8859_1.not.found=\u627E\u4E0D\u5230\u7528\u4E8E\u8F93\u51FA\u7684 ISO8859_1 \u8F6C\u6362\u5668\u3002\u8FD9\u53EF\u80FD\u662F\u56E0\u4E3A\u5B89\u88C5\u8FC7\u7A0B\u4E2D\u51FA\u73B0\u4E86\u9519\u8BEF\u3002 +tried.to.define.non.static=\u5C1D\u8BD5\u4E3A\u975E\u9759\u6001\u5B57\u6BB5\u751F\u6210 #define\u3002 +jni.unknown.type=\u9047\u5230\u672A\u77E5\u7C7B\u578B (JNI)\u3002 +unknown.array.type=\u751F\u6210\u65E7\u6837\u5F0F\u7684\u6807\u5934\u65F6\u9047\u5230\u672A\u77E5\u7684\u6570\u7EC4\u7C7B\u578B\u3002 +unknown.type.for.field=\u751F\u6210\u65E7\u6837\u5F0F\u7684\u6807\u5934\u65F6\u9047\u5230\u672A\u77E5\u7684\u7C7B\u578B\u3002 +unknown.type.in.method.signature=\u751F\u6210\u65E7\u6837\u5F0F\u7684\u5B58\u6839\u65F6\u9047\u5230\u672A\u77E5\u7684\u7C7B\u578B\u3002 + + +err.prefix=\u9519\u8BEF: +err.cant.use.option.for.fm=\u4E0D\u80FD\u5C06{0}\u9009\u9879\u4E0E\u7ED9\u5B9A\u7684\u6587\u4EF6\u7BA1\u7406\u5668\u4E00\u8D77\u4F7F\u7528 +err.internal.error=\u5185\u90E8\u9519\u8BEF: {0} +err.ioerror=IO \u9519\u8BEF: {0} +err.missing.arg={0}\u7F3A\u5C11\u503C +err.no.classes.specified=\u672A\u6307\u5B9A\u7C7B +err.unknown.option=\u672A\u77E5\u9009\u9879: {0}
--- a/src/share/classes/com/sun/tools/javap/AnnotationWriter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javap/AnnotationWriter.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -26,7 +26,6 @@ package com.sun.tools.javap; import com.sun.tools.classfile.Annotation; -import com.sun.tools.classfile.ExtendedAnnotation; import com.sun.tools.classfile.Annotation.Annotation_element_value; import com.sun.tools.classfile.Annotation.Array_element_value; import com.sun.tools.classfile.Annotation.Class_element_value; @@ -77,129 +76,6 @@ print(")"); } - public void write(ExtendedAnnotation annot) { - write(annot, true, false); - } - - public void write(ExtendedAnnotation annot, boolean showOffsets, boolean resolveIndices) { - write(annot.annotation, resolveIndices); - print(": "); - write(annot.position, showOffsets); - } - - public void write(ExtendedAnnotation.Position pos, boolean showOffsets) { - print(pos.type); - - switch (pos.type) { - // type case - case TYPECAST: - case TYPECAST_GENERIC_OR_ARRAY: - // object creation - case INSTANCEOF: - case INSTANCEOF_GENERIC_OR_ARRAY: - // new expression - case NEW: - case NEW_GENERIC_OR_ARRAY: - case NEW_TYPE_ARGUMENT: - case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - if (showOffsets) { - print(", offset="); - print(pos.offset); - } - break; - // local variable - case LOCAL_VARIABLE: - case LOCAL_VARIABLE_GENERIC_OR_ARRAY: - print(", {"); - for (int i = 0; i < pos.lvarOffset.length; ++i) { - if (i != 0) print("; "); - if (showOffsets) { - print(", start_pc="); - print(pos.lvarOffset[i]); - } - print(", length="); - print(pos.lvarLength[i]); - print(", index="); - print(pos.lvarIndex[i]); - } - print("}"); - break; - // method receiver - case METHOD_RECEIVER: - // Do nothing - break; - // type parameters - case CLASS_TYPE_PARAMETER: - case METHOD_TYPE_PARAMETER: - print(", param_index="); - print(pos.parameter_index); - break; - // type parameters bound - case CLASS_TYPE_PARAMETER_BOUND: - case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - case METHOD_TYPE_PARAMETER_BOUND: - case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY: - print(", param_index="); - print(pos.parameter_index); - print(", bound_index="); - print(pos.bound_index); - break; - // wildcard - case WILDCARD_BOUND: - case WILDCARD_BOUND_GENERIC_OR_ARRAY: - print(", wild_card="); - print(pos.wildcard_position); - break; - // Class extends and implements clauses - case CLASS_EXTENDS: - case CLASS_EXTENDS_GENERIC_OR_ARRAY: - print(", type_index="); - print(pos.type_index); - break; - // throws - case THROWS: - print(", type_index="); - print(pos.type_index); - break; - case CLASS_LITERAL: - case CLASS_LITERAL_GENERIC_OR_ARRAY: - if (showOffsets) { - print(", offset="); - print(pos.offset); - } - break; - // method parameter: not specified - case METHOD_PARAMETER_GENERIC_OR_ARRAY: - print(", param_index="); - print(pos.parameter_index); - break; - // method type argument: wasn't specified - case METHOD_TYPE_ARGUMENT: - case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY: - if (showOffsets) { - print(", offset="); - print(pos.offset); - } - print(", type_index="); - print(pos.type_index); - break; - // We don't need to worry abut these - case METHOD_RETURN_GENERIC_OR_ARRAY: - case FIELD_GENERIC_OR_ARRAY: - break; - case UNKNOWN: - break; - default: - throw new AssertionError("unknown type: " + pos.type); - } - - // Append location data for generics/arrays. - if (pos.type.hasLocation()) { - print(", location="); - print(pos.location); - } - } - public void write(Annotation.element_value_pair pair) { write(pair, false); }
--- a/src/share/classes/com/sun/tools/javap/AttributeWriter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javap/AttributeWriter.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -31,6 +31,7 @@ import com.sun.tools.classfile.AnnotationDefault_attribute; import com.sun.tools.classfile.Attribute; import com.sun.tools.classfile.Attributes; +import com.sun.tools.classfile.BootstrapMethods_attribute; import com.sun.tools.classfile.CharacterRangeTable_attribute; import com.sun.tools.classfile.Code_attribute; import com.sun.tools.classfile.CompilationID_attribute; @@ -47,10 +48,8 @@ import com.sun.tools.classfile.LocalVariableTypeTable_attribute; import com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute; import com.sun.tools.classfile.RuntimeInvisibleParameterAnnotations_attribute; -import com.sun.tools.classfile.RuntimeInvisibleTypeAnnotations_attribute; import com.sun.tools.classfile.RuntimeVisibleAnnotations_attribute; import com.sun.tools.classfile.RuntimeVisibleParameterAnnotations_attribute; -import com.sun.tools.classfile.RuntimeVisibleTypeAnnotations_attribute; import com.sun.tools.classfile.Signature_attribute; import com.sun.tools.classfile.SourceDebugExtension_attribute; import com.sun.tools.classfile.SourceFile_attribute; @@ -153,6 +152,25 @@ return null; } + public Void visitBootstrapMethods(BootstrapMethods_attribute attr, Void p) { + println(Attribute.BootstrapMethods + ":"); + for (int i = 0; i < attr.bootstrap_method_specifiers.length ; i++) { + BootstrapMethods_attribute.BootstrapMethodSpecifier bsm = attr.bootstrap_method_specifiers[i]; + indent(+1); + print(i + ": #" + bsm.bootstrap_method_ref + " "); + println(constantWriter.stringValue(bsm.bootstrap_method_ref)); + indent(+1); + println("Method arguments:"); + indent(+1); + for (int j = 0; j < bsm.bootstrap_arguments.length; j++) { + print("#" + bsm.bootstrap_arguments[j] + " "); + println(constantWriter.stringValue(bsm.bootstrap_arguments[j])); + } + indent(-3); + } + return null; + } + public Void visitCharacterRangeTable(CharacterRangeTable_attribute attr, Void ignore) { println("CharacterRangeTable:"); indent(+1); @@ -392,30 +410,6 @@ return null; } - public Void visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, Void ignore) { - println("RuntimeVisibleTypeAnnotations:"); - indent(+1); - for (int i = 0; i < attr.annotations.length; i++) { - print(i + ": "); - annotationWriter.write(attr.annotations[i]); - println(); - } - indent(-1); - return null; - } - - public Void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, Void ignore) { - println("RuntimeInvisibleTypeAnnotations:"); - indent(+1); - for (int i = 0; i < attr.annotations.length; i++) { - print(i + ": "); - annotationWriter.write(attr.annotations[i]); - println(); - } - indent(-1); - return null; - } - public Void visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, Void ignore) { println("RuntimeVisibleParameterAnnotations:"); indent(+1);
--- a/src/share/classes/com/sun/tools/javap/CodeWriter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javap/CodeWriter.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -64,7 +64,6 @@ stackMapWriter = StackMapWriter.instance(context); localVariableTableWriter = LocalVariableTableWriter.instance(context); localVariableTypeTableWriter = LocalVariableTypeTableWriter.instance(context); - typeAnnotationWriter = TypeAnnotationWriter.instance(context); options = Options.instance(context); } @@ -266,11 +265,6 @@ detailWriters.add(tryBlockWriter); } - if (options.details.contains(InstructionDetailWriter.Kind.TYPE_ANNOS)) { - typeAnnotationWriter.reset(attr); - detailWriters.add(typeAnnotationWriter); - } - return detailWriters; } @@ -279,7 +273,6 @@ private ConstantWriter constantWriter; private LocalVariableTableWriter localVariableTableWriter; private LocalVariableTypeTableWriter localVariableTypeTableWriter; - private TypeAnnotationWriter typeAnnotationWriter; private SourceWriter sourceWriter; private StackMapWriter stackMapWriter; private TryBlockWriter tryBlockWriter;
--- a/src/share/classes/com/sun/tools/javap/ConstantWriter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javap/ConstantWriter.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -97,6 +97,13 @@ return 1; } + public Integer visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, Void p) { + print("#" + info.bootstrap_method_attr_index + ":#" + info.name_and_type_index); + tab(); + println("// " + stringValue(info)); + return 1; + } + public Integer visitLong(CONSTANT_Long_info info, Void p) { println(stringValue(info)); return 2; @@ -116,6 +123,20 @@ return 1; } + public Integer visitMethodHandle(CONSTANT_MethodHandle_info info, Void p) { + print("#" + info.reference_kind.tag + ":#" + info.reference_index); + tab(); + println("// " + stringValue(info)); + return 1; + } + + public Integer visitMethodType(CONSTANT_MethodType_info info, Void p) { + print("#" + info.descriptor_index); + tab(); + println("// " + stringValue(info)); + return 1; + } + public Integer visitString(CONSTANT_String_info info, Void p) { print("#" + info.string_index); tab(); @@ -201,14 +222,20 @@ return "String"; case CONSTANT_Fieldref: return "Field"; + case CONSTANT_MethodHandle: + return "MethodHandle"; + case CONSTANT_MethodType: + return "MethodType"; case CONSTANT_Methodref: return "Method"; case CONSTANT_InterfaceMethodref: return "InterfaceMethod"; + case CONSTANT_InvokeDynamic: + return "InvokeDynamic"; case CONSTANT_NameAndType: return "NameAndType"; default: - return "(unknown tag)"; + return "(unknown tag " + tag + ")"; } } @@ -264,6 +291,15 @@ return visitRef(info, p); } + public String visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, Void p) { + try { + String callee = stringValue(info.getNameAndTypeInfo()); + return "#" + info.bootstrap_method_attr_index + ":" + callee; + } catch (ConstantPoolException e) { + return report(e); + } + } + public String visitLong(CONSTANT_Long_info info, Void p) { return info.value + "l"; } @@ -288,6 +324,22 @@ } } + public String visitMethodHandle(CONSTANT_MethodHandle_info info, Void p) { + try { + return info.reference_kind.name + " " + stringValue(info.getCPRefInfo()); + } catch (ConstantPoolException e) { + return report(e); + } + } + + public String visitMethodType(CONSTANT_MethodType_info info, Void p) { + try { + return info.getType(); + } catch (ConstantPoolException e) { + return report(e); + } + } + public String visitMethodref(CONSTANT_Methodref_info info, Void p) { return visitRef(info, p); } @@ -347,7 +399,6 @@ } } - /* If name is a valid binary name, return it; otherwise quote it. */ private static String checkName(String name) { if (name == null)
--- a/src/share/classes/com/sun/tools/javap/InstructionDetailWriter.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/com/sun/tools/javap/InstructionDetailWriter.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011, 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 @@ -42,13 +42,13 @@ LOCAL_VAR_TYPES("localVariableTypes"), SOURCE("source"), STACKMAPS("stackMaps"), - TRY_BLOCKS("tryBlocks"), - TYPE_ANNOS("typeAnnotations"); + TRY_BLOCKS("tryBlocks"); Kind(String option) { this.option = option; } final String option; } + InstructionDetailWriter(Context context) { super(context); }
--- a/src/share/classes/com/sun/tools/javap/TypeAnnotationWriter.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.sun.tools.javap; - -import com.sun.tools.classfile.Attribute; -import com.sun.tools.classfile.Code_attribute; -import com.sun.tools.classfile.ExtendedAnnotation; -import com.sun.tools.classfile.ExtendedAnnotation.Position; -import com.sun.tools.classfile.Instruction; -import com.sun.tools.classfile.Method; -import com.sun.tools.classfile.RuntimeInvisibleTypeAnnotations_attribute; -import com.sun.tools.classfile.RuntimeTypeAnnotations_attribute; -import com.sun.tools.classfile.RuntimeVisibleTypeAnnotations_attribute; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Annotate instructions with details about type annotations. - * - * <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. - * This code and its internal interfaces are subject to change or - * deletion without notice.</b> - */ -public class TypeAnnotationWriter extends InstructionDetailWriter { - public enum NoteKind { VISIBLE, INVISIBLE }; - public static class Note { - Note(NoteKind kind, ExtendedAnnotation anno) { - this.kind = kind; - this.anno = anno; - } - public final NoteKind kind; - public final ExtendedAnnotation anno; - } - - static TypeAnnotationWriter instance(Context context) { - TypeAnnotationWriter instance = context.get(TypeAnnotationWriter.class); - if (instance == null) - instance = new TypeAnnotationWriter(context); - return instance; - } - - protected TypeAnnotationWriter(Context context) { - super(context); - context.put(TypeAnnotationWriter.class, this); - annotationWriter = AnnotationWriter.instance(context); - classWriter = ClassWriter.instance(context); - } - - public void reset(Code_attribute attr) { - Method m = classWriter.getMethod(); - pcMap = new HashMap<Integer, List<Note>>(); - check(NoteKind.VISIBLE, (RuntimeVisibleTypeAnnotations_attribute) m.attributes.get(Attribute.RuntimeVisibleTypeAnnotations)); - check(NoteKind.INVISIBLE, (RuntimeInvisibleTypeAnnotations_attribute) m.attributes.get(Attribute.RuntimeInvisibleTypeAnnotations)); - } - - private void check(NoteKind kind, RuntimeTypeAnnotations_attribute attr) { - if (attr == null) - return; - - for (ExtendedAnnotation anno: attr.annotations) { - Position p = anno.position; - Note note = null; - if (p.offset != -1) - addNote(p.offset, note = new Note(kind, anno)); - if (p.lvarOffset != null) { - for (int i = 0; i < p.lvarOffset.length; i++) { - if (note == null) - note = new Note(kind, anno); - addNote(p.lvarOffset[i], note); - } - } - } - } - - private void addNote(int pc, Note note) { - List<Note> list = pcMap.get(pc); - if (list == null) - pcMap.put(pc, list = new ArrayList<Note>()); - list.add(note); - } - - @Override - void writeDetails(Instruction instr) { - String indent = space(2); // get from Options? - int pc = instr.getPC(); - List<Note> notes = pcMap.get(pc); - if (notes != null) { - for (Note n: notes) { - print(indent); - print("@"); - annotationWriter.write(n.anno, false, true); - print(", "); - println(n.kind.toString().toLowerCase()); - } - } - } - - private AnnotationWriter annotationWriter; - private ClassWriter classWriter; - private Map<Integer, List<Note>> pcMap; -}
--- a/src/share/classes/javax/lang/model/element/Element.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/element/Element.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -159,18 +159,26 @@ Set<Modifier> getModifiers(); /** - * Returns the simple (unqualified) name of this element. - * The name of a generic type does not include any reference - * to its formal type parameters. - * For example, the simple name of the type element - * {@code java.util.Set<E>} is {@code "Set"}. - * If this element represents an unnamed package, an empty name is - * returned. If it represents a constructor, the name "{@code - * <init>}" is returned. If it represents a static initializer, - * the name "{@code <clinit>}" is returned. If it represents an - * anonymous class or instance initializer, an empty name is + * Returns the simple (unqualified) name of this element. The + * name of a generic type does not include any reference to its + * formal type parameters. + * + * For example, the simple name of the type element {@code + * java.util.Set<E>} is {@code "Set"}. + * + * If this element represents an unnamed {@linkplain + * PackageElement#getSimpleName package}, an empty name is * returned. * + * If it represents a {@linkplain ExecutableElement#getSimpleName + * constructor}, the name "{@code <init>}" is returned. If it + * represents a {@linkplain ExecutableElement#getSimpleName static + * initializer}, the name "{@code <clinit>}" is returned. + * + * If it represents an {@linkplain TypeElement#getSimpleName + * anonymous class} or {@linkplain ExecutableElement#getSimpleName + * instance initializer}, an empty name is returned. + * * @return the simple name of this element */ Name getSimpleName(); @@ -182,9 +190,18 @@ * <li> If this element is one whose declaration is lexically enclosed * immediately within the declaration of another element, that other * element is returned. - * <li> If this is a top-level type, its package is returned. - * <li> If this is a package, {@code null} is returned. - * <li> If this is a type parameter, {@code null} is returned. + * + * <li> If this is a {@linkplain TypeElement#getEnclosingElement + * top-level type}, its package is returned. + * + * <li> If this is a {@linkplain + * PackageElement#getEnclosingElement package}, {@code null} is + * returned. + + * <li> If this is a {@linkplain + * TypeParameterElement#getEnclosingElement type parameter}, + * {@code null} is returned. + * </ul> * * @return the enclosing element, or {@code null} if there is none
--- a/src/share/classes/javax/lang/model/element/ExecutableElement.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/element/ExecutableElement.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -97,4 +97,17 @@ * @return the default value, or {@code null} if none */ AnnotationValue getDefaultValue(); + + /** + * Returns the simple name of a constructor, method, or + * initializer. For a constructor, the name {@code "<init>"} is + * returned, for a static initializer, the name {@code "<clinit>"} + * is returned, and for an anonymous class or instance + * initializer, an empty name is returned. + * + * @return the simple name of a constructor, method, or + * initializer + */ + @Override + Name getSimpleName(); }
--- a/src/share/classes/javax/lang/model/element/PackageElement.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/element/PackageElement.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -48,6 +48,16 @@ Name getQualifiedName(); /** + * Returns the simple name of this package. For an unnamed + * package, an empty name is returned + * + * @return the simple name of this package or an empty name if + * this is an unnamed package + */ + @Override + Name getSimpleName(); + + /** * Returns {@code true} is this is an unnamed package and {@code * false} otherwise. * @@ -56,4 +66,13 @@ * @jls3 7.4.2 Unnamed Packages */ boolean isUnnamed(); + + /** + * Returns {@code null} since a package is not enclosed by another + * element. + * + * @return {@code null} + */ + @Override + Element getEnclosingElement(); }
--- a/src/share/classes/javax/lang/model/element/TypeElement.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/element/TypeElement.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -105,6 +105,19 @@ */ Name getQualifiedName(); + + /** + * Returns the simple name of this type element. + * + * For an anonymous class, an empty name is returned. + * + * @return the simple name of this class or interface, + * an empty name for an anonymous class + * + */ + @Override + Name getSimpleName(); + /** * Returns the direct superclass of this type element. * If this type element represents an interface or the class @@ -132,4 +145,16 @@ * if there are none */ List<? extends TypeParameterElement> getTypeParameters(); + + + /** + * Returns the package of a top-level type and returns the + * immediately lexically enclosing element for a {@linkplain + * NestingKind#isNested nested} type. + * + * @return the package of a top-level type, the immediately + * lexically enclosing element for a nested type + */ + @Override + Element getEnclosingElement(); }
--- a/src/share/classes/javax/lang/model/element/TypeParameterElement.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/element/TypeParameterElement.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -62,4 +62,12 @@ * there are none */ List<? extends TypeMirror> getBounds(); + + /** + * Returns {@code null}. + * + * @return {@code null} + */ + @Override + Element getEnclosingElement(); }
--- a/src/share/classes/javax/lang/model/element/VariableElement.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/element/VariableElement.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -28,17 +28,16 @@ import javax.lang.model.type.TypeMirror; import javax.lang.model.util.Elements; - /** * Represents a field, {@code enum} constant, method or constructor - * parameter, local variable, or exception parameter. + * parameter, local variable, resource variable, or exception + * parameter. * * @author Joseph D. Darcy * @author Scott Seligman * @author Peter von der Ahé * @since 1.6 */ - public interface VariableElement extends Element { /**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/javax/lang/model/type/DisjunctiveType.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package javax.lang.model.type; + +import java.util.List; + +/** + * Represents a disjunctive type. + * + * As of the {@link javax.lang.model.SourceVersion#RELEASE_7 + * RELEASE_7} source version, disjunctive types can appear as the type + * of a multi-catch exception parameter. + * + * @since 1.7 + */ +public interface DisjunctiveType extends TypeMirror { + + /** + * Return the alternatives comprising this disjunctive type. + * + * The alternatives are formally referred to as <i>disjuncts</i>. + * + * @return the alternatives comprising this disjunctive type. + */ + List<? extends TypeMirror> getAlternatives(); +}
--- a/src/share/classes/javax/lang/model/type/TypeKind.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/type/TypeKind.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -137,7 +137,14 @@ * An implementation-reserved type. * This is not the type you are looking for. */ - OTHER; + OTHER, + + /** + * A disjunctive type. + * + * @since 1.7 + */ + DISJUNCTIVE; /** * Returns {@code true} if this kind corresponds to a primitive
--- a/src/share/classes/javax/lang/model/type/TypeVisitor.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/type/TypeVisitor.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -162,4 +162,14 @@ * a visitor implementation may optionally throw this exception */ R visitUnknown(TypeMirror t, P p); + + /** + * Visits a disjunctive type. + * + * @param t the type to visit + * @param p a visitor-specified parameter + * @return a visitor-specified result + * @since 1.7 + */ + R visitDisjunctive(DisjunctiveType t, P p); }
--- a/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -29,7 +29,8 @@ /** * A skeletal visitor of types with default behavior appropriate for - * the version 6 language level. + * the {@link javax.lang.model.SourceVersion#RELEASE_6 RELEASE_6} + * source version. * * <p> <b>WARNING:</b> The {@code TypeVisitor} interface implemented * by this class may have methods added to it in the future to @@ -95,6 +96,20 @@ } /** + * Visits a {@code DisjunctiveType} element by calling {@code + * visitUnknown}. + + * @param t {@inheritDoc} + * @param p {@inheritDoc} + * @return the result of {@code visitUnknown} + * + * @since 1.7 + */ + public R visitDisjunctive(DisjunctiveType t, P p) { + return visitUnknown(t, p); + } + + /** * {@inheritDoc} * * <p> The default implementation of this method in {@code
--- a/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011 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 @@ -29,7 +29,8 @@ /** * A skeletal visitor of types with default behavior appropriate for - * the version 7 language level. + * the {@link javax.lang.model.SourceVersion#RELEASE_7 RELEASE_7} + * source version. * * <p> <b>WARNING:</b> The {@code TypeVisitor} interface implemented * by this class may have methods added to it in the future to @@ -64,4 +65,13 @@ protected AbstractTypeVisitor7() { super(); } + + /** + * Visits a {@code DisjunctiveType} in a manner defined by a subclass. + * + * @param t {@inheritDoc} + * @param p {@inheritDoc} + * @return the result of the visit as defined by a subclass + */ + public abstract R visitDisjunctive(DisjunctiveType t, P p); }
--- a/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -199,7 +199,8 @@ * Visits a variable element, dispatching to the visit method for * the specific {@linkplain ElementKind kind} of variable, {@code * ENUM_CONSTANT}, {@code EXCEPTION_PARAMETER}, {@code FIELD}, - * {@code LOCAL_VARIABLE}, or {@code PARAMETER}. + * {@code LOCAL_VARIABLE}, {@code PARAMETER}, or {@code RESOURCE_VARIABLE}. + * * @param e {@inheritDoc} * @param p {@inheritDoc} * @return the result of the kind-specific visit method @@ -223,10 +224,12 @@ case PARAMETER: return visitVariableAsParameter(e, p); + case RESOURCE_VARIABLE: + return visitVariableAsResourceVariable(e, p); + default: throw new AssertionError("Bad kind " + k + " for VariableElement" + e); } - } /** @@ -290,6 +293,20 @@ } /** + * Visits a {@code RESOURCE_VARIABLE} variable element by calling + * {@code visitUnknown}. + * + * @param e the element to visit + * @param p a visitor-specified parameter + * @return the result of {@code visitUnknown} + * + * @since 1.7 + */ + public R visitVariableAsResourceVariable(VariableElement e, P p) { + return visitUnknown(e, p); + } + + /** * Visits an executable element, dispatching to the visit method * for the specific {@linkplain ElementKind kind} of executable, * {@code CONSTRUCTOR}, {@code INSTANCE_INIT}, {@code METHOD}, or
--- a/src/share/classes/javax/lang/model/util/ElementKindVisitor7.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/ElementKindVisitor7.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011 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 @@ -34,7 +34,7 @@ /** * A visitor of program elements based on their {@linkplain * ElementKind kind} with default behavior appropriate for the {@link - * SourceVersion#RELEASE_6 RELEASE_6} source version. For {@linkplain + * SourceVersion#RELEASE_7 RELEASE_7} source version. For {@linkplain * Element elements} <tt><i>XYZ</i></tt> that may have more than one * kind, the <tt>visit<i>XYZ</i></tt> methods in this class delegate * to the <tt>visit<i>XYZKind</i></tt> method corresponding to the @@ -94,4 +94,17 @@ protected ElementKindVisitor7(R defaultValue) { super(defaultValue); } + + /** + * Visits a {@code RESOURCE_VARIABLE} variable element by calling + * {@code defaultAction}. + * + * @param e {@inheritDoc} + * @param p {@inheritDoc} + * @return the result of {@code defaultAction} + */ + @Override + public R visitVariableAsResourceVariable(VariableElement e, P p) { + return defaultAction(e, p); + } }
--- a/src/share/classes/javax/lang/model/util/ElementScanner6.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/ElementScanner6.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -152,8 +152,8 @@ /** * {@inheritDoc} This implementation scans the enclosed elements. * - * @param e the element to visit - * @param p a visitor-specified parameter + * @param e {@inheritDoc} + * @param p {@inheritDoc} * @return the result of scanning */ public R visitPackage(PackageElement e, P p) { @@ -163,8 +163,8 @@ /** * {@inheritDoc} This implementation scans the enclosed elements. * - * @param e the element to visit - * @param p a visitor-specified parameter + * @param e {@inheritDoc} + * @param p {@inheritDoc} * @return the result of scanning */ public R visitType(TypeElement e, P p) { @@ -172,21 +172,28 @@ } /** - * {@inheritDoc} This implementation scans the enclosed elements. + * {@inheritDoc} * - * @param e the element to visit - * @param p a visitor-specified parameter + * This implementation scans the enclosed elements, unless the + * element is a {@code RESOURCE_VARIABLE} in which case {@code + * visitUnknown} is called. + * + * @param e {@inheritDoc} + * @param p {@inheritDoc} * @return the result of scanning */ public R visitVariable(VariableElement e, P p) { - return scan(e.getEnclosedElements(), p); + if (e.getKind() != ElementKind.RESOURCE_VARIABLE) + return scan(e.getEnclosedElements(), p); + else + return visitUnknown(e, p); } /** * {@inheritDoc} This implementation scans the parameters. * - * @param e the element to visit - * @param p a visitor-specified parameter + * @param e {@inheritDoc} + * @param p {@inheritDoc} * @return the result of scanning */ public R visitExecutable(ExecutableElement e, P p) { @@ -196,8 +203,8 @@ /** * {@inheritDoc} This implementation scans the enclosed elements. * - * @param e the element to visit - * @param p a visitor-specified parameter + * @param e {@inheritDoc} + * @param p {@inheritDoc} * @return the result of scanning */ public R visitTypeParameter(TypeParameterElement e, P p) {
--- a/src/share/classes/javax/lang/model/util/ElementScanner7.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/ElementScanner7.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -105,4 +105,16 @@ protected ElementScanner7(R defaultValue){ super(defaultValue); } + + /** + * This implementation scans the enclosed elements. + * + * @param e {@inheritDoc} + * @param p {@inheritDoc} + * @return the result of scanning + */ + @Override + public R visitVariable(VariableElement e, P p) { + return scan(e.getEnclosedElements(), p); + } }
--- a/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -36,8 +36,8 @@ /** * A simple visitor for annotation values with default behavior * appropriate for the {@link SourceVersion#RELEASE_7 RELEASE_7} - * source version. Visit methods call {@link - * #defaultAction} passing their arguments to {@code defaultAction}'s + * source version. Visit methods call {@link #defaultAction + * defaultAction} passing their arguments to {@code defaultAction}'s * corresponding parameters. * * <p> Methods in this class may be overridden subject to their
--- a/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -38,8 +38,11 @@ * source version. * * Visit methods corresponding to {@code RELEASE_6} language - * constructs call {@link #defaultAction}, passing their arguments to - * {@code defaultAction}'s corresponding parameters. + * constructs call {@link #defaultAction defaultAction}, passing their + * arguments to {@code defaultAction}'s corresponding parameters. + * + * For constructs introduced in {@code RELEASE_7} and later, {@code + * visitUnknown} is called instead. * * <p> Methods in this class may be overridden subject to their * general contract. Note that annotating methods in concrete @@ -137,14 +140,21 @@ } /** - * {@inheritDoc} This implementation calls {@code defaultAction}. + * {@inheritDoc} + * + * This implementation calls {@code defaultAction}, unless the + * element is a {@code RESOURCE_VARIABLE} in which case {@code + * visitUnknown} is called. * * @param e {@inheritDoc} * @param p {@inheritDoc} - * @return the result of {@code defaultAction} + * @return the result of {@code defaultAction} or {@code visitUnknown} */ public R visitVariable(VariableElement e, P p) { - return defaultAction(e, p); + if (e.getKind() != ElementKind.RESOURCE_VARIABLE) + return defaultAction(e, p); + else + return visitUnknown(e, p); } /**
--- a/src/share/classes/javax/lang/model/util/SimpleElementVisitor7.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/SimpleElementVisitor7.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -36,9 +36,10 @@ * appropriate for the {@link SourceVersion#RELEASE_7 RELEASE_7} * source version. * - * Visit methods corresponding to {@code RELEASE_7} language - * constructs call {@link #defaultAction}, passing their arguments to - * {@code defaultAction}'s corresponding parameters. + * Visit methods corresponding to {@code RELEASE_7} and earlier + * language constructs call {@link #defaultAction defaultAction}, + * passing their arguments to {@code defaultAction}'s corresponding + * parameters. * * <p> Methods in this class may be overridden subject to their * general contract. Note that annotating methods in concrete @@ -89,4 +90,16 @@ protected SimpleElementVisitor7(R defaultValue){ super(defaultValue); } + + /** + * This implementation calls {@code defaultAction}. + * + * @param e {@inheritDoc} + * @param p {@inheritDoc} + * @return the result of {@code defaultAction} + */ + @Override + public R visitVariable(VariableElement e, P p) { + return defaultAction(e, p); + } }
--- a/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -36,8 +36,11 @@ * {@link SourceVersion#RELEASE_6 RELEASE_6} source version. * * Visit methods corresponding to {@code RELEASE_6} language - * constructs call {@link #defaultAction}, passing their arguments to - * {@code defaultAction}'s corresponding parameters. + * constructs call {@link #defaultAction defaultAction}, passing their + * arguments to {@code defaultAction}'s corresponding parameters. + * + * For constructs introduced in {@code RELEASE_7} and later, {@code + * visitUnknown} is called instead. * * <p> Methods in this class may be overridden subject to their * general contract. Note that annotating methods in concrete
--- a/src/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -34,9 +34,10 @@ * A simple visitor of types with default behavior appropriate for the * {@link SourceVersion#RELEASE_7 RELEASE_7} source version. * - * Visit methods corresponding to {@code RELEASE_7} language - * constructs call {@link #defaultAction}, passing their arguments to - * {@code defaultAction}'s corresponding parameters. + * Visit methods corresponding to {@code RELEASE_7} and earlier + * language constructs call {@link #defaultAction defaultAction}, + * passing their arguments to {@code defaultAction}'s corresponding + * parameters. * * <p> Methods in this class may be overridden subject to their * general contract. Note that annotating methods in concrete @@ -88,4 +89,17 @@ protected SimpleTypeVisitor7(R defaultValue){ super(defaultValue); } + + /** + * This implementation visits a {@code DisjunctiveType} by calling + * {@code defaultAction}. + * + * @param t {@inheritDoc} + * @param p {@inheritDoc} + * @return the result of {@code defaultAction} + */ + @Override + public R visitDisjunctive(DisjunctiveType t, P p) { + return defaultAction(t, p); + } }
--- a/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -92,4 +92,17 @@ protected TypeKindVisitor7(R defaultValue) { super(defaultValue); } + + /** + * This implementation visits a {@code DisjunctiveType} by calling + * {@code defaultAction}. + * + * @param t {@inheritDoc} + * @param p {@inheritDoc} + * @return the result of {@code defaultAction} + */ + @Override + public R visitDisjunctive(DisjunctiveType t, P p) { + return defaultAction(t, p); + } }
--- a/src/share/classes/javax/lang/model/util/Types.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/lang/model/util/Types.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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
--- a/src/share/classes/javax/tools/JavaCompiler.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/tools/JavaCompiler.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -137,9 +137,9 @@ * StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null); * compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits).call(); * - * for (Diagnostic diagnostic : diagnostics.getDiagnostics()) - * System.out.format("Error on line %d in %d%n", - * diagnostic.getLineNumber() + * for (Diagnostic<? extends JavaFileObject> diagnostic : diagnostics.getDiagnostics()) + * System.out.format("Error on line %d in %s%n", + * diagnostic.getLineNumber(), * diagnostic.getSource().toUri()); * * fileManager.close();</pre>
--- a/src/share/classes/javax/tools/ToolProvider.java Mon Jan 10 16:57:27 2011 +0000 +++ b/src/share/classes/javax/tools/ToolProvider.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -172,7 +172,7 @@ { // try loading class directly, in case tool is on the bootclasspath try { - return enableAsserts(Class.forName(toolClassName, false, null)); + return Class.forName(toolClassName, false, null); } catch (ClassNotFoundException e) { trace(FINE, e); @@ -194,27 +194,10 @@ trace(FINE, urls[0].toString()); cl = URLClassLoader.newInstance(urls); - cl.setPackageAssertionStatus("com.sun.tools.javac", true); refToolClassLoader = new WeakReference<ClassLoader>(cl); } return Class.forName(toolClassName, false, cl); } - } - - private static Class<?> enableAsserts(Class<?> cls) { - try { - ClassLoader loader = cls.getClassLoader(); - if (loader != null) - loader.setPackageAssertionStatus("com.sun.tools.javac", true); - else - trace(FINE, "loader == null"); - } catch (SecurityException ex) { - trace(FINE, ex); - } - return cls; - } - - }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/5017953/T5017953.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,20 @@ +/* + * @test /nodynamiccopyright/ + * @bug 5017953 + * @summary spurious cascaded diagnostics when name not found + * @compile/fail/ref=T5017953.out -XDrawDiagnostics T5017953.java + */ + +class T5017953 { + + int f = 0; + void test(int i) {} + + { test(NonExistentClass.f ++); + test(1 + NonExistentClass.f); + test(NonExistentClass.f + 1); + test(NonExistentClass.f + NonExistentClass.f); + test(NonExistentClass.f += 1); + test(f += NonExistentClass.f); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/5017953/T5017953.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,8 @@ +T5017953.java:13:14: compiler.err.cant.resolve.location: kindname.variable, NonExistentClass, , , (compiler.misc.location: kindname.class, T5017953, null) +T5017953.java:14:18: compiler.err.cant.resolve.location: kindname.variable, NonExistentClass, , , (compiler.misc.location: kindname.class, T5017953, null) +T5017953.java:15:14: compiler.err.cant.resolve.location: kindname.variable, NonExistentClass, , , (compiler.misc.location: kindname.class, T5017953, null) +T5017953.java:16:14: compiler.err.cant.resolve.location: kindname.variable, NonExistentClass, , , (compiler.misc.location: kindname.class, T5017953, null) +T5017953.java:16:35: compiler.err.cant.resolve.location: kindname.variable, NonExistentClass, , , (compiler.misc.location: kindname.class, T5017953, null) +T5017953.java:17:14: compiler.err.cant.resolve.location: kindname.variable, NonExistentClass, , , (compiler.misc.location: kindname.class, T5017953, null) +T5017953.java:18:19: compiler.err.cant.resolve.location: kindname.variable, NonExistentClass, , , (compiler.misc.location: kindname.class, T5017953, null) +7 errors
--- a/test/tools/javac/6304921/T6304921.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/6304921/T6304921.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,7 +1,7 @@ T6304921.java:29:34: compiler.warn.raw.class.use: java.util.ArrayList, java.util.ArrayList<E> T6304921.java:29:30: compiler.warn.prob.found.req: (compiler.misc.unchecked.assign), java.util.ArrayList, java.util.List<java.lang.Integer> - compiler.err.warnings.and.werror -T6304921.java:35:15: compiler.err.cant.resolve.location: kindname.variable, orr, , , kindname.class, java.lang.System -T6304921.java:38:20: compiler.err.operator.cant.be.applied: +, int,boolean +T6304921.java:35:15: compiler.err.cant.resolve.location: kindname.variable, orr, , , (compiler.misc.location: kindname.class, java.lang.System, null) +T6304921.java:38:20: compiler.err.operator.cant.be.applied.1: +, int, boolean 3 errors 2 warnings
--- a/test/tools/javac/6330920/T6330920.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/6330920/T6330920.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6330920.java:11:22: compiler.err.cant.resolve.location: kindname.class, T6330920Missing, , , kindname.class, T6330920 +T6330920.java:11:22: compiler.err.cant.resolve.location: kindname.class, T6330920Missing, , , (compiler.misc.location: kindname.class, T6330920, null) 1 error
--- a/test/tools/javac/6491592/T6491592.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/6491592/T6491592.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6491592.java:12:11: compiler.err.operator.cant.be.applied: +, java.lang.Object,compiler.misc.type.null +T6491592.java:12:11: compiler.err.operator.cant.be.applied.1: +, java.lang.Object, compiler.misc.type.null 1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/6567415/T6567415.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,146 @@ +/* + * 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 6567415 + * @summary Test to ensure javac does not go into an infinite loop, while + * reading a classfile of a specific length. + * @compile -XDignore.symbol.file T6567415.java + * @run main T6567415 + * @author ksrini + */ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.io.RandomAccessFile; +import java.nio.ByteBuffer; +import java.nio.MappedByteBuffer; +import java.nio.channels.FileChannel; + +/* + * this test compiles Bar.java into a classfile and enlarges the file to the + * magic file length, then use this mutated file on the classpath to compile + * Foo.java which references Bar.java and Ka-boom. QED. + */ +public class T6567415 { + final static String TEST_FILE_NAME = "Bar"; + final static String TEST_JAVA = TEST_FILE_NAME + ".java"; + final static String TEST_CLASS = TEST_FILE_NAME + ".class"; + + final static String TEST2_FILE_NAME = "Foo"; + final static String TEST2_JAVA = TEST2_FILE_NAME + ".java"; + + /* + * the following is the initial buffer length set in ClassReader.java + * thus this value needs to change if ClassReader buf length changes. + */ + + final static int BAD_FILE_LENGTH = + com.sun.tools.javac.jvm.ClassReader.INITIAL_BUFFER_SIZE; + + static void createClassFile() throws IOException { + FileOutputStream fos = null; + try { + fos = new FileOutputStream(TEST_JAVA); + PrintStream ps = new PrintStream(fos); + ps.println("public class " + TEST_FILE_NAME + " {}"); + } finally { + fos.close(); + } + String cmds[] = {TEST_JAVA}; + com.sun.tools.javac.Main.compile(cmds); + } + + static void enlargeClassFile() throws IOException { + File f = new File(TEST_CLASS); + if (!f.exists()) { + System.out.println("file not found: " + TEST_CLASS); + System.exit(1); + } + File tfile = new File(f.getAbsolutePath() + ".tmp"); + f.renameTo(tfile); + + RandomAccessFile raf = null; + FileChannel wfc = null; + + FileInputStream fis = null; + FileChannel rfc = null; + + try { + raf = new RandomAccessFile(f, "rw"); + wfc = raf.getChannel(); + + fis = new FileInputStream(tfile); + rfc = fis.getChannel(); + + ByteBuffer bb = MappedByteBuffer.allocate(BAD_FILE_LENGTH); + rfc.read(bb); + bb.rewind(); + wfc.write(bb); + wfc.truncate(BAD_FILE_LENGTH); + } finally { + wfc.close(); + raf.close(); + rfc.close(); + fis.close(); + } + System.out.println("file length = " + f.length()); + } + + static void createJavaFile() throws IOException { + FileOutputStream fos = null; + try { + fos = new FileOutputStream(TEST2_JAVA); + PrintStream ps = new PrintStream(fos); + ps.println("public class " + TEST2_FILE_NAME + + " {" + TEST_FILE_NAME + " b = new " + + TEST_FILE_NAME + " ();}"); + } finally { + fos.close(); + } + } + + public static void main(String... args) throws Exception { + createClassFile(); + enlargeClassFile(); + createJavaFile(); + Thread t = new Thread () { + @Override + public void run() { + String cmds[] = {"-verbose", "-cp", ".", TEST2_JAVA}; + int ret = com.sun.tools.javac.Main.compile(cmds); + System.out.println("test compilation returns: " + ret); + } + }; + t.start(); + t.join(1000*10); + System.out.println(t.getState()); + if (t.isAlive()) { + throw new RuntimeException("Error: compilation is looping"); + } + } +}
--- a/test/tools/javac/6717241/T6717241a.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/6717241/T6717241a.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,4 +1,4 @@ -T6717241a.java:13:21: compiler.err.cant.resolve: kindname.variable, v, , -T6717241a.java:15:10: compiler.err.cant.resolve.args: kindname.method, m1, , int,java.lang.String -T6717241a.java:17:10: compiler.err.cant.resolve.args.params: kindname.method, m2, java.lang.Integer,java.lang.Double, int,java.lang.String +T6717241a.java:13:21: compiler.err.cant.resolve.location: kindname.variable, v, , , (compiler.misc.location.1: kindname.variable, x, X) +T6717241a.java:15:10: compiler.err.cant.resolve.location.args: kindname.method, m1, , int,java.lang.String, (compiler.misc.location.1: kindname.variable, x, X) +T6717241a.java:17:10: compiler.err.cant.resolve.location.args.params: kindname.method, m2, java.lang.Integer,java.lang.Double, int,java.lang.String, (compiler.misc.location.1: kindname.variable, x, X) 3 errors
--- a/test/tools/javac/6717241/T6717241b.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/6717241/T6717241b.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,4 +1,4 @@ -T6717241b.java:12:20: compiler.err.cant.resolve.location: kindname.variable, v, , , kindname.class, T6717241b -T6717241b.java:14:9: compiler.err.cant.resolve.location.args: kindname.method, m1, , int,java.lang.String, kindname.class, T6717241b -T6717241b.java:16:18: compiler.err.cant.resolve.location.args.params: kindname.method, m2, java.lang.Integer,java.lang.Double, int,java.lang.String, kindname.class, T6717241b +T6717241b.java:12:20: compiler.err.cant.resolve.location: kindname.variable, v, , , (compiler.misc.location: kindname.class, T6717241b, null) +T6717241b.java:14:9: compiler.err.cant.resolve.location.args: kindname.method, m1, , int,java.lang.String, (compiler.misc.location: kindname.class, T6717241b, null) +T6717241b.java:16:18: compiler.err.cant.resolve.location.args.params: kindname.method, m2, java.lang.Integer,java.lang.Double, int,java.lang.String, (compiler.misc.location: kindname.class, T6717241b, null) 3 errors
--- a/test/tools/javac/6857948/T6857948.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/6857948/T6857948.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,3 +1,3 @@ -T6857948.java:16:32: compiler.err.cant.resolve.location.args: kindname.method, nosuchfunction, , , kindname.class, Test +T6857948.java:16:32: compiler.err.cant.resolve.location.args: kindname.method, nosuchfunction, , , (compiler.misc.location: kindname.class, Test, null) T6857948.java:16:50: compiler.err.cant.apply.symbol.1: kindname.constructor, Foo, java.lang.String, compiler.misc.no.args, kindname.class, Foo, (compiler.misc.arg.length.mismatch) 2 errors
--- a/test/tools/javac/6863465/T6863465c.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/6863465/T6863465c.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,3 +1,3 @@ -T6863465c.java:13:47: compiler.err.cant.resolve.location: kindname.class, d, , , kindname.class, T6863465c.z +T6863465c.java:13:47: compiler.err.cant.resolve.location: kindname.class, d, , , (compiler.misc.location: kindname.class, T6863465c.z, null) T6863465c.java:11:12: compiler.err.cyclic.inheritance: T6863465c.z 2 errors
--- a/test/tools/javac/6863465/T6863465d.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/6863465/T6863465d.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,3 +1,3 @@ -T6863465d.java:13:47: compiler.err.cant.resolve.location: kindname.class, w, , , kindname.class, T6863465d.c +T6863465d.java:13:47: compiler.err.cant.resolve.location: kindname.class, w, , , (compiler.misc.location: kindname.class, T6863465d.c, null) T6863465d.java:11:12: compiler.err.cyclic.inheritance: T6863465d.c 2 errors
--- a/test/tools/javac/AnonStaticMember_2.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/AnonStaticMember_2.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,33 +1,10 @@ /* - * Copyright (c) 1999, 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 + * @test /nodynamiccopyright/ * @bug 4279339 * @summary Verify that an anonymous class cannot contain a static method. * @author maddox * - * @run compile/fail AnonStaticMember_2.java + * @run compile/fail/ref=AnonStaticMember_2.out -XDrawDiagnostics AnonStaticMember_2.java */ class AnonStaticMember_2 {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/AnonStaticMember_2.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,2 @@ +AnonStaticMember_2.java:12:21: compiler.err.icls.cant.have.static.decl: compiler.misc.anonymous.class: AnonStaticMember_2$1 +1 error
--- a/test/tools/javac/ClassPathTest/ClassPathTest.sh Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/ClassPathTest/ClassPathTest.sh Sat Apr 09 00:45:10 2011 +0100 @@ -100,7 +100,7 @@ expectedResult="$1"; shift cleanup echo $javac ${TESTTOOLVMOPTS} "$@" - $javac ${TESTTOOLVMOPTS} "$@" + "$javac" ${TESTTOOLVMOPTS} "$@" report $expectedResult $? }
--- a/test/tools/javac/ExtDirs/ExtDirs.sh Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/ExtDirs/ExtDirs.sh Sat Apr 09 00:45:10 2011 +0100 @@ -85,15 +85,15 @@ done echo "Test 1" -$javac ${TESTTOOLVMOPTS} -d . -extdirs ext1 "${TESTSRC}${FS}ExtDirTest_1.java" +"$javac" ${TESTTOOLVMOPTS} -d . -extdirs ext1 "${TESTSRC}${FS}ExtDirTest_1.java" if [ $? -ne 0 ] ; then fail ; fi echo "Test 2" -$javac ${TESTTOOLVMOPTS} -d . -extdirs ext1${PS}ext2 "${TESTSRC}${FS}ExtDirTest_2.java" +"$javac" ${TESTTOOLVMOPTS} -d . -extdirs ext1${PS}ext2 "${TESTSRC}${FS}ExtDirTest_2.java" if [ $? -ne 0 ] ; then fail ; fi echo "Test 3" -$javac ${TESTTOOLVMOPTS} -d . -extdirs ext3 "${TESTSRC}${FS}ExtDirTest_3.java" +"$javac" ${TESTTOOLVMOPTS} -d . -extdirs ext3 "${TESTSRC}${FS}ExtDirTest_3.java" if [ $? -ne 0 ] ; then fail ; fi echo PASS: all tests gave expected results
--- a/test/tools/javac/InnerNamedConstant_2.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/InnerNamedConstant_2.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ -InnerNamedConstant_2.java:22:20: compiler.err.icls.cant.have.static.decl -InnerNamedConstant_2.java:23:29: compiler.err.icls.cant.have.static.decl +InnerNamedConstant_2.java:22:20: compiler.err.icls.cant.have.static.decl: InnerNamedConstant_2.Inner2 +InnerNamedConstant_2.java:23:29: compiler.err.icls.cant.have.static.decl: InnerNamedConstant_2.Inner2 InnerNamedConstant_2.java:25:13: compiler.err.cant.assign.val.to.final.var: z -InnerNamedConstant_2.java:34:26: compiler.err.icls.cant.have.static.decl +InnerNamedConstant_2.java:34:26: compiler.err.icls.cant.have.static.decl: InnerNamedConstant_2.Inner3 4 errors
--- a/test/tools/javac/InterfaceInInner.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/InterfaceInInner.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,33 +1,10 @@ /* - * Copyright (c) 1997, 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 + * @test /nodynamiccopyright/ * @bug 4063740 * @summary Interfaces may only be declared in top level classes. * @author turnidge * - * @compile/fail InterfaceInInner.java + * @compile/fail/ref=InterfaceInInner.out -XDrawDiagnostics InterfaceInInner.java */ class InterfaceInInner { InterfaceInInner() {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/InterfaceInInner.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,2 @@ +InterfaceInInner.java:12:13: compiler.err.intf.not.allowed.here +1 error
--- a/test/tools/javac/Paths/Help.sh Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/Paths/Help.sh Sat Apr 09 00:45:10 2011 +0100 @@ -40,8 +40,8 @@ DiagnosticsInEnglishPlease -HELP="`$javac ${TESTTOOLVMOPTS} -help 2>&1`" -XHELP="`$javac ${TESTTOOLVMOPTS} -X 2>&1`" +HELP="`\"$javac\" ${TESTTOOLVMOPTS} -help 2>&1`" +XHELP="`\"$javac\" ${TESTTOOLVMOPTS} -X 2>&1`" #---------------------------------------------------------------- # Standard options
--- a/test/tools/javac/QualifiedNew.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/QualifiedNew.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,33 +1,10 @@ /* - * Copyright (c) 2002, 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 + * @test /nodynamiccopyright/ * @bug 4406966 * @summary null qualifying inner instance creation should be error. * @author gafter * - * @compile/fail QualifiedNew.java + * @compile/fail/ref=QualifiedNew.out -XDrawDiagnostics QualifiedNew.java */ class QualifiedNew {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/QualifiedNew.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,3 @@ +QualifiedNew.java:14:23: compiler.err.type.found.req: compiler.misc.type.null, (compiler.misc.type.req.ref) +QualifiedNew.java:15:29: compiler.err.cant.resolve.location: kindname.class, Y, , , (compiler.misc.location: kindname.class, QualifiedNew.Y[], null) +2 errors
--- a/test/tools/javac/T6247324.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/T6247324.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6247324.java:18:6: compiler.err.cant.resolve.location: kindname.class, Seetharam, , , kindname.class, Pair<X,Y> +T6247324.java:18:6: compiler.err.cant.resolve.location: kindname.class, Seetharam, , , (compiler.misc.location: kindname.class, Pair<X,Y>, null) 1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/T6554097.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,26 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6554097 + * @summary "final" confuses at-SuppressWarnings + * @compile T6554097.java + * @compile/fail/ref=T6554097.out -XDrawDiagnostics -Werror -Xlint:serial T6554097.java + */ + +class T6554097 { + @SuppressWarnings("serial") final Throwable[] v1 = { new Throwable() {} }; + @SuppressWarnings("serial") Throwable[] v2 = { new Throwable() {} }; + + public static void m1() throws Throwable { + @SuppressWarnings("serial") final Throwable[] v3 = { new Throwable() {} }; + @SuppressWarnings("serial") Throwable[] v4 = { new Throwable() {} }; + } + + final Throwable[] v5 = { new Throwable() {} }; + Throwable[] v6 = { new Throwable() {} }; + + public static void m2() throws Throwable { + final Throwable[] v7 = { new Throwable() {} }; + Throwable[] v8 = { new Throwable() {} }; + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/T6554097.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,7 @@ +T6554097.java:18:46: compiler.warn.missing.SVUID: compiler.misc.anonymous.class: T6554097$5 +T6554097.java:19:46: compiler.warn.missing.SVUID: compiler.misc.anonymous.class: T6554097$6 +T6554097.java:22:50: compiler.warn.missing.SVUID: compiler.misc.anonymous.class: T6554097$7 +T6554097.java:23:54: compiler.warn.missing.SVUID: compiler.misc.anonymous.class: T6554097$8 +- compiler.err.warnings.and.werror +1 error +4 warnings
--- a/test/tools/javac/T6725036.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/T6725036.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2011, 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 @@ -38,6 +38,7 @@ import com.sun.tools.javac.file.RelativePath.RelativeFile; import com.sun.tools.javac.file.ZipFileIndex; import com.sun.tools.javac.file.ZipFileIndexArchive; +import com.sun.tools.javac.file.ZipFileIndexCache; import com.sun.tools.javac.util.Context; public class T6725036 { @@ -57,8 +58,8 @@ JarEntry je = j.getJarEntry(TEST_ENTRY_NAME.getPath()); long jarEntryTime = je.getTime(); - ZipFileIndex zfi = - ZipFileIndex.getZipFileIndex(rt_jar, null, false, null, false); + ZipFileIndexCache zfic = ZipFileIndexCache.getSharedInstance(); + ZipFileIndex zfi = zfic.getZipFileIndex(rt_jar, null, false, null, false); long zfiTime = zfi.getLastModified(TEST_ENTRY_NAME); check(je, jarEntryTime, zfi + ":" + TEST_ENTRY_NAME.getPath(), zfiTime);
--- a/test/tools/javac/TryWithResources/BadTwrSyntax.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/BadTwrSyntax.java Sat Apr 09 00:45:10 2011 +0100 @@ -4,13 +4,18 @@ * @author Joseph D. Darcy * @summary Verify bad TWRs don't compile * @compile/fail -source 6 BadTwrSyntax.java - * @compile/fail/ref=BadTwrSyntax.out -XDrawDiagnostics BadTwrSyntax.java + * @compile/fail/ref=BadTwrSyntax.out -XDrawDiagnostics BadTwrSyntax.java */ import java.io.IOException; public class BadTwrSyntax implements AutoCloseable { public static void main(String... args) throws Exception { - // illegal semicolon ending resources + // illegal double semicolon ending resources + try(BadTwr twrflow = new BadTwr();;) { + System.out.println(twrflow.toString()); + } + + // but one semicolon is fine try(BadTwr twrflow = new BadTwr();) { System.out.println(twrflow.toString()); }
--- a/test/tools/javac/TryWithResources/BadTwrSyntax.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/BadTwrSyntax.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,7 @@ -BadTwrSyntax.java:14:43: compiler.err.illegal.start.of.expr -1 error +BadTwrSyntax.java:14:43: compiler.err.illegal.start.of.type +BadTwrSyntax.java:14:44: compiler.err.expected: = +BadTwrSyntax.java:14:45: compiler.err.expected: ')' +BadTwrSyntax.java:14:47: compiler.err.expected: '{' +BadTwrSyntax.java:15:19: compiler.err.illegal.start.of.expr +BadTwrSyntax.java:15:23: compiler.err.expected: ';' +6 errors
--- a/test/tools/javac/TryWithResources/DuplicateResource.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/DuplicateResource.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011 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 @@ -23,9 +23,9 @@ /* * @test - * @bug 6911256 6964740 6965277 + * @bug 6911256 6964740 6965277 7013420 * @author Maurizio Cimadamore - * @summary Check that lowered arm block does not end up creating resource twice + * @summary Check that lowered try-with-resources block does not end up creating resource twice */ import java.util.ArrayList; @@ -45,7 +45,7 @@ static ArrayList<TestResource> resources = new ArrayList<TestResource>(); public static void main(String[] args) { - try(new TestResource()) { + try(TestResource tr = new TestResource()) { //do something } catch (Exception e) { throw new AssertionError("Shouldn't reach here", e); @@ -59,7 +59,7 @@ } TestResource resource = resources.get(0); if (!resource.isClosed) { - throw new AssertionError("Resource used in ARM block has not been automatically closed"); + throw new AssertionError("Resource used in try-with-resources block has not been automatically closed"); } } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/TryWithResources/ExplicitFinal.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2011, 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 7013420 + * @author Joseph D. Darcy + * @summary Test that resource variables are accepted as explicitly final. + */ + +import java.io.IOException; + +public class ExplicitFinal implements AutoCloseable { + public static void main(String... args) { + try(final ExplicitFinal r2 = new ExplicitFinal()) { + r2.toString(); + } catch (IOException ioe) { + throw new AssertionError("Shouldn't reach here", ioe); + } + + try(final @SuppressWarnings("unchecked") ExplicitFinal r3 = new ExplicitFinal()) { + r3.toString(); + } catch (IOException ioe) { + throw new AssertionError("Shouldn't reach here", ioe); + } + + try(@SuppressWarnings("unchecked") ExplicitFinal r4 = new ExplicitFinal()) { + r4.toString(); + } catch (IOException ioe) { + throw new AssertionError("Shouldn't reach here", ioe); + } + } + public void close() throws IOException { + System.out.println("Calling close on " + this); + } +}
--- a/test/tools/javac/TryWithResources/ImplicitFinal.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/ImplicitFinal.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6911256 6964740 6965277 + * @bug 6911256 6964740 6965277 7013420 * @author Maurizio Cimadamore * @summary Test that resource variables are implicitly final * @compile/fail/ref=ImplicitFinal.out -XDrawDiagnostics ImplicitFinal.java @@ -15,12 +15,25 @@ } catch (IOException ioe) { // Not reachable throw new AssertionError("Shouldn't reach here", ioe); } - } + try(@SuppressWarnings("unchecked") ImplicitFinal r1 = new ImplicitFinal()) { + r1 = null; //disallowed + } catch (IOException ioe) { // Not reachable + throw new AssertionError("Shouldn't reach here", ioe); + } - // A close method, but the class is <em>not</em> Closeable or - // AutoCloseable. + try(final ImplicitFinal r2 = new ImplicitFinal()) { + r2 = null; //disallowed + } catch (IOException ioe) { // Not reachable + throw new AssertionError("Shouldn't reach here", ioe); + } + try(final @SuppressWarnings("unchecked") ImplicitFinal r3 = new ImplicitFinal()) { + r3 = null; //disallowed + } catch (IOException ioe) { // Not reachable + throw new AssertionError("Shouldn't reach here", ioe); + } + } public void close() throws IOException { throw new IOException(); }
--- a/test/tools/javac/TryWithResources/ImplicitFinal.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/ImplicitFinal.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,5 @@ ImplicitFinal.java:14:13: compiler.err.try.resource.may.not.be.assigned: r -1 error +ImplicitFinal.java:20:13: compiler.err.try.resource.may.not.be.assigned: r1 +ImplicitFinal.java:26:13: compiler.err.try.resource.may.not.be.assigned: r2 +ImplicitFinal.java:32:13: compiler.err.try.resource.may.not.be.assigned: r3 +4 errors
--- a/test/tools/javac/TryWithResources/ResourceOutsideTry.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/ResourceOutsideTry.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,3 +1,3 @@ -ResourceOutsideTry.java:14:13: compiler.err.cant.resolve.location: kindname.variable, c, , , kindname.class, ResourceOutsideTry -ResourceOutsideTry.java:16:13: compiler.err.cant.resolve.location: kindname.variable, c, , , kindname.class, ResourceOutsideTry +ResourceOutsideTry.java:14:13: compiler.err.cant.resolve.location: kindname.variable, c, , , (compiler.misc.location: kindname.class, ResourceOutsideTry, null) +ResourceOutsideTry.java:16:13: compiler.err.cant.resolve.location: kindname.variable, c, , , (compiler.misc.location: kindname.class, ResourceOutsideTry, null) 2 errors
--- a/test/tools/javac/TryWithResources/TwrFlow.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/TwrFlow.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,26 +1,16 @@ /* * @test /nodynamiccopyright/ - * @bug 6911256 6964740 + * @bug 6911256 6964740 7013420 * @author Joseph D. Darcy - * @summary Test exception analysis of ARM blocks + * @summary Test exception analysis of try-with-resources blocks * @compile/fail/ref=TwrFlow.out -XDrawDiagnostics TwrFlow.java */ import java.io.IOException; public class TwrFlow implements AutoCloseable { public static void main(String... args) { - try(TwrFlow armflow = new TwrFlow()) { - System.out.println(armflow.toString()); - } catch (IOException ioe) { // Not reachable - throw new AssertionError("Shouldn't reach here", ioe); - } - // CustomCloseException should be caught or added to throws clause - - // Also check behavior on a resource expression rather than a - // declaration. - TwrFlow armflowexpr = new TwrFlow(); - try(armflowexpr) { - System.out.println(armflowexpr.toString()); + try(TwrFlow twrFlow = new TwrFlow()) { + System.out.println(twrFlow.toString()); } catch (IOException ioe) { // Not reachable throw new AssertionError("Shouldn't reach here", ioe); }
--- a/test/tools/javac/TryWithResources/TwrFlow.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/TwrFlow.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,3 @@ TwrFlow.java:14:11: compiler.err.except.never.thrown.in.try: java.io.IOException -TwrFlow.java:24:11: compiler.err.except.never.thrown.in.try: java.io.IOException TwrFlow.java:12:46: compiler.err.unreported.exception.need.to.catch.or.throw: CustomCloseException -TwrFlow.java:22:26: compiler.err.unreported.exception.need.to.catch.or.throw: CustomCloseException -4 errors +2 errors
--- a/test/tools/javac/TryWithResources/TwrInference.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * 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 6911256 6964740 6965277 - * @author Maurizio Cimadamore - * @summary Verify that method type-inference works as expected in TWR context - * @compile TwrInference.java - */ - -class TwrInference { - - public void test() { - try(getX()) { - //do something - } catch (Exception e) { // Not reachable - throw new AssertionError("Shouldn't reach here", e); - } - } - - <X> X getX() { return null; } -}
--- a/test/tools/javac/TryWithResources/TwrIntersection.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * 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 6911256 6964740 6965277 - * @author Maurizio Cimadamore - * @summary Resource of an intersection type crashes Flow - * @compile TwrIntersection.java - */ - -interface MyCloseable extends AutoCloseable { - void close() throws java.io.IOException; -} - -class ResourceTypeVar { - - public void test() { - try(getX()) { - //do something - } catch (java.io.IOException e) { // Not reachable - throw new AssertionError("Shouldn't reach here", e); - } - } - - <X extends Number & MyCloseable> X getX() { return null; } -}
--- a/test/tools/javac/TryWithResources/TwrIntersection02.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* - * @test /nodynamiccopyright/ - * @bug 6911256 6964740 6965277 - * @author Maurizio Cimadamore - * @summary Check that resources of an intersection type forces union of exception types - * to be caught outside twr block - * @compile/fail/ref=TwrIntersection02.out -XDrawDiagnostics TwrIntersection02.java - */ - -class TwrIntersection02 { - - static class Exception1 extends Exception {} - static class Exception2 extends Exception {} - - - interface MyResource1 extends AutoCloseable { - void close() throws Exception1; - } - - interface MyResource2 extends AutoCloseable { - void close() throws Exception2; - } - - public void test1() throws Exception1 { - try(getX()) { - //do something - } - } - - public void test2() throws Exception2 { - try(getX()) { - //do something - } - } - - <X extends MyResource1 & MyResource2> X getX() { return null; } -}
--- a/test/tools/javac/TryWithResources/TwrIntersection02.out Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -TwrIntersection02.java:25:21: compiler.err.unreported.exception.need.to.catch.or.throw: TwrIntersection02.Exception2 -TwrIntersection02.java:31:21: compiler.err.unreported.exception.need.to.catch.or.throw: TwrIntersection02.Exception1 -2 errors
--- a/test/tools/javac/TryWithResources/TwrMultiCatch.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/TwrMultiCatch.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -23,7 +23,7 @@ /* * @test - * @bug 6911256 6964740 + * @bug 6911256 6964740 7013420 * @author Joseph D. Darcy * @summary Test that TWR and multi-catch play well together * @compile TwrMultiCatch.java @@ -48,9 +48,9 @@ private static void test(TwrMultiCatch twrMultiCatch, Class<? extends Exception> expected) { - try(twrMultiCatch) { - System.out.println(twrMultiCatch.toString()); - } catch (final CustomCloseException1 | + try(TwrMultiCatch tmc = twrMultiCatch) { + System.out.println(tmc.toString()); + } catch (CustomCloseException1 | CustomCloseException2 exception) { if (!exception.getClass().equals(expected) ) { throw new RuntimeException("Unexpected catch!"); @@ -68,7 +68,7 @@ try { throw t; - } catch (final CustomCloseException1 | + } catch (CustomCloseException1 | CustomCloseException2 exception) { throw exception; } catch (Throwable throwable) {
--- a/test/tools/javac/TryWithResources/TwrOnNonResource.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/TwrOnNonResource.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6911256 6964740 + * @bug 6911256 6964740 7013420 * @author Joseph D. Darcy * @summary Verify invalid TWR block is not accepted. * @compile/fail -source 6 TwrOnNonResource.java @@ -18,18 +18,6 @@ try(TwrOnNonResource aonr = new TwrOnNonResource()) { System.out.println(aonr.toString()); } catch (Exception e) {;} - - // Also check expression form - TwrOnNonResource aonr = new TwrOnNonResource(); - try(aonr) { - System.out.println(aonr.toString()); - } - try(aonr) { - System.out.println(aonr.toString()); - } finally {;} - try(aonr) { - System.out.println(aonr.toString()); - } catch (Exception e) {;} } /*
--- a/test/tools/javac/TryWithResources/TwrOnNonResource.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/TryWithResources/TwrOnNonResource.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,7 +1,4 @@ TwrOnNonResource.java:12:13: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable TwrOnNonResource.java:15:13: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable TwrOnNonResource.java:18:13: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable -TwrOnNonResource.java:24:13: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable -TwrOnNonResource.java:27:13: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable -TwrOnNonResource.java:30:13: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable -6 errors +3 errors
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/api/T6419926.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2011, 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 6419926 + * @summary JSR 199: FileObject.toUri() generates URI without schema (Solaris) + */ + +import java.io.*; +import java.net.*; +import java.util.*; +import javax.tools.*; + +public class T6419926 { + public static void main(String[] argv) throws Exception { + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + StandardJavaFileManager mgr = compiler.getStandardFileManager( new DiagnosticCollector<JavaFileObject>(), null, null); + System.out.println( new File( new File(".").toURI() ).getAbsolutePath() ); + mgr.setLocation(StandardLocation.CLASS_OUTPUT, + Collections.singleton(new File("."))); + + FileObject fo = mgr.getFileForOutput(StandardLocation.CLASS_OUTPUT, + "", "file.to.delete", null); + URI uri = fo.toUri(); + System.out.println( uri ); + + if (!"file".equals(uri.getScheme())) + throw new Exception("unexpected scheme for uri: " + uri.getScheme()); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/api/T6430241.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,237 @@ + /* + * Copyright (c) 2011, 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 6430241 + * @summary Hard to disable symbol file feature through API + */ + + import java.io.*; + import java.util.*; + import javax.tools.*; + + import com.sun.source.util.JavacTask; + import com.sun.tools.javac.api.JavacTool; + + public class T6430241 { + public static void main(String... args) throws Exception { + new T6430241().run(); + } + + void run() throws Exception { + setup(); + testCommandLine(); + testSimpleAPI(); + testTaskAPI(); + + if (errors > 0) + throw new Exception(errors + " errors found"); + } + + void setup() throws Exception { + classesDir = new File("classes"); + classesDir.mkdirs(); + + emptyDir = new File("empty"); + emptyDir.mkdirs(); + + bootClassPath = System.getProperty("sun.boot.class.path"); + + File srcDir = new File("src"); + String test = "import sun.misc.Unsafe; class Test { }"; + testFile = writeFile(srcDir, "Test.java", test); + } + + //----- tests for command line invocation + + void testCommandLine() throws Exception { + testCommandLine(true); + testCommandLine(true, "-Xbootclasspath/p:" + emptyDir); + testCommandLine(false, "-Xbootclasspath:" + bootClassPath); + testCommandLine(true, "-Xbootclasspath/a:" + emptyDir); + testCommandLine(false, "-XDignore.symbol.file"); + System.err.println(); + } + + void testCommandLine(boolean expectWarnings, String... opts) throws Exception { + System.err.println("test command line: " + Arrays.asList(opts)); + + String[] args = initArgs(opts); + + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + int rc = com.sun.tools.javac.Main.compile(args, pw); + String out = showOutput(sw.toString()); + + checkCompilationOK(rc); + checkOutput(out, expectWarnings); + } + + //----- tests for simple API invocation + + void testSimpleAPI() { + testSimpleAPI(true); + testSimpleAPI(true, "-Xbootclasspath/p:" + emptyDir); + testSimpleAPI(false, "-Xbootclasspath:" + bootClassPath); + testSimpleAPI(true, "-Xbootclasspath/a:" + emptyDir); + testSimpleAPI(false, "-XDignore.symbol.file"); + System.err.println(); + } + + void testSimpleAPI(boolean expectWarnings, String... opts) { + System.err.println("test simple API: " + Arrays.asList(opts)); + + String[] args = initArgs(opts); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintStream ps = new PrintStream(baos); + + JavacTool tool = JavacTool.create(); + int rc = tool.run(null, null, ps, args); + + String out = showOutput(baos.toString()); + + checkCompilationOK(rc); + checkOutput(out, expectWarnings); + } + + //----- tests for CompilationTask API invocation + + void testTaskAPI() throws Exception { + List<File> bcp = new ArrayList<File>(); + for (String f: bootClassPath.split(File.pathSeparator)) { + if (!f.isEmpty()) + bcp.add(new File(f)); + } + + testTaskAPI(true, null); + testTaskAPI(false, bcp); + System.err.println(); + } + + void testTaskAPI(boolean expectWarnings, Iterable<? extends File> pcp) throws Exception { + System.err.println("test task API: " + pcp); + + JavacTool tool = JavacTool.create(); + StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null); + + if (pcp != null) + fm.setLocation(StandardLocation.PLATFORM_CLASS_PATH, pcp); + + Iterable<? extends JavaFileObject> files = fm.getJavaFileObjects(testFile); + + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + JavacTask task = tool.getTask(pw, fm, null, null, null, files); + boolean ok = task.call(); + String out = showOutput(sw.toString()); + + checkCompilationOK(ok); + checkOutput(out, expectWarnings); + } + + //----- utility methods + + /** + * Create a file with given content. + */ + File writeFile(File dir, String path, String content) throws IOException { + File f = new File(dir, path); + f.getParentFile().mkdirs(); + FileWriter out = new FileWriter(f); + try { + out.write(content); + } finally { + out.close(); + } + return f; + } + + /** + * Initialize args for compilation with given opts. + * @return opts -d classesDir testFile + */ + String[] initArgs(String[] opts) { + List<String> args = new ArrayList<String>(); + args.addAll(Arrays.asList(opts)); + args.add("-d"); + args.add(classesDir.getPath()); + args.add(testFile.getPath()); + return args.toArray(new String[args.size()]); + } + + /** + * Show output from compilation if non empty. + */ + String showOutput(String out) { + if (!out.isEmpty()) + System.err.println(out); + return out; + } + + /** + * Verify compilation succeeeded. + */ + void checkCompilationOK(boolean ok) { + if (!ok) + error("compilation failed"); + } + + /** + * Verify compilation succeeeded. + */ + void checkCompilationOK(int rc) { + if (rc != 0) + error("compilation failed, rc: " + rc); + } + + /** + * Check whether output contains warnings if and only if warnings + * are expected. + */ + void checkOutput(String out, boolean expectWarnings) { + boolean foundWarnings = out.contains("warning"); + if (foundWarnings) { + if (!expectWarnings) + error("unexpected warnings found"); + } else { + if (expectWarnings) + error("expected warnings not found"); + } + } + + /** + * Report an error. + */ + void error(String msg) { + System.err.println("error: " + msg); + errors++; + } + + String bootClassPath; + File classesDir; + File emptyDir; + File testFile; + int errors; + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/ArgTypeCompilerFactory.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2010, 2011, 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.io.*; +import java.util.*; +import java.util.List; +import javax.tools.*; + +import com.sun.tools.javac.api.*; +import com.sun.tools.javac.api.DiagnosticFormatter.Configuration.DiagnosticPart; +import com.sun.tools.javac.api.Formattable.LocalizedString; +import com.sun.tools.javac.code.Flags.Flag; +import com.sun.tools.javac.code.Kinds.KindName; +import com.sun.tools.javac.code.*; +import com.sun.tools.javac.file.*; +import com.sun.tools.javac.main.Main; +import com.sun.tools.javac.parser.Token; +import com.sun.tools.javac.util.*; +import com.sun.tools.javac.util.AbstractDiagnosticFormatter.SimpleConfiguration; +import javax.lang.model.SourceVersion; + +/** + * Compiler factory for instances of Example.Compiler that use custom + * DiagnosticFormatter and Messages objects to track the types of args + * when when localizing diagnostics. + * The compiler objects only support "output" mode, not "check" mode. + */ +class ArgTypeCompilerFactory implements Example.Compiler.Factory { + // Same code as Example.Compiler.DefaultFactory, but the names resolve differently + public Example.Compiler getCompiler(List<String> opts, boolean verbose) { + String first; + String[] rest; + if (opts == null || opts.isEmpty()) { + first = null; + rest = new String[0]; + } else { + first = opts.get(0); + rest = opts.subList(1, opts.size()).toArray(new String[opts.size() - 1]); + } + if (first == null || first.equals("jsr199")) + return new Jsr199Compiler(verbose, rest); + else if (first.equals("simple")) + return new SimpleCompiler(verbose); + else if (first.equals("backdoor")) + return new BackdoorCompiler(verbose); + else + throw new IllegalArgumentException(first); + } + + /** + * Compile using the JSR 199 API. The diagnostics generated are + * scanned for resource keys. Not all diagnostic keys are generated + * via the JSR 199 API -- for example, rich diagnostics are not directly + * accessible, and some diagnostics generated by the file manager may + * not be generated (for example, the JSR 199 file manager does not see + * -Xlint:path). + */ + static class Jsr199Compiler extends Example.Compiler { + List<String> fmOpts; + + Jsr199Compiler(boolean verbose, String... args) { + super(verbose); + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.equals("-filemanager") && (i + 1 < args.length)) { + fmOpts = Arrays.asList(args[++i].split(",")); + } else + throw new IllegalArgumentException(arg); + } + } + + @Override + boolean run(PrintWriter out, Set<String> keys, boolean raw, List<String> opts, List<File> files) { + assert out != null && keys == null; + + if (verbose) + System.err.println("run_jsr199: " + opts + " " + files); + + JavacTool tool = JavacTool.create(); + + StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null); + if (fmOpts != null) + fm = new FileManager(fm, fmOpts); + + Iterable<? extends JavaFileObject> fos = fm.getJavaFileObjectsFromFiles(files); + + JavacTaskImpl t = (JavacTaskImpl) tool.getTask(out, fm, null, opts, null, fos); + Context c = t.getContext(); + ArgTypeMessages.preRegister(c); + Options options = Options.instance(c); + Log.instance(c).setDiagnosticFormatter(new ArgTypeDiagnosticFormatter(options)); + Boolean ok = t.call(); + + return ok; + } + } + + /** + * Run the test using the standard simple entry point. + */ + static class SimpleCompiler extends Example.Compiler { + SimpleCompiler(boolean verbose) { + super(verbose); + } + + @Override + boolean run(PrintWriter out, Set<String> keys, boolean raw, List<String> opts, List<File> files) { + assert out != null && keys == null; + + if (verbose) + System.err.println("run_simple: " + opts + " " + files); + + List<String> args = new ArrayList<String>(); + + args.addAll(opts); + for (File f: files) + args.add(f.getPath()); + + Main main = new Main("javac", out); + Context c = new Context() { + @Override public void clear() { + ((JavacFileManager) get(JavaFileManager.class)).close(); + super.clear(); + } + }; + JavacFileManager.preRegister(c); // can't create it until Log has been set up + ArgTypeDiagnosticFormatter.preRegister(c); + ArgTypeMessages.preRegister(c); + int result = main.compile(args.toArray(new String[args.size()]), c); + + return (result == 0); + } + } + + static class BackdoorCompiler extends Example.Compiler { + BackdoorCompiler(boolean verbose) { + super(verbose); + } + + @Override + boolean run(PrintWriter out, Set<String> keys, boolean raw, List<String> opts, List<File> files) { + assert out != null && keys == null; + + if (verbose) + System.err.println("run_simple: " + opts + " " + files); + + List<String> args = new ArrayList<String>(opts); + for (File f: files) + args.add(f.getPath()); + + Context c = new Context(); + JavacFileManager.preRegister(c); // can't create it until Log has been set up + ArgTypeDiagnosticFormatter.preRegister(c); + ArgTypeMessages.preRegister(c); + com.sun.tools.javac.main.Main m = new com.sun.tools.javac.main.Main("javac", out); + int rc = m.compile(args.toArray(new String[args.size()]), c); + + return (rc == 0); + } + + } + + + // <editor-fold defaultstate="collapsed" desc="Custom Javac components"> + + /** + * Diagnostic formatter which reports formats a diag as a series of lines + * containing a key, and a possibly empty set of descriptive strings for the + * arg types. + */ + static class ArgTypeDiagnosticFormatter extends AbstractDiagnosticFormatter { + static void preRegister(final Context context) { + context.put(Log.logKey, new Context.Factory<Log>() { + public Log make() { + Log log = new Log(context) { }; + Options options = Options.instance(context); + log.setDiagnosticFormatter(new ArgTypeDiagnosticFormatter(options)); + return log; + } + }); + + } + + ArgTypeDiagnosticFormatter(Options options) { + super(null, new SimpleConfiguration(options, + EnumSet.of(DiagnosticPart.SUMMARY, + DiagnosticPart.DETAILS, + DiagnosticPart.SUBDIAGNOSTICS))); + } + + @Override + protected String formatDiagnostic(JCDiagnostic d, Locale locale) { + return formatMessage(d, locale); + } + + @Override + public String formatMessage(JCDiagnostic d, Locale l) { + StringBuilder buf = new StringBuilder(); + formatMessage(d, buf); + return buf.toString(); + } + + private void formatMessage(JCDiagnostic d, StringBuilder buf) { + String key = d.getCode(); + Object[] args = d.getArgs(); + // report the primary arg types, without recursing into diag fragments + buf.append(getKeyArgsString(key, args)); + // report details for any diagnostic fragments + for (Object arg: args) { + if (arg instanceof JCDiagnostic) { + buf.append("\n"); + formatMessage((JCDiagnostic) arg, buf); + } + } + // report details for any subdiagnostics + for (String s: formatSubdiagnostics(d, null)) { + buf.append("\n"); + buf.append(s); + } + } + + @Override + public boolean isRaw() { + return true; + } + } + + /** + * Diagnostic formatter which "localizes" a message as a line + * containing a key, and a possibly empty set of descriptive strings for the + * arg types. + */ + static class ArgTypeMessages extends JavacMessages { + static void preRegister(final Context c) { + c.put(JavacMessages.messagesKey, new Context.Factory<JavacMessages>() { + public JavacMessages make() { + return new ArgTypeMessages(c) { + @Override + public String getLocalizedString(Locale l, String key, Object... args) { + return getKeyArgsString(key, args); + } + }; + } + }); + } + + ArgTypeMessages(Context context) { + super(context); + } + } + + /** + * Utility method to generate a string for key and args + */ + static String getKeyArgsString(String key, Object... args) { + StringBuilder buf = new StringBuilder(); + buf.append(key); + String sep = ": "; + for (Object o : args) { + buf.append(sep); + buf.append(getArgTypeOrStringValue(o)); + sep = ", "; + } + return buf.toString(); + } + + static boolean showStringValues = false; + + static String getArgTypeOrStringValue(Object o) { + if (showStringValues && o instanceof String) + return "\"" + o + "\""; + return getArgType(o); + } + + static String getArgType(Object o) { + if (o == null) + return "null"; + if (o instanceof Name) + return "name"; + if (o instanceof Boolean) + return "boolean"; + if (o instanceof Integer) + return "number"; + if (o instanceof String) + return "string"; + if (o instanceof Flag) + return "modifier"; + if (o instanceof KindName) + return "symbol kind"; + if (o instanceof Token) + return "token"; + if (o instanceof Symbol) + return "symbol"; + if (o instanceof Type) + return "type"; + if (o instanceof List) { + List<?> l = (List<?>) o; + if (l.isEmpty()) + return "list"; + else + return "list of " + getArgType(l.get(0)); + } + if (o instanceof ListBuffer) + return getArgType(((ListBuffer) o).toList()); + if (o instanceof Set) { + Set<?> s = (Set<?>) o; + if (s.isEmpty()) + return "set"; + else + return "set of " + getArgType(s.iterator().next()); + } + if (o instanceof SourceVersion) + return "source version"; + if (o instanceof FileObject || o instanceof File) + return "file name"; + if (o instanceof JCDiagnostic) + return "message segment"; + if (o instanceof LocalizedString) + return "message segment"; // only instance is "no arguments" + String s = o.getClass().getSimpleName(); + return (s.isEmpty() ? o.getClass().getName() : s); + } + + // </editor-fold> + +}
--- a/test/tools/javac/diags/Example.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/Example.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -168,7 +168,7 @@ try { run(null, keys, true, verbose); } catch (IOException e) { - e.printStackTrace(); + e.printStackTrace(System.err); } return keys; } @@ -293,10 +293,15 @@ } abstract static class Compiler { - static Compiler getCompiler(List<String> opts, boolean verbose) { + interface Factory { + Compiler getCompiler(List<String> opts, boolean verbose); + } + + static class DefaultFactory implements Factory { + public Compiler getCompiler(List<String> opts, boolean verbose) { String first; String[] rest; - if (opts == null || opts.size() == 0) { + if (opts == null || opts.isEmpty()) { first = null; rest = new String[0]; } else { @@ -311,6 +316,16 @@ return new BackdoorCompiler(verbose); else throw new IllegalArgumentException(first); + } + } + + static Factory factory; + + static Compiler getCompiler(List<String> opts, boolean verbose) { + if (factory == null) + factory = new DefaultFactory(); + + return factory.getCompiler(opts, verbose); } protected Compiler(boolean verbose) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/MessageFile.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,463 @@ +/* + * Copyright (c) 2010, 2011, 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.io.*; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Class to facilitate manipulating compiler.properties. + */ +class MessageFile { + static final Pattern emptyOrCommentPattern = Pattern.compile("( *#.*)?"); + static final Pattern infoPattern = Pattern.compile("# ([0-9]+: [-A-Za-z ]+, )*[0-9]+: [-A-Za-z ]+"); + + /** + * A line of text within the message file. + * The lines form a doubly linked list for simple navigation. + */ + class Line { + String text; + Line prev; + Line next; + + Line(String text) { + this.text = text; + } + + boolean isEmptyOrComment() { + return emptyOrCommentPattern.matcher(text).matches(); + } + + boolean isInfo() { + return infoPattern.matcher(text).matches(); + } + + boolean hasContinuation() { + return (next != null) && text.endsWith("\\"); + } + + Line insertAfter(String text) { + Line l = new Line(text); + insertAfter(l); + return l; + } + + void insertAfter(Line l) { + assert prev == null && next == null; + l.prev = this; + l.next = next; + if (next == null) + lastLine = l; + else + next.prev = l; + next = l; + } + + Line insertBefore(String text) { + Line l = new Line(text); + insertBefore(l); + return l; + } + + void insertBefore(Line l) { + assert prev == null && next == null; + l.prev = prev; + l.next = this; + if (prev == null) + firstLine = l; + else + prev.next = l; + prev = l; + } + + void remove() { + if (prev == null) + firstLine = next; + else + prev.next = next; + if (next == null) + lastLine = prev; + else + next.prev = prev; + prev = null; + next = null; + } + } + + /** + * A message within the message file. + * A message is a series of lines containing a "name=value" property, + * optionally preceded by a comment describing the use of placeholders + * such as {0}, {1}, etc within the property value. + */ + static final class Message { + final Line firstLine; + private Info info; + + Message(Line l) { + firstLine = l; + } + + boolean needInfo() { + Line l = firstLine; + while (true) { + if (l.text.matches(".*\\{[0-9]+\\}.*")) + return true; + if (!l.hasContinuation()) + return false; + l = l.next; + } + } + + Set<Integer> getPlaceholders() { + Pattern p = Pattern.compile("\\{([0-9]+)\\}"); + Set<Integer> results = new TreeSet<Integer>(); + Line l = firstLine; + while (true) { + Matcher m = p.matcher(l.text); + while (m.find()) + results.add(Integer.parseInt(m.group(1))); + if (!l.hasContinuation()) + return results; + l = l.next; + } + } + + /** + * Get the Info object for this message. It may be empty if there + * if no comment preceding the property specification. + */ + Info getInfo() { + if (info == null) { + Line l = firstLine.prev; + if (l != null && l.isInfo()) + info = new Info(l.text); + else + info = new Info(); + } + return info; + } + + /** + * Set the Info for this message. + * If there was an info comment preceding the property specification, + * it will be updated; otherwise, one will be inserted. + */ + void setInfo(Info info) { + this.info = info; + Line l = firstLine.prev; + if (l != null && l.isInfo()) + l.text = info.toComment(); + else + firstLine.insertBefore(info.toComment()); + } + + /** + * Get all the lines pertaining to this message. + */ + List<Line> getLines(boolean includeAllPrecedingComments) { + List<Line> lines = new ArrayList<Line>(); + Line l = firstLine; + if (includeAllPrecedingComments) { + // scan back to find end of prev message + while (l.prev != null && l.prev.isEmptyOrComment()) + l = l.prev; + // skip leading blank lines + while (l.text.isEmpty()) + l = l.next; + } else { + if (l.prev != null && l.prev.isInfo()) + l = l.prev; + } + + // include any preceding lines + for ( ; l != firstLine; l = l.next) + lines.add(l); + + // include message lines + for (l = firstLine; l != null && l.hasContinuation(); l = l.next) + lines.add(l); + lines.add(l); + + // include trailing blank line if present + l = l.next; + if (l != null && l.text.isEmpty()) + lines.add(l); + + return lines; + } + } + + /** + * An object to represent the comment that may precede the property + * specification in a Message. + * The comment is modelled as a list of fields, where the fields correspond + * to the placeholder values (e.g. {0}, {1}, etc) within the message value. + */ + static final class Info { + /** + * An ordered set of descriptions for a placeholder value in a + * message. + */ + static class Field { + boolean unused; + Set<String> values; + boolean listOfAny = false; + boolean setOfAny = false; + Field(String s) { + s = s.substring(s.indexOf(": ") + 2); + values = new LinkedHashSet<String>(Arrays.asList(s.split(" or "))); + for (String v: values) { + if (v.startsWith("list of")) + listOfAny = true; + if (v.startsWith("set of")) + setOfAny = true; + } + } + + /** + * Return true if this field logically contains all the values of + * another field. + */ + boolean contains(Field other) { + if (unused != other.unused) + return false; + + for (String v: other.values) { + if (values.contains(v)) + continue; + if (v.equals("null") || v.equals("string")) + continue; + if (v.equals("list") && listOfAny) + continue; + if (v.equals("set") && setOfAny) + continue; + return false; + } + return true; + } + + /** + * Merge the values of another field into this field. + */ + void merge(Field other) { + unused |= other.unused; + values.addAll(other.values); + + // cleanup unnecessary entries + + if (values.contains("null") && values.size() > 1) { + // "null" is superceded by anything else + values.remove("null"); + } + + if (values.contains("string") && values.size() > 1) { + // "string" is superceded by anything else + values.remove("string"); + } + + if (values.contains("list")) { + // list is superceded by "list of ..." + for (String s: values) { + if (s.startsWith("list of ")) { + values.remove("list"); + break; + } + } + } + + if (values.contains("set")) { + // set is superceded by "set of ..." + for (String s: values) { + if (s.startsWith("set of ")) { + values.remove("set"); + break; + } + } + } + + if (other.values.contains("unused")) { + values.clear(); + values.add("unused"); + } + } + + void markUnused() { + values = new LinkedHashSet<String>(); + values.add("unused"); + listOfAny = false; + setOfAny = false; + } + + @Override + public String toString() { + return values.toString(); + } + } + + /** The fields of the Info object. */ + List<Field> fields = new ArrayList<Field>(); + + Info() { } + + Info(String text) throws IllegalArgumentException { + if (!text.startsWith("# ")) + throw new IllegalArgumentException(); + String[] segs = text.substring(2).split(", "); + fields = new ArrayList<Field>(); + for (String seg: segs) { + fields.add(new Field(seg)); + } + } + + Info(Set<String> infos) throws IllegalArgumentException { + for (String s: infos) + merge(new Info(s)); + } + + boolean isEmpty() { + return fields.isEmpty(); + } + + boolean contains(Info other) { + if (other.isEmpty()) + return true; + + if (fields.size() != other.fields.size()) + return false; + + Iterator<Field> oIter = other.fields.iterator(); + for (Field values: fields) { + if (!values.contains(oIter.next())) + return false; + } + + return true; + } + + void merge(Info other) { + if (fields.isEmpty()) { + fields.addAll(other.fields); + return; + } + + if (other.fields.size() != fields.size()) + throw new IllegalArgumentException(); + + Iterator<Field> oIter = other.fields.iterator(); + for (Field d: fields) { + d.merge(oIter.next()); + } + } + + void markUnused(Set<Integer> used) { + for (int i = 0; i < fields.size(); i++) { + if (!used.contains(i)) + fields.get(i).markUnused(); + } + } + + @Override + public String toString() { + return fields.toString(); + } + + String toComment() { + StringBuilder sb = new StringBuilder(); + sb.append("# "); + String sep = ""; + int i = 0; + for (Field f: fields) { + sb.append(sep); + sb.append(i++); + sb.append(": "); + sep = ""; + for (String s: f.values) { + sb.append(sep); + sb.append(s); + sep = " or "; + } + sep = ", "; + } + return sb.toString(); + } + } + + Line firstLine; + Line lastLine; + Map<String, Message> messages = new TreeMap<String, Message>(); + + MessageFile(File file) throws IOException { + Reader in = new FileReader(file); + try { + read(in); + } finally { + in.close(); + } + } + + MessageFile(Reader in) throws IOException { + read(in); + } + + final void read(Reader in) throws IOException { + BufferedReader br = (in instanceof BufferedReader) + ? (BufferedReader) in + : new BufferedReader(in); + String line; + while ((line = br.readLine()) != null) { + Line l; + if (firstLine == null) + l = firstLine = lastLine = new Line(line); + else + l = lastLine.insertAfter(line); + if (line.startsWith("compiler.")) { + int eq = line.indexOf("="); + if (eq > 0) + messages.put(line.substring(0, eq), new Message(l)); + } + } + } + + void write(File file) throws IOException { + Writer out = new FileWriter(file); + try { + write(out); + } finally { + out.close(); + } + } + + void write(Writer out) throws IOException { + BufferedWriter bw = (out instanceof BufferedWriter) + ? (BufferedWriter) out + : new BufferedWriter(out); + for (Line l = firstLine; l != null; l = l.next) { + bw.write(l.text); + bw.write("\n"); // always use Unix line endings + } + bw.flush(); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/MessageInfo.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,410 @@ +/* + * Copyright (c) 2010, 2011, 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 7013272 + * @summary Automatically generate info about how compiler resource keys are used + * @build Example ArgTypeCompilerFactory MessageFile MessageInfo + * @run main MessageInfo + */ + +import java.io.*; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * Utility to manipulate compiler.properties, and suggest info comments based + * on information derived from running examples. + * + * Options: + * -examples dir location of examples directory + * -o file output file + * -check just check message file + * -ensureNewlines ensure newline after each entry + * -fixIndent fix indentation of continuation lines + * -sort sort messages + * -verbose verbose output + * -replace replace comments instead of merging comments + * file javac compiler.properties file + * + */ +public class MessageInfo { + public static void main(String... args) throws Exception { + jtreg = (System.getProperty("test.src") != null); + File tmpDir; + if (jtreg) { + // use standard jtreg scratch directory: the current directory + tmpDir = new File(System.getProperty("user.dir")); + } else { + tmpDir = new File(System.getProperty("java.io.tmpdir"), + MessageInfo.class.getName() + + (new SimpleDateFormat("yyMMddHHmmss")).format(new Date())); + } + Example.setTempDir(tmpDir); + Example.Compiler.factory = new ArgTypeCompilerFactory(); + + MessageInfo mi = new MessageInfo(); + + try { + if (mi.run(args)) + return; + } finally { + /* VERY IMPORTANT NOTE. In jtreg mode, tmpDir is set to the + * jtreg scratch directory, which is the current directory. + * In case someone is faking jtreg mode, make sure to only + * clean tmpDir when it is reasonable to do so. + */ + if (tmpDir.isDirectory() && + tmpDir.getName().startsWith(MessageInfo.class.getName())) { + if (clean(tmpDir)) + tmpDir.delete(); + } + } + + if (jtreg) + throw new Exception(mi.errors + " errors occurred"); + else + System.exit(1); + } + + void usage() { + System.out.println("Usage:"); + System.out.println(" java MessageInfo [options] [file]"); + System.out.println("where options include"); + System.out.println(" -examples dir location of examples directory"); + System.out.println(" -o file output file"); + System.out.println(" -check just check message file"); + System.out.println(" -ensureNewlines ensure newline after each entry"); + System.out.println(" -fixIndent fix indentation of continuation lines"); + System.out.println(" -sort sort messages"); + System.out.println(" -verbose verbose output"); + System.out.println(" -replace replace comments instead of merging comments"); + System.out.println(" file javac compiler.properties file"); + } + + boolean run(String... args) { + File testSrc = new File(System.getProperty("test.src", ".")); + File examplesDir = new File(testSrc, "examples"); + File notYetFile = null; + File msgFile = null; + File outFile = null; + boolean verbose = false; + boolean ensureNewlines = false; + boolean fixIndent = false; + boolean sort = false; + boolean replace = false; + boolean check = jtreg; // default true in jtreg mode + + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.equals("-examples") && (i + 1) < args.length) + examplesDir = new File(args[++i]); + else if(arg.equals("-notyet") && (i + 1) < args.length) + notYetFile = new File(args[++i]); + else if (arg.equals("-ensureNewlines")) + ensureNewlines = true; + else if (arg.equals("-fixIndent")) + fixIndent = true; + else if (arg.equals("-sort")) + sort = true; + else if (arg.equals("-verbose")) + verbose = true; + else if (arg.equals("-replace")) + replace = true; + else if (arg.equals("-check")) + check = true; + else if (arg.equals("-o") && (i + 1) < args.length) + outFile = new File(args[++i]); + else if (arg.startsWith("-")) { + error("unknown option: " + arg); + return false; + } else if (i == args.length - 1) { + msgFile = new File(arg); + } else { + error("unknown arg: " + arg); + return false; + } + } + + if (!check && outFile == null) { + usage(); + return true; + } + + if ((ensureNewlines || fixIndent || sort) && outFile == null) { + error("must set output file for these options"); + return false; + } + + if (notYetFile == null) { + notYetFile = new File(examplesDir.getParentFile(), "examples.not-yet.txt"); + } + + if (msgFile == null) { + for (File d = testSrc; d != null; d = d.getParentFile()) { + if (new File(d, "TEST.ROOT").exists()) { + d = d.getParentFile(); + File f = new File(d, "src/share/classes/com/sun/tools/javac/resources/compiler.properties"); + if (f.exists()) { + msgFile = f; + break; + } + } + } + if (msgFile == null) { + if (jtreg) { + System.err.println("Warning: no message file available, test skipped"); + return true; + } + error("no message file available"); + return false; + } + } + + MessageFile mf; + try { + mf = new MessageFile(msgFile); + } catch (IOException e) { + error("problem reading message file: " + e); + return false; + } + + Map<String, Set<String>> msgInfo = runExamples(examplesDir, verbose); + + if (ensureNewlines) + ensureNewlines(mf); + + if (fixIndent) + fixIndent(mf); + + if (sort) + sort(mf, true); + + for (Map.Entry<String, Set<String>> e: msgInfo.entrySet()) { + String k = e.getKey(); + Set<String> suggestions = e.getValue(); + MessageFile.Message m = mf.messages.get(k); + if (m == null) { + error("Can't find message for " + k + " in message file"); + continue; + } + + MessageFile.Info info = m.getInfo(); + Set<Integer> placeholders = m.getPlaceholders(); + MessageFile.Info suggestedInfo = new MessageFile.Info(suggestions); + suggestedInfo.markUnused(placeholders); + + if (!info.isEmpty()) { + if (info.contains(suggestedInfo)) + continue; + if (!replace) { + if (info.fields.size() != suggestedInfo.fields.size()) + error("Cannot merge info for " + k); + else + suggestedInfo.merge(info); + } + } + + if (outFile == null) { + System.err.println("suggest for " + k); + System.err.println(suggestedInfo.toComment()); + } else + m.setInfo(suggestedInfo); + } + + if (check) + check(mf, notYetFile); + + try { + if (outFile != null) + mf.write(outFile); + } catch (IOException e) { + error("problem writing file: " + e); + return false; + } + + return (errors == 0); + } + + void check(MessageFile mf, File notYetFile) { + Set<String> notYetList = null; + for (Map.Entry<String, MessageFile.Message> e: mf.messages.entrySet()) { + String key = e.getKey(); + MessageFile.Message m = e.getValue(); + if (m.needInfo() && m.getInfo().isEmpty()) { + if (notYetList == null) + notYetList = getNotYetList(notYetFile); + if (notYetList.contains(key)) + System.err.println("Warning: no info for " + key); + else + error("no info for " + key); + } + } + + } + + void ensureNewlines(MessageFile mf) { + for (MessageFile.Message m: mf.messages.values()) { + MessageFile.Line l = m.firstLine; + while (l.text.endsWith("\\")) + l = l.next; + if (l.next != null && !l.next.text.isEmpty()) + l.insertAfter(""); + } + } + + void fixIndent(MessageFile mf) { + for (MessageFile.Message m: mf.messages.values()) { + MessageFile.Line l = m.firstLine; + while (l.text.endsWith("\\") && l.next != null) { + if (!l.next.text.matches("^ \\S.*")) + l.next.text = " " + l.next.text.trim(); + l = l.next; + } + } + } + + void sort(MessageFile mf, boolean includePrecedingNewlines) { + for (MessageFile.Message m: mf.messages.values()) { + for (MessageFile.Line l: m.getLines(includePrecedingNewlines)) { + l.remove(); + mf.lastLine.insertAfter(l); + } + } + } + + Map<String, Set<String>> runExamples(File examplesDir, boolean verbose) { + Map<String, Set<String>> map = new TreeMap<String, Set<String>>(); + for (Example e: getExamples(examplesDir)) { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + e.run(pw, true, verbose); + pw.close(); + String[] lines = sw.toString().split("\n"); + for (String line: lines) { + if (!line.startsWith("compiler.")) + continue; + int colon = line.indexOf(":"); + if (colon == -1) + continue; + String key = line.substring(0, colon); + StringBuilder sb = new StringBuilder(); + sb.append("# "); + int i = 0; + String[] descs = line.substring(colon + 1).split(", *"); + for (String desc: descs) { + if (i > 0) sb.append(", "); + sb.append(i++); + sb.append(": "); + sb.append(desc.trim()); + } + Set<String> set = map.get(key); + if (set == null) + map.put(key, set = new TreeSet<String>()); + set.add(sb.toString()); + } + } + + return map; + } + + /** + * Get the complete set of examples to be checked. + */ + Set<Example> getExamples(File examplesDir) { + Set<Example> results = new TreeSet<Example>(); + for (File f: examplesDir.listFiles()) { + if (isValidExample(f)) + results.add(new Example(f)); + } + return results; + } + + boolean isValidExample(File f) { + return (f.isDirectory() && (!jtreg || f.list().length > 0)) || + (f.isFile() && f.getName().endsWith(".java")); + } + + /** + * Get the contents of the "not-yet" list. + */ + Set<String> getNotYetList(File file) { + Set<String> results = new TreeSet<String>(); + try { + String[] lines = read(file).split("[\r\n]"); + for (String line: lines) { + int hash = line.indexOf("#"); + if (hash != -1) + line = line.substring(0, hash).trim(); + if (line.matches("[A-Za-z0-9-_.]+")) + results.add(line); + } + } catch (IOException e) { + throw new Error(e); + } + return results; + } + + /** + * Read the contents of a file. + */ + String read(File f) throws IOException { + byte[] bytes = new byte[(int) f.length()]; + DataInputStream in = new DataInputStream(new FileInputStream(f)); + try { + in.readFully(bytes); + } finally { + in.close(); + } + return new String(bytes); + } + + /** + * Report an error. + */ + void error(String msg) { + System.err.println("Error: " + msg); + errors++; + } + + static boolean jtreg; + + int errors; + + /** + * Clean the contents of a directory. + */ + static boolean clean(File dir) { + boolean ok = true; + for (File f: dir.listFiles()) { + if (f.isDirectory()) + ok &= clean(f); + ok &= f.delete(); + } + return ok; + } + +} + +
--- a/test/tools/javac/diags/RunExamples.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/RunExamples.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -25,7 +25,7 @@ * @test * @bug 6968063 * @summary provide examples of code that generate diagnostics - * @build Example HTMLWriter RunExamples + * @build ArgTypeCompilerFactory Example HTMLWriter RunExamples * @run main RunExamples */ @@ -97,6 +97,7 @@ boolean raw = false; boolean showFiles = false; boolean verbose = false; + boolean argTypes = false; String title = null; for (int i = 0; i < args.length; i++) { @@ -115,6 +116,8 @@ outFile = new File(args[++i]); else if (arg.equals("-title") && (i + 1) < args.length) title = args[++i]; + else if (arg.equals("-argtypes")) + argTypes = true; else if (arg.startsWith("-")) { error("unknown option: " + arg); return false; @@ -127,6 +130,11 @@ } } + // special mode to show message keys and the types of the args that + // are used. + if (argTypes) + Example.Compiler.factory = new ArgTypeCompilerFactory(); + if (selectedKeys.size() > 0) { Set<Example> examples = getExamples(examplesDir); nextKey: @@ -138,7 +146,7 @@ error("Key " + k + ": no examples found"); } } else { - if (selectedExamples.size() == 0) + if (selectedExamples.isEmpty()) selectedExamples = getExamples(examplesDir); }
--- a/test/tools/javac/diags/examples.not-yet.txt Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples.not-yet.txt Sat Apr 09 00:45:10 2011 +0100 @@ -24,7 +24,6 @@ compiler.err.no.encl.instance.of.type.in.scope # cannot occur; always followed by assert false; compiler.err.no.match.entry # UNUSED? compiler.err.not.annotation.type # cannot occur given preceding checkType -compiler.err.not.within.bounds.explain # UNUSED? compiler.err.prob.found.req.1 # Check: DEAD, in unused method compiler.err.proc.bad.config.file # JavacProcessingEnvironment compiler.err.proc.cant.access # completion failure @@ -43,6 +42,7 @@ compiler.err.unexpected.type compiler.err.unknown.enum.constant # in bad class file compiler.err.unsupported.cross.fp.lit # Scanner: host system dependent +compiler.err.wrong.target.for.polymorphic.signature.definition # Transitional 292 compiler.misc.assignment.from.super-bound compiler.misc.assignment.to.extends-bound compiler.misc.bad.class.file.header # bad class file @@ -52,7 +52,6 @@ compiler.misc.bad.enclosing.method # bad class file compiler.misc.bad.runtime.invisible.param.annotations # bad class file compiler.misc.bad.signature # bad class file -compiler.misc.bad.type.annotation.value compiler.misc.base.membership # UNUSED compiler.misc.ccf.found.later.version compiler.misc.ccf.unrecognized.attribute @@ -64,7 +63,6 @@ compiler.misc.fatal.err.cant.close.loader # JavacProcessingEnvironment compiler.misc.file.does.not.contain.package compiler.misc.illegal.start.of.class.file -compiler.misc.inferred.do.not.conform.to.params # UNUSED (hard to see if very complex inference scenario might require this though, so leaving it in, as per JLS3) compiler.misc.kindname.annotation compiler.misc.kindname.enum compiler.misc.kindname.package @@ -113,4 +111,3 @@ compiler.warn.unchecked.assign # DEAD, replaced by compiler.misc.unchecked.assign compiler.warn.unchecked.cast.to.type # DEAD, replaced by compiler.misc.unchecked.cast.to.type compiler.warn.unexpected.archive.file # Paths: zip file with unknown extn -compiler.warn.wrong.target.for.polymorphic.signature.definition # Transitional 292
--- a/test/tools/javac/diags/examples/CantResolve.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/CantResolve.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -23,9 +23,8 @@ // key: compiler.err.cant.resolve -class CantResolve<T extends Object & java.io.Serializable> { - T t; - void m() { - Object o = t.v; - } +class CantResolve { + Object o = new Object() { + int i = f; + }; }
--- a/test/tools/javac/diags/examples/CantResolveArgsParams.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/CantResolveArgsParams.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -23,9 +23,8 @@ // key: compiler.err.cant.resolve.args.params -class CantResolveArgsParams<T extends Object & java.io.Serializable> { - T t; - void m() { - t.<Integer,Double>m2(1, ""); - } +class CantResolveArgsParams { + Object o = new Object() { + { this.<Integer,Double>m2(1, ""); } + }; }
--- a/test/tools/javac/diags/examples/CantResolveLocation.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/CantResolveLocation.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -22,6 +22,7 @@ */ // key: compiler.err.cant.resolve.location +// key: compiler.misc.location class CantResolveLocation { Unknown y;
--- a/test/tools/javac/diags/examples/CantResolveLocationArgs.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/CantResolveLocationArgs.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -22,6 +22,7 @@ */ // key: compiler.err.cant.resolve.location.args +// key: compiler.misc.location class X { void m() {
--- a/test/tools/javac/diags/examples/CantResolveLocationArgsParams.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/CantResolveLocationArgsParams.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -22,6 +22,7 @@ */ // key: compiler.err.cant.resolve.location.args.params +// key: compiler.misc.location import java.util.*;
--- a/test/tools/javac/diags/examples/EnumConstRequired.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* - * 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. - */ - -// key: compiler.err.enum.const.req - -class EnumConstRequired { - enum E { A, B, C }; - - void m(E e) { - switch (e) { - case e: - System.err.println("It's me!"); - } - } -}
--- a/test/tools/javac/diags/examples/ForeachNotApplicable.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/ForeachNotApplicable.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -22,6 +22,7 @@ */ // key: compiler.err.foreach.not.applicable.to.type +// key: compiler.misc.type.req.array.or.iterable class ForeachNotApplicable { void m(String arg) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/InaccessibleVarargsType/InaccessibleVarargsType.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2011, 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. + */ + +// key: compiler.misc.inaccessible.varargs.type +// key: compiler.err.cant.apply.symbol.1 + +import p1.B; + +class InaccessibleVarargsType { + { new B().foo(new B(), new B()); } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/InaccessibleVarargsType/p1/A.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p1; + +class A { + A() { } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/InaccessibleVarargsType/p1/B.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p1; + +public class B extends A { + public B() {} + public void foo(A... args) { } +}
--- a/test/tools/javac/diags/examples/KindnameClass.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/KindnameClass.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -23,6 +23,7 @@ // key: compiler.misc.kindname.class // key: compiler.err.cant.resolve.location +// key: compiler.misc.location // key: compiler.misc.count.error // run: backdoor
--- a/test/tools/javac/diags/examples/KindnameMethod.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/KindnameMethod.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -24,6 +24,7 @@ // key: compiler.misc.kindname.method // key: compiler.misc.kindname.class // key: compiler.err.cant.resolve.location.args +// key: compiler.misc.location // key: compiler.misc.count.error // run: backdoor
--- a/test/tools/javac/diags/examples/KindnameVariable.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/KindnameVariable.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -24,6 +24,7 @@ // key: compiler.misc.kindname.variable // key: compiler.misc.kindname.class // key: compiler.err.cant.resolve.location +// key: compiler.misc.location // key: compiler.misc.count.error // run: backdoor
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/Location.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2011, 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. + */ + +// key: compiler.err.cant.resolve.location +// key: compiler.misc.location + +class Location { + { Object o = v; } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/Location1.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2011, 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. + */ + +// key: compiler.err.cant.resolve.location +// key: compiler.misc.location.1 + +class Location1 { + Object o = null; + { Object o2 = o.v; } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/NameClashSameErasureNoHide.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2011, 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. + */ + +// key: compiler.err.name.clash.same.erasure.no.hide + +public class NameClashSameErasureNoHide<X> { + static class A { + static void m(NameClashSameErasureNoHide<String> l) {} + } + + static class B extends A { + static void m(NameClashSameErasureNoHide<Integer> l) {} + } +}
--- a/test/tools/javac/diags/examples/NameClashSameErasureNoOverride.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/NameClashSameErasureNoOverride.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 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 @@ -25,10 +25,10 @@ public class NameClashSameErasureNoOverride<X> { static class A { - static void m(NameClashSameErasureNoOverride<String> l) {} + void m(NameClashSameErasureNoOverride<String> l) {} } static class B extends A { - static void m(NameClashSameErasureNoOverride<Integer> l) {} + void m(NameClashSameErasureNoOverride<Integer> l) {} } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/NameClashSameErasureNoOverride1.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2011, 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. + */ + +// key: compiler.err.name.clash.same.erasure.no.override.1 + +public class NameClashSameErasureNoOverride1 { + + interface I<X> { + void m(X l); + } + + class A { + void m(Object l) {} + } + + class B extends A implements I<Integer> { + public void m(Integer l) {} + } +}
--- a/test/tools/javac/diags/examples/OperatorCantBeApplied.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/OperatorCantBeApplied.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -24,5 +24,6 @@ // key: compiler.err.operator.cant.be.applied class OperatorCantBeApplied { - String s = ("a" - "b"); + String s = null; + { s++; } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/OperatorCantBeApplied1.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2011, 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. + */ + +// key: compiler.err.operator.cant.be.applied.1 + +class OperatorCantBeApplied1 { + String s = ("a" - "b"); +}
--- a/test/tools/javac/diags/examples/StaticImportOnlyClassesAndInterfaces/StaticImportOnlyClassesAndInterfaces.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/diags/examples/StaticImportOnlyClassesAndInterfaces/StaticImportOnlyClassesAndInterfaces.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -23,6 +23,7 @@ // key: compiler.err.static.imp.only.classes.and.interfaces // key: compiler.err.cant.resolve.location +// key: compiler.misc.location import static p.Other.array.length;
--- a/test/tools/javac/diags/examples/TypeParameterOnPolymorphicSignature.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* - * 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. - */ - -// key: compiler.warn.type.parameter.on.polymorphic.signature -// key: compiler.err.unreported.exception.need.to.catch.or.throw - -import java.dyn.InvokeDynamic; - -class TypeParameterOnPolymorphicSignature { - { InvokeDynamic.<void>call("",123); } -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/diags/examples/VarargsAndOldArraySyntax.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2011, 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. + */ + +// key: compiler.err.varargs.and.old.array.syntax + +class VarargsAndOldArraySyntax { + void m1 (Integer... i[]) { } +}
--- a/test/tools/javac/failover/CheckAttributedTree.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/failover/CheckAttributedTree.java Sat Apr 09 00:45:10 2011 +0100 @@ -252,6 +252,13 @@ error("File " + file + " ignored"); } + // See CR: 6982992 Tests CheckAttributedTree.java, JavacTreeScannerTest.java, and SourceTreeeScannerTest.java timeout + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + Reporter r = new Reporter(pw); + JavacTool tool = JavacTool.create(); + StandardJavaFileManager fm = tool.getStandardFileManager(r, null, null); + /** * Read a file. * @param file the file to be read @@ -260,12 +267,8 @@ * @throws TreePosTest.ParseException if any errors occur while parsing the file */ List<Pair<JCCompilationUnit, JCTree>> read(File file) throws IOException, AttributionException { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - Reporter r = new Reporter(pw); JavacTool tool = JavacTool.create(); - Charset cs = (encoding == null ? null : Charset.forName(encoding)); - StandardJavaFileManager fm = tool.getStandardFileManager(r, null, null); + r.errors = 0; Iterable<? extends JavaFileObject> files = fm.getJavaFileObjects(file); String[] opts = { "-XDshouldStopPolicy=ATTR", "-XDverboseCompilePolicy" }; JavacTask task = tool.getTask(pw, fm, r, Arrays.asList(opts), null, files);
--- a/test/tools/javac/failover/FailOver01.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/failover/FailOver01.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,3 +1,3 @@ FailOver01.java:10:22: compiler.err.expected: ';' -FailOver01.java:10:16: compiler.err.cant.resolve.location: kindname.variable, x, , , kindname.class, Test +FailOver01.java:10:16: compiler.err.cant.resolve.location: kindname.variable, x, , , (compiler.misc.location: kindname.class, Test, null) 2 errors
--- a/test/tools/javac/failover/FailOver02.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/failover/FailOver02.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,3 +1,3 @@ FailOver02.java:10:1: compiler.err.does.not.override.abstract: Test, close(), java.lang.AutoCloseable -FailOver02.java:12:9: compiler.err.cant.resolve.location.args: kindname.method, close, , , kindname.class, Test +FailOver02.java:12:9: compiler.err.cant.resolve.location.args: kindname.method, close, , , (compiler.misc.location: kindname.class, Test, null) 2 errors
--- a/test/tools/javac/failover/FailOver04.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/failover/FailOver04.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -FailOver04.java:11:10: compiler.err.cant.resolve.location: kindname.class, Unknown, , , kindname.class, Test +FailOver04.java:11:10: compiler.err.cant.resolve.location: kindname.class, Unknown, , , (compiler.misc.location: kindname.class, Test, null) 1 error
--- a/test/tools/javac/generics/5009937/T5009937.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/5009937/T5009937.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T5009937.java:16:21: compiler.err.name.clash.same.erasure.no.override: m(T5009937<java.lang.Integer>), T5009937.B, m(T5009937<java.lang.String>), T5009937.A +T5009937.java:16:21: compiler.err.name.clash.same.erasure.no.hide: m(T5009937<java.lang.Integer>), T5009937.B, m(T5009937<java.lang.String>), T5009937.A 1 error
--- a/test/tools/javac/generics/6182950/T6182950b.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6182950/T6182950b.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6182950b.java:15:16: compiler.err.name.clash.same.erasure.no.override: m(java.util.List<java.lang.Integer>), T6182950b.B, m(java.util.List<java.lang.String>), T6182950b.A +T6182950b.java:15:16: compiler.err.name.clash.same.erasure.no.override: m(java.util.List<java.lang.Integer>), T6182950b.B, m(java.util.List<java.lang.String>), T6182950b.A, m(java.util.List<java.lang.Integer>), T6182950b.B 1 error
--- a/test/tools/javac/generics/6476118/T6476118a.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6476118/T6476118a.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6476118a.java:14:20: compiler.err.name.clash.same.erasure.no.override: compareTo(T), java.lang.Comparable, compareTo(java.lang.Object), T6476118a.A +T6476118a.java:14:20: compiler.err.name.clash.same.erasure.no.override.1: compareTo(T6476118a.B), T6476118a.B, compareTo(java.lang.Object), T6476118a.A, compareTo(T), java.lang.Comparable 1 error
--- a/test/tools/javac/generics/6476118/T6476118b.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6476118/T6476118b.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6476118b.java:12:20: compiler.err.name.clash.same.erasure.no.override: compareTo(T), java.lang.Comparable, compareTo(java.lang.Object), T6476118b +T6476118b.java:12:20: compiler.err.name.clash.same.erasure.no.override.1: compareTo(T6476118b.B), T6476118b.B, compareTo(java.lang.Object), T6476118b, compareTo(T), java.lang.Comparable 1 error
--- a/test/tools/javac/generics/6476118/T6476118c.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6476118/T6476118c.java Sat Apr 09 00:45:10 2011 +0100 @@ -5,7 +5,7 @@ * @compile/fail/ref=T6476118c.out -XDrawDiagnostics T6476118c.java */ -class T6476118b { +class T6476118c { static class A<T> { public void foo(T t) { } }
--- a/test/tools/javac/generics/6476118/T6476118c.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6476118/T6476118c.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,3 +1,3 @@ -T6476118c.java:18:21: compiler.err.name.clash.same.erasure.no.override: foo(java.lang.Object), T6476118b.C, foo(T), T6476118b.A -T6476118c.java:19:21: compiler.err.name.clash.same.erasure.no.override: foo(java.lang.Number), T6476118b.C, foo(T), T6476118b.B +T6476118c.java:18:21: compiler.err.name.clash.same.erasure.no.override: foo(java.lang.Object), T6476118c.C, foo(T), T6476118c.A, foo(java.lang.Object), T6476118c.C +T6476118c.java:19:21: compiler.err.name.clash.same.erasure.no.override: foo(java.lang.Number), T6476118c.C, foo(T), T6476118c.B, foo(java.lang.Number), T6476118c.C 2 errors
--- a/test/tools/javac/generics/6711619/T6711619a.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6711619/T6711619a.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ -T6711619a.java:40:14: compiler.err.cant.resolve.args: kindname.method, a, , -T6711619a.java:41:14: compiler.err.cant.resolve.args: kindname.method, b, , +T6711619a.java:40:14: compiler.err.cant.resolve.location.args: kindname.method, a, , , (compiler.misc.location.1: kindname.variable, t, T) +T6711619a.java:41:14: compiler.err.cant.resolve.location.args: kindname.method, b, , , (compiler.misc.location.1: kindname.variable, t, T) T6711619a.java:46:19: compiler.err.report.access: a, private, T6711619a.A T6711619a.java:47:19: compiler.err.report.access: b, private, T6711619a.B T6711619a.java:48:19: compiler.err.report.access: a, private, T6711619a.A
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550a.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,16 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6910550 + * + * @summary javac 1.5.0_17 fails with incorrect error message + * @compile/fail/ref=T6910550a.out -XDrawDiagnostics T6910550a.java + * + */ +import java.util.*; + +class T6910550a { + void m(List<String> ls) {} + void m(List<Integer> li) {} + + { m(Arrays.asList(12)); } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550a.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,2 @@ +T6910550a.java:13:10: compiler.err.name.clash.same.erasure: m(java.util.List<java.lang.Integer>), m(java.util.List<java.lang.String>) +1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550b.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,16 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6910550 + * + * @summary javac 1.5.0_17 fails with incorrect error message + * @compile/fail/ref=T6910550b.out -XDrawDiagnostics T6910550b.java + * + */ + +class T6910550b<X, Y, Z> { + void m(X x) {} + void m(Y y) {} + void m(Z y) {} + + { m(null); } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550b.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,3 @@ +T6910550b.java:12:10: compiler.err.name.clash.same.erasure: m(Y), m(X) +T6910550b.java:13:10: compiler.err.name.clash.same.erasure: m(Z), m(X) +2 errors
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550c.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,18 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6910550 + * + * @summary javac 1.5.0_17 fails with incorrect error message + * @compile/fail/ref=T6910550c.out -XDrawDiagnostics T6910550c.java + * + */ + +class T6910550c { + void m(Object[] x) {} + void m(Object... x) {} + + { m(); } + { m(null); } + { m(null, null); } + { m(null, null, null); } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550c.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,2 @@ +T6910550c.java:12:10: compiler.err.array.and.varargs: m(java.lang.Object...), m(java.lang.Object[]), T6910550c +1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550d.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,15 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6910550 + * + * @summary javac 1.5.0_17 fails with incorrect error message + * @compile/fail/ref=T6910550d.out -XDrawDiagnostics T6910550d.java + * + */ + +class T6910550d { + <X> void m(X x) {} + <Y> void m(Y y) {} + + { m(null); } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550d.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,2 @@ +T6910550d.java:12:14: compiler.err.already.defined: <X>m(X), T6910550d +1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550e.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,18 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6910550 + * + * @summary javac 1.5.0_17 fails with incorrect error message + * @compile/fail/ref=T6910550e.out -XDrawDiagnostics T6910550e.java + * + */ + +class T6910550e { + static class Pair<X,Y> {} + + <X> void m(Pair<X,X> x) {} + <X,Y> void m(Pair<X,Y> y) {} + + { m(new Pair<String,String>()); + m(new Pair<String,Integer>()); } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6910550/T6910550e.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,2 @@ +T6910550e.java:14:16: compiler.err.name.clash.same.erasure: <X,Y>m(T6910550e.Pair<X,Y>), <X>m(T6910550e.Pair<X,X>) +1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6969184/T6969184.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,29 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6956758 + * + * @summary poor error recovery after symbol not found + * @author Maurizio Cimadamore + * @compile/fail/ref=T6969184.out -XDrawDiagnostics T6969184.java + * + */ + +class T6969184 { + static class C1<X> { + void m1(C1<? extends NonExistentClass> n) {} + void m2(C1<? super NonExistentClass> n) {} + void m3(C1<?> n) {} + } + + static class C2<X extends NonExistentBound> { + void m1(C2<? extends NonExistentClass> n) {} + void m2(C2<? super NonExistentClass> n) {} + void m3(C2<?> n) {} + } + + static class C3<X extends NonExistentBound1 & NonExistentBound2> { + void m1(C3<? extends NonExistentClass> n) {} + void m2(C3<? super NonExistentClass> n) {} + void m3(C3<?> n) {} + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/6969184/T6969184.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,10 @@ +T6969184.java:13:30: compiler.err.cant.resolve.location: kindname.class, NonExistentClass, , , (compiler.misc.location: kindname.class, T6969184.C1<X>, null) +T6969184.java:14:28: compiler.err.cant.resolve.location: kindname.class, NonExistentClass, , , (compiler.misc.location: kindname.class, T6969184.C1<X>, null) +T6969184.java:18:31: compiler.err.cant.resolve.location: kindname.class, NonExistentBound, , , (compiler.misc.location: kindname.class, T6969184, null) +T6969184.java:19:30: compiler.err.cant.resolve.location: kindname.class, NonExistentClass, , , (compiler.misc.location: kindname.class, T6969184.C2<X>, null) +T6969184.java:20:28: compiler.err.cant.resolve.location: kindname.class, NonExistentClass, , , (compiler.misc.location: kindname.class, T6969184.C2<X>, null) +T6969184.java:24:31: compiler.err.cant.resolve.location: kindname.class, NonExistentBound1, , , (compiler.misc.location: kindname.class, T6969184, null) +T6969184.java:24:51: compiler.err.cant.resolve.location: kindname.class, NonExistentBound2, , , (compiler.misc.location: kindname.class, T6969184, null) +T6969184.java:25:30: compiler.err.cant.resolve.location: kindname.class, NonExistentClass, , , (compiler.misc.location: kindname.class, T6969184.C3<X>, null) +T6969184.java:26:28: compiler.err.cant.resolve.location: kindname.class, NonExistentClass, , , (compiler.misc.location: kindname.class, T6969184.C3<X>, null) +9 errors
--- a/test/tools/javac/generics/6985719/T6985719e.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6985719/T6985719e.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6985719e.java:13:34: compiler.err.name.clash.same.erasure.no.override: f(java.util.List<java.lang.Integer>), T6985719e.B, f(java.util.List<java.lang.String>), T6985719e.A +T6985719e.java:13:34: compiler.err.name.clash.same.erasure.no.override: f(java.util.List<java.lang.Integer>), T6985719e.B, f(java.util.List<java.lang.String>), T6985719e.A, f(java.util.List<java.lang.Integer>), T6985719e.B 1 error
--- a/test/tools/javac/generics/6985719/T6985719f.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6985719/T6985719f.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6985719f.java:13:39: compiler.err.name.clash.same.erasure.no.override: f(java.util.List<java.lang.Integer>), T6985719f.B, f(java.util.List<java.lang.String>), T6985719f.A +T6985719f.java:13:39: compiler.err.name.clash.same.erasure.no.override: f(java.util.List<java.lang.Integer>), T6985719f.B, f(java.util.List<java.lang.String>), T6985719f.A, f(java.util.List<java.lang.Integer>), T6985719f.B 1 error
--- a/test/tools/javac/generics/6985719/T6985719g.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6985719/T6985719g.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6985719g.java:13:42: compiler.err.name.clash.same.erasure.no.override: f(java.util.List<java.lang.Integer>), T6985719g.B, f(java.util.List<X>), T6985719g.A +T6985719g.java:13:42: compiler.err.name.clash.same.erasure.no.override: f(java.util.List<java.lang.Integer>), T6985719g.B, f(java.util.List<X>), T6985719g.A, f(java.util.List<java.lang.Integer>), T6985719g.B 1 error
--- a/test/tools/javac/generics/6985719/T6985719h.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/6985719/T6985719h.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6985719h.java:13:56: compiler.err.name.clash.same.erasure.no.override: f(java.util.List<java.lang.Integer>), T6985719h.B, f(java.util.List<X>), T6985719h.A +T6985719h.java:13:56: compiler.err.name.clash.same.erasure.no.override: f(java.util.List<java.lang.Integer>), T6985719h.B, f(java.util.List<X>), T6985719h.A, f(java.util.List<java.lang.Integer>), T6985719h.B 1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/T7007615.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,27 @@ +/* + * @test /nodynamiccopyright/ + * @bug 7007615 + * @summary java_util/generics/phase2/NameClashTest02 fails since jdk7/pit/b123. + * @author mcimadamore + * @compile/fail/ref=T7007615.out -XDrawDiagnostics T7007615.java + */ + +class T6985719a { + class AX<T extends Number> { + void foo(T t) { } + } + + class BX<S extends Integer> extends AX<S> { + @Override + void foo(S t) { } + void bar(BX bx){} + } + + class DX extends BX<Integer> { + void foo(Number t) { } + void bar(BX<?> bx) { } + + @Override + void foo(Integer t) { } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/T7007615.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,3 @@ +T7007615.java:21:14: compiler.err.name.clash.same.erasure.no.override: foo(java.lang.Number), T6985719a.DX, foo(T), T6985719a.AX, foo(java.lang.Number), T6985719a.DX +T7007615.java:22:14: compiler.err.name.clash.same.erasure.no.override: bar(T6985719a.BX<?>), T6985719a.DX, bar(T6985719a.BX), T6985719a.BX, bar(T6985719a.BX<?>), T6985719a.DX +2 errors
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/acc1/AccessibilityCheck01.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,12 @@ +/* + * @test /nodynamiccopyright/ + * @bug 7007615 + * @summary java_util/generics/phase2/NameClashTest02 fails since jdk7/pit/b123. + * @author dlsmith + * @compile AccessibilityCheck01.java + */ + +public class AccessibilityCheck01 extends p2.E { + String m(Object o) { return "hi"; } // this is okay + int m(String s) { return 3; } // this overrides m(String) illegally +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/acc1/p1/C.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p1; +public class C<T> { void m(T arg) { } /* implicit: m(Object) */ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/acc1/p1/D.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p1; +public class D<T> extends C<T> { /* inherits m(T), implicit m(Object) */ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/acc1/p2/E.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p2; +public class E<T> extends p1.D<T> { /* inherits nothing */ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/acc2/AccessibilityCheck02.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,13 @@ +/* + * @test /nodynamiccopyright/ + * @bug 7007615 + * @summary java_util/generics/phase2/NameClashTest02 fails since jdk7/pit/b123. + * @author dlsmith + * @compile/fail/ref=AccessibilityCheck02.out -XDrawDiagnostics AccessibilityCheck02.java + */ + +public class AccessibilityCheck02 extends p2.E { + String m(Object o) { return "hi"; } // this is okay + public int m(String s) { return 3; } // this overrides m(String) illegally +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/acc2/AccessibilityCheck02.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,2 @@ +AccessibilityCheck02.java:11:14: compiler.err.override.incompatible.ret: (compiler.misc.cant.override: m(java.lang.String), AccessibilityCheck02, m(java.lang.String), p1.D), int, void +1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/acc2/p1/C.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p1; +public class C<T> { void m(T arg) { } /* implicit: m(Object) */ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/acc2/p1/D.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p1; +public class D extends C<String> { public void m(String arg) {} /* implicit bridge: m(Object) */ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/7007615/acc2/p2/E.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p2; +public class E extends p1.D { /* inherits m(String) but not m(Object) */ }
--- a/test/tools/javac/generics/diamond/neg/Neg01.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/diamond/neg/Neg01.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,29 +1,29 @@ -Neg01.java:18:15: compiler.err.not.within.bounds: java.lang.String +Neg01.java:18:15: compiler.err.not.within.bounds: java.lang.String, X Neg01.java:18:28: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:19:15: compiler.err.not.within.bounds: ? extends java.lang.String +Neg01.java:19:15: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg01.java:19:38: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null Neg01.java:20:23: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:21:15: compiler.err.not.within.bounds: ? super java.lang.String +Neg01.java:21:15: compiler.err.not.within.bounds: ? super java.lang.String, X Neg01.java:21:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:23:15: compiler.err.not.within.bounds: java.lang.String +Neg01.java:23:15: compiler.err.not.within.bounds: java.lang.String, X Neg01.java:23:28: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:24:15: compiler.err.not.within.bounds: ? extends java.lang.String +Neg01.java:24:15: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg01.java:24:38: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null Neg01.java:25:23: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:26:15: compiler.err.not.within.bounds: ? super java.lang.String +Neg01.java:26:15: compiler.err.not.within.bounds: ? super java.lang.String, X Neg01.java:26:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:28:15: compiler.err.not.within.bounds: java.lang.String +Neg01.java:28:15: compiler.err.not.within.bounds: java.lang.String, X Neg01.java:28:28: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:29:15: compiler.err.not.within.bounds: ? extends java.lang.String +Neg01.java:29:15: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg01.java:29:39: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null Neg01.java:30:24: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:31:9: compiler.err.cant.resolve.location: kindname.class, Foo, , , kindname.class, Neg01<X> +Neg01.java:31:9: compiler.err.cant.resolve.location: kindname.class, Foo, , , (compiler.misc.location: kindname.class, Neg01<X>, null) Neg01.java:31:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:33:15: compiler.err.not.within.bounds: java.lang.String +Neg01.java:33:15: compiler.err.not.within.bounds: java.lang.String, X Neg01.java:33:29: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:34:15: compiler.err.not.within.bounds: ? extends java.lang.String +Neg01.java:34:15: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg01.java:34:39: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null Neg01.java:35:24: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null -Neg01.java:36:15: compiler.err.not.within.bounds: ? super java.lang.String +Neg01.java:36:15: compiler.err.not.within.bounds: ? super java.lang.String, X Neg01.java:36:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg01), null 28 errors
--- a/test/tools/javac/generics/diamond/neg/Neg02.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/diamond/neg/Neg02.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,57 +1,57 @@ -Neg02.java:19:13: compiler.err.not.within.bounds: java.lang.String +Neg02.java:19:13: compiler.err.not.within.bounds: java.lang.String, X Neg02.java:19:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:20:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:20:13: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg02.java:20:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null Neg02.java:21:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:22:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:22:13: compiler.err.not.within.bounds: ? super java.lang.String, X Neg02.java:22:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:24:13: compiler.err.not.within.bounds: java.lang.String +Neg02.java:24:13: compiler.err.not.within.bounds: java.lang.String, X Neg02.java:24:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:25:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:25:13: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg02.java:25:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null Neg02.java:26:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:27:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:27:13: compiler.err.not.within.bounds: ? super java.lang.String, X Neg02.java:27:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:29:13: compiler.err.not.within.bounds: java.lang.String +Neg02.java:29:13: compiler.err.not.within.bounds: java.lang.String, X Neg02.java:29:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:30:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:30:13: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg02.java:30:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null Neg02.java:31:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:32:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:32:13: compiler.err.not.within.bounds: ? super java.lang.String, X Neg02.java:32:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:34:13: compiler.err.not.within.bounds: java.lang.String +Neg02.java:34:13: compiler.err.not.within.bounds: java.lang.String, X Neg02.java:34:27: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:35:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:35:13: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg02.java:35:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null Neg02.java:36:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:37:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:37:13: compiler.err.not.within.bounds: ? super java.lang.String, X Neg02.java:37:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:41:13: compiler.err.not.within.bounds: java.lang.String +Neg02.java:41:13: compiler.err.not.within.bounds: java.lang.String, X Neg02.java:41:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:42:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:42:13: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg02.java:42:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null Neg02.java:43:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:44:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:44:13: compiler.err.not.within.bounds: ? super java.lang.String, X Neg02.java:44:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:46:13: compiler.err.not.within.bounds: java.lang.String +Neg02.java:46:13: compiler.err.not.within.bounds: java.lang.String, X Neg02.java:46:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:47:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:47:13: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg02.java:47:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null Neg02.java:48:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:49:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:49:13: compiler.err.not.within.bounds: ? super java.lang.String, X Neg02.java:49:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:51:13: compiler.err.not.within.bounds: java.lang.String +Neg02.java:51:13: compiler.err.not.within.bounds: java.lang.String, X Neg02.java:51:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:52:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:52:13: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg02.java:52:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null Neg02.java:53:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:54:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:54:13: compiler.err.not.within.bounds: ? super java.lang.String, X Neg02.java:54:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:56:13: compiler.err.not.within.bounds: java.lang.String +Neg02.java:56:13: compiler.err.not.within.bounds: java.lang.String, X Neg02.java:56:27: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:57:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:57:13: compiler.err.not.within.bounds: ? extends java.lang.String, X Neg02.java:57:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null Neg02.java:58:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null -Neg02.java:59:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:59:13: compiler.err.not.within.bounds: ? super java.lang.String, X Neg02.java:59:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg02.Foo), null 56 errors
--- a/test/tools/javac/generics/diamond/neg/Neg03.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/diamond/neg/Neg03.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,85 +1,85 @@ -Neg03.java:19:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:19:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:19:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:20:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:20:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:20:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:21:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:22:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:22:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:22:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:24:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:24:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:24:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:25:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:25:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:25:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:26:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:27:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:27:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:27:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:29:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:29:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:29:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:30:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:30:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:30:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:31:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:32:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:32:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:32:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:34:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:34:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:34:27: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:35:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:35:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:35:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:36:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:37:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:37:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:37:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:41:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:41:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:41:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:42:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:42:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:42:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:43:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:44:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:44:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:44:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:46:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:46:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:46:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:47:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:47:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:47:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:48:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:49:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:49:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:49:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:51:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:51:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:51:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:52:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:52:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:52:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:53:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:54:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:54:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:54:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:56:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:56:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:56:27: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:57:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:57:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:57:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:58:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:59:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:59:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:59:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:63:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:63:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:63:28: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:64:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:64:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:64:38: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:65:23: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:66:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:66:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:66:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:68:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:68:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:68:28: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:69:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:69:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:69:38: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:70:23: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:71:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:71:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:71:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:73:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:73:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:73:28: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:74:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:74:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:74:39: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:75:24: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:76:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:76:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:76:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:78:13: compiler.err.not.within.bounds: java.lang.String +Neg03.java:78:13: compiler.err.not.within.bounds: java.lang.String, V Neg03.java:78:29: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:79:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:79:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg03.java:79:39: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null Neg03.java:80:24: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null -Neg03.java:81:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:81:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg03.java:81:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Neg03.Foo), null 84 errors
--- a/test/tools/javac/generics/diamond/neg/Neg04.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/diamond/neg/Neg04.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,29 +1,29 @@ -Neg04.java:18:13: compiler.err.not.within.bounds: java.lang.String +Neg04.java:18:13: compiler.err.not.within.bounds: java.lang.String, V Neg04.java:18:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:19:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg04.java:19:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg04.java:19:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null Neg04.java:20:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:21:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg04.java:21:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg04.java:21:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:23:13: compiler.err.not.within.bounds: java.lang.String +Neg04.java:23:13: compiler.err.not.within.bounds: java.lang.String, V Neg04.java:23:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:24:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg04.java:24:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg04.java:24:36: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null Neg04.java:25:21: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:26:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg04.java:26:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg04.java:26:34: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:28:13: compiler.err.not.within.bounds: java.lang.String +Neg04.java:28:13: compiler.err.not.within.bounds: java.lang.String, V Neg04.java:28:26: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:29:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg04.java:29:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg04.java:29:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null Neg04.java:30:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:31:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg04.java:31:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg04.java:31:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:33:13: compiler.err.not.within.bounds: java.lang.String +Neg04.java:33:13: compiler.err.not.within.bounds: java.lang.String, V Neg04.java:33:27: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:34:13: compiler.err.not.within.bounds: ? extends java.lang.String +Neg04.java:34:13: compiler.err.not.within.bounds: ? extends java.lang.String, V Neg04.java:34:37: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null Neg04.java:35:22: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null -Neg04.java:36:13: compiler.err.not.within.bounds: ? super java.lang.String +Neg04.java:36:13: compiler.err.not.within.bounds: ? super java.lang.String, V Neg04.java:36:35: compiler.err.cant.apply.diamond: (compiler.misc.diamond: Foo), null 28 errors
--- a/test/tools/javac/generics/diamond/neg/Neg11.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/diamond/neg/Neg11.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,3 +1,3 @@ -Neg11.java:15:25: compiler.err.cant.resolve.location: kindname.class, UndeclaredName, , , kindname.class, Neg11 -Neg11.java:16:25: compiler.err.cant.resolve.location: kindname.class, UndeclaredName, , , kindname.class, Neg11 +Neg11.java:15:25: compiler.err.cant.resolve.location: kindname.class, UndeclaredName, , , (compiler.misc.location: kindname.class, Neg11, null) +Neg11.java:16:25: compiler.err.cant.resolve.location: kindname.class, UndeclaredName, , , (compiler.misc.location: kindname.class, Neg11, null) 2 errors
--- a/test/tools/javac/generics/inference/6638712/T6638712c.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/inference/6638712/T6638712c.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6638712c.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, sort, T[],java.util.Comparator<? super T>, java.lang.Enum[],java.util.Comparator<java.lang.Enum<?>>, kindname.class, T6638712c, (compiler.misc.inferred.do.not.conform.to.params: java.lang.Enum[],java.util.Comparator<? super java.lang.Enum>, java.lang.Enum[],java.util.Comparator<java.lang.Enum<?>>) +T6638712c.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, sort, T[],java.util.Comparator<? super T>, java.lang.Enum[],java.util.Comparator<java.lang.Enum<?>>, kindname.class, T6638712c, (compiler.misc.no.conforming.assignment.exists: java.util.Comparator<java.lang.Enum<?>>, java.util.Comparator<? super java.lang.Enum>) 1 error
--- a/test/tools/javac/generics/inference/6638712/T6638712d.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/inference/6638712/T6638712d.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -T6638712d.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, m, U,java.util.List<java.util.List<U>>, int,java.util.List<java.util.List<java.lang.String>>, kindname.class, T6638712d, (compiler.misc.inferred.do.not.conform.to.params: java.lang.String,java.util.List<java.util.List<java.lang.String>>, int,java.util.List<java.util.List<java.lang.String>>) +T6638712d.java:16:9: compiler.err.cant.apply.symbol.1: kindname.method, m, U,java.util.List<java.util.List<U>>, int,java.util.List<java.util.List<java.lang.String>>, kindname.class, T6638712d, (compiler.misc.no.conforming.assignment.exists: int, java.lang.String) 1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/inference/6838943/T6838943.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,16 @@ +/** + * @test /nodynamiccopyright/ + * @bug 6838943 + * @summary inference: javac is not handling type-variable substitution properly + * @compile/fail/ref=T6838943.out -XDrawDiagnostics T6838943.java + */ +class T6838943 { + static class A<X> {} + static class B {} + static class C<X> { + <Z> void m(X x, Z z) { + C<A<Z>> c = new C<A<Z>>(); + c.m(new A<B>(), new B()); //should fail + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/inference/6838943/T6838943.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,2 @@ +T6838943.java:13:14: compiler.err.cant.apply.symbol.1: kindname.method, m, T6838943.A<Z>,Z, T6838943.A<T6838943.B>,T6838943.B, kindname.class, T6838943.C<X>, (compiler.misc.infer.no.conforming.assignment.exists: Z, T6838943.A<T6838943.B>, T6838943.A<Z>) +1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/inference/6943278/T6943278.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,12 @@ +/** + * @test /nodynamiccopyright/ + * @bug 6943278 + * @summary spurious error message for inference and type-variable with erroneous bound + * @compile/fail/ref=T6943278.out -XDrawDiagnostics -Xlint:unchecked T6943278.java + */ +class T6943278<X extends Number & NonExistentInterface> { + <X> T6943278<X> m() { return null;} + <X extends Number & NonExistentInterface> T6943278<X> m(X x) { return null;} + T6943278<?> f1 = m(); + T6943278<?> f2 = m(""); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/inference/6943278/T6943278.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,3 @@ +T6943278.java:7:35: compiler.err.cant.resolve: kindname.class, NonExistentInterface, , +T6943278.java:9:25: compiler.err.cant.resolve.location: kindname.class, NonExistentInterface, , , (compiler.misc.location: kindname.class, T6943278<X>, null) +2 errors
--- a/test/tools/javac/generics/typevars/5060485/Compatibility.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/typevars/5060485/Compatibility.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -Compatibility.java:36:35: compiler.err.not.within.bounds: Test.Y +Compatibility.java:36:35: compiler.err.not.within.bounds: Test.Y, T 1 error
--- a/test/tools/javac/generics/typevars/5060485/Compatibility02.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/generics/typevars/5060485/Compatibility02.out Sat Apr 09 00:45:10 2011 +0100 @@ -1,2 +1,2 @@ -Compatibility.java:36:35: compiler.err.not.within.bounds: Test.Y +Compatibility.java:36:35: compiler.err.not.within.bounds: Test.Y, T 1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/typevars/6968793/T6968793.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,11 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6968793 + * @summary javac generates spourious diagnostics for ill-formed type-variable bounds + * @author mcimadamore + * @compile/fail/ref=T6968793.out -XDrawDiagnostics T6968793.java + */ + +class T6968793<X extends Number, Y extends X, Z extends Object & Comparable<Y>> { + T6968793<Object, Object, Object> o; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/generics/typevars/6968793/T6968793.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,4 @@ +T6968793.java:10:14: compiler.err.not.within.bounds: java.lang.Object, X +T6968793.java:10:22: compiler.err.not.within.bounds: java.lang.Object, Y +T6968793.java:10:30: compiler.err.not.within.bounds: java.lang.Object, Z +3 errors
--- a/test/tools/javac/javazip/Test.sh Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/javazip/Test.sh Sat Apr 09 00:45:10 2011 +0100 @@ -66,8 +66,8 @@ # clean old classes rm -f ${TC}${FS}*.class - echo "$*" - if $* 2>&1 ; then + echo "$@" + if "$@" 2>&1 ; then actual=ok else actual=err
--- a/test/tools/javac/meth/InvokeDyn.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2008, 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 6754038 6979327 - * @summary Generate call sites for method handle - * @author jrose - * - * @library .. - * @compile -source 7 -target 7 -XDinvokedynamic -XDallowTransitionalJSR292=no InvokeDyn.java - */ -//No: @run main/othervm -XX:+EnableInvokeDynamic meth.InvokeDyn - -/* - * Standalone testing: - * <code> - * $ cd $MY_REPO_DIR/langtools - * $ (cd make; make) - * $ ./dist/bootstrap/bin/javac -d dist test/tools/javac/meth/InvokeDyn.java - * $ javap -c -classpath dist meth.InvokeDyn - * </code> - */ - -package meth; - -import java.dyn.*; - -public class InvokeDyn { - class CS extends CallSite { - CS(Object x, Object y, Object z) { throw new RuntimeException(); } - } - //@BootstrapMethod(CS.class) //note: requires 6964498 - void test() throws Throwable { - Object x = "hello"; - Object ojunk; int ijunk; - ojunk = InvokeDynamic.greet(x, "world", 123); - ojunk = InvokeDynamic.greet(x, "mundus", 456); - ojunk = InvokeDynamic.greet(x, "kosmos", 789); - ojunk = (String) InvokeDynamic.cogitate(10.11121, 3.14); - //InvokeDynamic.#"yow: what I mean to say is, please treat this one specially"(null); - ijunk = (int) InvokeDynamic.invoke("goodbye"); - } -}
--- a/test/tools/javac/meth/InvokeDynTrans.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2008, 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 6754038 6979327 - * @summary Generate call sites for method handle - * @author jrose - * - * @library .. - * @compile/fail/ref=InvokeDynTrans.out -Werror -XDrawDiagnostics -source 7 -target 7 InvokeDynTrans.java - */ -//No: @run main/othervm -XX:+EnableInvokeDynamic meth.InvokeDyn - -/* - * Standalone testing: - * <code> - * $ cd $MY_REPO_DIR/langtools - * $ (cd make; make) - * $ ./dist/bootstrap/bin/javac -d dist test/tools/javac/meth/InvokeDyn.java - * $ javap -c -classpath dist meth.InvokeDyn - * </code> - */ - -package meth; - -import java.dyn.InvokeDynamic; - -public class InvokeDynTrans { - void test() throws Throwable { - Object x = "hello"; - InvokeDynamic.greet(x, "world", 123); - InvokeDynamic.greet(x, "mundus", 456); - InvokeDynamic.greet(x, "kosmos", 789); - InvokeDynamic.<String>cogitate(10.11121, 3.14); - //InvokeDynamic.<void>#"yow: what I mean to say is, please treat this one specially"(null); - InvokeDynamic.<int>invoke("goodbye"); - } -}
--- a/test/tools/javac/meth/InvokeDynTrans.out Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -InvokeDynTrans.java:55:39: compiler.warn.type.parameter.on.polymorphic.signature -InvokeDynTrans.java:57:34: compiler.warn.type.parameter.on.polymorphic.signature -- compiler.err.warnings.and.werror -1 error -2 warnings
--- a/test/tools/javac/meth/InvokeMHTrans.java Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -/* Copyright (c) 2008, 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 6754038 6979327 - * @summary Generate call sites for method handle - * @author jrose - * - * @compile/fail/ref=InvokeMHTrans.out -Werror -XDrawDiagnostics -source 7 -target 7 InvokeMHTrans.java - */ - -/* - * Standalone testing: - * <code> - * $ cd $MY_REPO_DIR/langtools - * $ (cd make; make) - * $ ./dist/bootstrap/bin/javac -d dist test/tools/javac/meth/InvokeMH.java - * $ javap -c -classpath dist meth.InvokeMH - * </code> - */ - -package meth; - -import java.dyn.MethodHandle; - -public class InvokeMHTrans { - void test(MethodHandle mh_SiO, - MethodHandle mh_vS, - MethodHandle mh_vi, - MethodHandle mh_vv) throws Throwable { - Object o; String s; int i; // for return type testing - - // next five must have sig = (String,int)Object - mh_SiO.invokeExact("world", 123); - mh_SiO.invokeExact("mundus", 456); - Object k = "kosmos"; - mh_SiO.invokeExact((String)k, 789); - o = mh_SiO.invokeExact((String)null, 000); - o = mh_SiO.<Object>invokeExact("arda", -123); - - // sig = ()String - s = mh_vS.<String>invokeExact(); - - // sig = ()int - i = mh_vi.<int>invokeExact(); - o = mh_vi.<int>invokeExact(); - //s = mh_vi.<int>invokeExact(); //BAD - mh_vi.<int>invokeExact(); - - // sig = ()void - //o = mh_vv.<void>invokeExact(); //BAD - mh_vv.<void>invokeExact(); - } - - void testGen(MethodHandle mh_SiO, - MethodHandle mh_vS, - MethodHandle mh_vi, - MethodHandle mh_vv) throws Throwable { - Object o; String s; int i; // for return type testing - - // next five must have sig = (*,*)* - mh_SiO.invokeGeneric((Object)"world", (Object)123); - mh_SiO.<void>invokeGeneric((Object)"mundus", (Object)456); - Object k = "kosmos"; - mh_SiO.invokeGeneric(k, 789); - o = mh_SiO.invokeGeneric(null, 000); - o = mh_SiO.<Object>invokeGeneric("arda", -123); - - // sig = ()String - o = mh_vS.invokeGeneric(); - - // sig = ()int - i = mh_vi.<int>invokeGeneric(); - o = mh_vi.invokeGeneric(); - //s = mh_vi.<int>invokeGeneric(); //BAD - mh_vi.<void>invokeGeneric(); - - // sig = ()void - //o = mh_vv.<void>invokeGeneric(); //BAD - o = mh_vv.invokeGeneric(); - } -}
--- a/test/tools/javac/meth/InvokeMHTrans.out Mon Jan 10 16:57:27 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -InvokeMHTrans.java:59:39: compiler.warn.type.parameter.on.polymorphic.signature -InvokeMHTrans.java:62:38: compiler.warn.type.parameter.on.polymorphic.signature -InvokeMHTrans.java:65:35: compiler.warn.type.parameter.on.polymorphic.signature -InvokeMHTrans.java:66:35: compiler.warn.type.parameter.on.polymorphic.signature -InvokeMHTrans.java:68:31: compiler.warn.type.parameter.on.polymorphic.signature -InvokeMHTrans.java:72:32: compiler.warn.type.parameter.on.polymorphic.signature -InvokeMHTrans.java:83:35: compiler.warn.type.parameter.on.polymorphic.signature -InvokeMHTrans.java:87:41: compiler.warn.type.parameter.on.polymorphic.signature -InvokeMHTrans.java:93:37: compiler.warn.type.parameter.on.polymorphic.signature -InvokeMHTrans.java:96:34: compiler.warn.type.parameter.on.polymorphic.signature -- compiler.err.warnings.and.werror -1 error -10 warnings
--- a/test/tools/javac/meth/TestCP.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/meth/TestCP.java Sat Apr 09 00:45:10 2011 +0100 @@ -42,13 +42,15 @@ static class TestClass { void test(MethodHandle mh) throws Throwable { - Number n = mh.<Number>invokeExact("daddy",1,'n'); + Number n = (Number)mh.invokeExact("daddy",1,'n'); n = (Number)mh.invokeExact("bunny",1,'d'); + n = (Number)(mh.invokeExact("foo",1,'d')); + n = (Number)((mh.invokeExact("bar",1,'d'))); } } static final String PS_TYPE = "(Ljava/lang/String;IC)Ljava/lang/Number;"; - static final int PS_CALLS_COUNT = 2; + static final int PS_CALLS_COUNT = 4; static final String SUBTEST_NAME = TestClass.class.getName() + ".class"; static final String TEST_METHOD_NAME = "test";
--- a/test/tools/javac/meth/XlintWarn.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/meth/XlintWarn.java Sat Apr 09 00:45:10 2011 +0100 @@ -23,7 +23,7 @@ /* * @test - * @bug 6999067 + * @bug 6999067 7010194 * @summary cast for invokeExact call gets redundant cast to <type> warnings * @author mcimadamore * @@ -34,9 +34,20 @@ class XlintWarn { void test(MethodHandle mh) throws Throwable { - int i1 = (int)mh.invoke(); - int i2 = (int)mh.invokeExact(); - int i3 = (int)mh.invokeVarargs(); - int i4 = (int)InvokeDynamic.test(); + int i1 = (int)mh.invokeExact(); + int i2 = (int)mh.invokeGeneric(); + int i3 = (int)mh.invokeWithArguments(); + } + + void test2(MethodHandle mh) throws Throwable { + int i1 = (int)(mh.invokeExact()); + int i2 = (int)(mh.invokeGeneric()); + int i3 = (int)(mh.invokeWithArguments()); + } + + void test3(MethodHandle mh) throws Throwable { + int i1 = (int)((mh.invokeExact())); + int i2 = (int)((mh.invokeGeneric())); + int i3 = (int)((mh.invokeWithArguments())); } }
--- a/test/tools/javac/nio/compileTest/CompileTest.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/nio/compileTest/CompileTest.java Sat Apr 09 00:45:10 2011 +0100 @@ -23,7 +23,7 @@ /** * @test - * @bug 6906175 6915476 6915497 + * @bug 6906175 6915476 6915497 7006564 * @summary Path-based JavaFileManager * @compile -g HelloPathWorld.java * @run main CompileTest @@ -84,8 +84,7 @@ System.err.println("Test " + count + " " + Arrays.asList(opts) + " " + className); Path testSrcDir = Paths.get(System.getProperty("test.src")); Path testClassesDir = Paths.get(System.getProperty("test.classes")); - Path classes = Paths.get("classes." + count); - classes.createDirectory(); + Path classes = Files.createDirectory(Paths.get("classes." + count)); Context ctx = new Context(); PathFileManager fm = new JavacPathFileManager(ctx, true, null);
--- a/test/tools/javac/policy/test1/byfile.ABD.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/policy/test1/byfile.ABD.out Sat Apr 09 00:45:10 2011 +0100 @@ -12,6 +12,6 @@ [generate code A2] [attribute B] [attribute B1] -B.java:12:9: compiler.err.cant.resolve.location: kindname.variable, x, , , kindname.class, B1 +B.java:12:9: compiler.err.cant.resolve.location: kindname.variable, x, , , (compiler.misc.location: kindname.class, B1, null) [attribute B2] 1 error
--- a/test/tools/javac/policy/test1/bytodo.ABD.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/policy/test1/bytodo.ABD.out Sat Apr 09 00:45:10 2011 +0100 @@ -15,7 +15,7 @@ [desugar B] [generate code B] [attribute B1] -B.java:12:9: compiler.err.cant.resolve.location: kindname.variable, x, , , kindname.class, B1 +B.java:12:9: compiler.err.cant.resolve.location: kindname.variable, x, , , (compiler.misc.location: kindname.class, B1, null) [attribute B2] [attribute D] [attribute D1]
--- a/test/tools/javac/policy/test1/simple.ABD.out Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/policy/test1/simple.ABD.out Sat Apr 09 00:45:10 2011 +0100 @@ -3,7 +3,7 @@ [attribute A2] [attribute B] [attribute B1] -B.java:12:9: compiler.err.cant.resolve.location: kindname.variable, x, , , kindname.class, B1 +B.java:12:9: compiler.err.cant.resolve.location: kindname.variable, x, , , (compiler.misc.location: kindname.class, B1, null) [attribute B2] [attribute D] [attribute D1]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/processing/filer/TestValidRelativeNames.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,136 @@ +/* + * 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 6999891 + * @summary Test valid relative names for Filer.createResource and Filer.getResource + * @library ../../lib + * @build JavacTestingAbstractProcessor + * @compile TestValidRelativeNames.java + * @compile/process -processor TestValidRelativeNames -Amode=create java.lang.Object + * @compile/process -processor TestValidRelativeNames -Amode=get java.lang.Object + */ + +import java.io.*; +import java.util.*; +import javax.annotation.processing.*; +import javax.lang.model.*; +import javax.lang.model.element.*; +import javax.tools.Diagnostic; +import javax.tools.StandardLocation; + +@SupportedOptions("mode") +public class TestValidRelativeNames extends JavacTestingAbstractProcessor { + enum Kind { READER_WRITER, INPUT_OUTPUT_STREAM }; + + static final String[] validRelativeNames = { + "foo", "foo.bar", ".foo", ".foo.bar", "foodir/bar", "foodir/.bar" + }; + + public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { + if (roundEnv.processingOver()) { + String mode = options.get("mode"); + for (String relativeBase: validRelativeNames) { + for (Kind kind: Kind.values()) { + if (mode.equals("create")) + testCreate(relativeBase, kind); + else + testGet(relativeBase, kind); + } + } + } + + return true; + } + + void testCreate(String relativeBase, Kind kind) { + String relative = getRelative(relativeBase, kind); + System.out.println("test create relative path: " + relative + ", kind: " + kind); + try { + switch (kind) { + case READER_WRITER: + try (Writer writer = filer.createResource( + StandardLocation.CLASS_OUTPUT, "", relative).openWriter()) { + writer.write(relative); + } + break; + + case INPUT_OUTPUT_STREAM: + try (OutputStream out = filer.createResource( + StandardLocation.CLASS_OUTPUT, "", relative).openOutputStream()) { + out.write(relative.getBytes()); + } + break; + } + } catch (Exception e) { + messager.printMessage(Diagnostic.Kind.ERROR, + "relative path: " + relative + ", kind: " + kind + ", unexpected exception: " + e); + } + } + + void testGet(String relativeBase, Kind kind) { + String relative = getRelative(relativeBase, kind); + System.out.println("test get relative path: " + relative + ", kind: " + kind); + try { + switch (kind) { + case READER_WRITER: + try (Reader reader = new BufferedReader(filer.getResource( + StandardLocation.CLASS_OUTPUT, "", relative).openReader(true))) { + StringBuilder sb = new StringBuilder(); + char[] buf = new char[1024]; + int n; + while ((n = reader.read(buf, 0, buf.length)) > 0) + sb.append(new String(buf, 0, n)); + if (!sb.toString().equals(relative)) { + messager.printMessage(Diagnostic.Kind.ERROR, "unexpected content: " + sb); + } + } + break; + + case INPUT_OUTPUT_STREAM: + try (InputStream in = new DataInputStream(filer.getResource( + StandardLocation.CLASS_OUTPUT, "", relative).openInputStream())) { + StringBuilder sb = new StringBuilder(); + byte[] buf = new byte[1024]; + int n; + while ((n = in.read(buf, 0, buf.length)) > 0) + sb.append(new String(buf, 0, n)); + if (!sb.toString().equals(relative)) { + messager.printMessage(Diagnostic.Kind.ERROR, "unexpected content: " + sb); + } + } + break; + } + } catch (Exception e) { + messager.printMessage(Diagnostic.Kind.ERROR, + "relative path: " + relative + ", kind: " + kind + ", unexpected exception: " + e); + } + } + + String getRelative(String relativeBase, Kind kind) { + String suffix = (kind == Kind.READER_WRITER ? "RW" : "IOS"); + return relativeBase.replace("foo", "foo" + suffix); + } +} +
--- a/test/tools/javac/processing/model/element/TestResourceVariable.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/processing/model/element/TestResourceVariable.java Sat Apr 09 00:45:10 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -23,7 +23,7 @@ /* * @test - * @bug 6911256 6964740 6967842 + * @bug 6911256 6964740 6967842 6961571 * @summary Test that the resource variable kind is appropriately set * @author Joseph D. Darcy * @library ../../../lib @@ -31,8 +31,6 @@ * @compile -processor TestResourceVariable -proc:only TestResourceVariable.java */ -// Bug should be filed for this misbehavior - import java.io.*; import javax.annotation.processing.*; import javax.lang.model.*; @@ -82,6 +80,33 @@ try(TestResourceVariable trv1 = this; TestResourceVariable trv2 = trv1) {} } + /** + * Verify that a resource variable modeled as an element behaves + * as expected under 6 and 7 specific visitors. + */ + private static void testResourceVariable(Element element) { + ElementVisitor visitor6 = new ElementKindVisitor6<Void, Void>() {}; + + try { + visitor6.visit(element); + throw new RuntimeException("Expected UnknownElementException not thrown."); + } catch (UnknownElementException uee) { + ; // Expected. + } + + ElementKindVisitor7 visitor7 = new ElementKindVisitor7<Object, Void>() { + @Override + public Object visitVariableAsResourceVariable(VariableElement e, + Void p) { + return e; // a non-null value + } + }; + + if (visitor7.visit(element) == null) { + throw new RuntimeException("Null result of resource variable visitation."); + } + } + class ResourceVariableScanner extends TreeScanner<Void, CompilationUnitTree> { private Trees trees; @@ -92,17 +117,14 @@ @Override public Void visitVariable(VariableTree node, CompilationUnitTree cu) { Element element = trees.getElement(trees.getPath(cu, node)); - if (element == null) { - System.out.println("Null variable element: " + node); - } else { - System.out.println("Name: " + element.getSimpleName() + - "\tKind: " + element.getKind()); - } - if (element != null && - element.getKind() == ElementKind.RESOURCE_VARIABLE) { + + System.out.println("Name: " + element.getSimpleName() + + "\tKind: " + element.getKind()); + if (element.getKind() == ElementKind.RESOURCE_VARIABLE) { + testResourceVariable(element); resourceVariableCount++; } return super.visitVariable(node, cu); } - } + } }
--- a/test/tools/javac/scope/HashCollisionTest.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/scope/HashCollisionTest.java Sat Apr 09 00:45:10 2011 +0100 @@ -47,7 +47,6 @@ JavacFileManager.preRegister(context); // required by ClassReader which is required by Symtab names = Names.instance(context); // Name.Table impls tied to an instance of Names symtab = Symtab.instance(context); - scopeCounter = ScopeCounter.instance(context); // determine hashMask for an empty scope Scope emptyScope = new Scope(symtab.unnamedPackage); // any owner will do @@ -171,7 +170,7 @@ */ ClassSymbol createClass(Name name, Symbol owner) { ClassSymbol sym = new ClassSymbol(0, name, owner); - sym.members_field = new ClassScope(sym, scopeCounter); + sym.members_field = new Scope(sym); if (owner != symtab.unnamedPackage) owner.members().enter(sym); return sym; @@ -247,5 +246,4 @@ Names names; Symtab symtab; - ScopeCounter scopeCounter; }
--- a/test/tools/javac/scope/StarImportTest.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/scope/StarImportTest.java Sat Apr 09 00:45:10 2011 +0100 @@ -136,7 +136,6 @@ JavacFileManager.preRegister(context); // required by ClassReader which is required by Symtab names = Names.instance(context); // Name.Table impls tied to an instance of Names symtab = Symtab.instance(context); - scopeCounter = ScopeCounter.instance(context); int setupCount = rgen.nextInt(MAX_SETUP_COUNT); for (int i = 0; i < setupCount; i++) { switch (random(SetupKind.values())) { @@ -303,7 +302,7 @@ ClassSymbol createClass(Name name, Symbol owner) { ClassSymbol sym = new ClassSymbol(0, name, owner); - sym.members_field = new ClassScope(sym, scopeCounter); + sym.members_field = new Scope(sym); if (owner != symtab.unnamedPackage) owner.members().enter(sym); return sym; @@ -311,7 +310,6 @@ Context context; Symtab symtab; - ScopeCounter scopeCounter; Names names; int nextNameSerial; List<PackageSymbol> packages = new ArrayList<PackageSymbol>();
--- a/test/tools/javac/tree/AbstractTreeScannerTest.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/tree/AbstractTreeScannerTest.java Sat Apr 09 00:45:10 2011 +0100 @@ -143,6 +143,13 @@ abstract int test(JCCompilationUnit t); + // See CR: 6982992 Tests CheckAttributedTree.java, JavacTreeScannerTest.java, and SourceTreeeScannerTest.java timeout + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + Reporter r = new Reporter(pw); + JavacTool tool = JavacTool.create(); + StandardJavaFileManager fm = tool.getStandardFileManager(r, null, null); + /** * Read a file. * @param file the file to be read @@ -151,11 +158,8 @@ * @throws TreePosTest.ParseException if any errors occur while parsing the file */ JCCompilationUnit read(File file) throws IOException, ParseException { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - Reporter r = new Reporter(pw); JavacTool tool = JavacTool.create(); - StandardJavaFileManager fm = tool.getStandardFileManager(r, null, null); + r.errors = 0; Iterable<? extends JavaFileObject> files = fm.getJavaFileObjects(file); JavacTask task = tool.getTask(pw, fm, r, Collections.<String>emptyList(), null, files); Iterable<? extends CompilationUnitTree> trees = task.parse();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/tree/T6963934.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2011 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 6963934 + * @summary JCCompilationUnit.getImports does not report all imports + */ + +import java.io.File; +import javax.tools.JavaCompiler; +import javax.tools.StandardJavaFileManager; +import javax.tools.ToolProvider;; // NOTE: extra semicolon for test + +import com.sun.source.tree.CompilationUnitTree; +import com.sun.source.tree.ImportTree; +import com.sun.source.util.JavacTask; +; // NOTE: extra semicolon for test + +public class T6963934 { + public static void main(String[] args) throws Exception { + File testSrc = new File(System.getProperty("test.src")); + File thisSrc = new File(testSrc, T6963934.class.getSimpleName() + ".java"); + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null); + JavacTask task = (JavacTask) compiler.getTask(null, fileManager, null, null, null, + fileManager.getJavaFileObjects(thisSrc)); + CompilationUnitTree tree = task.parse().iterator().next(); + int count = 0; + for (ImportTree importTree : tree.getImports()) { + System.out.println(importTree); + count++; + } + int expected = 7; + if (count != expected) + throw new Exception("unexpected number of imports found: " + count + ", expected: " + expected); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/tree/T6993305.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2011, 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 6993305 + * @summary starting position of a method without modifiers and with type parameters is incorrect + */ + +import java.io.File; +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; + +import com.sun.source.tree.CompilationUnitTree; +import com.sun.source.tree.MethodTree; +import com.sun.source.util.JavacTask; +import com.sun.source.util.SourcePositions; +import com.sun.source.util.TreeScanner; +import com.sun.source.util.Trees; +import com.sun.tools.javac.api.JavacTool; +import java.io.IOException; + +/* + * Test verifies the starting position of all methods by computing the start position + * of each method as the first non-white character on the first line containing + * (" " + methodName + "("), and then comparing this value against the reported + * value in the SourcePositions table. + */ +public class T6993305 { + <T> void test1(T t) { } // this is the primary case to be tested + public <T> void test2(T t) { } + @Deprecated <T> void test3(T t) { } + + public static void main(String... args) throws Exception { + new T6993305().run(); + } + + void run() throws Exception { + File testSrc = new File(System.getProperty("test.src")); + + JavacTool tool = JavacTool.create(); + StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null); + + File f = new File(testSrc, T6993305.class.getSimpleName() + ".java"); + Iterable<? extends JavaFileObject> fos = fm.getJavaFileObjects(f); + JavacTask task = tool.getTask(null, fm, null, null, null, fos); + Iterable<? extends CompilationUnitTree> cus = task.parse(); + + TestScanner s = new TestScanner(); + s.scan(cus, task); + + if (errors > 0) + throw new Exception(errors + " errors occurred"); + } + + void error(String msg) { + System.err.println("Error: " + msg); + errors++; + } + + int errors; + + class TestScanner extends TreeScanner<Void, JavacTask> { + CompilationUnitTree cu; + SourcePositions sourcePositions; + String source; + + void show(String label, int pos) { + System.err.println(label + ": " + + source.substring(pos, Math.min(source.length(), pos + 10))); + } + + @Override public Void visitCompilationUnit(CompilationUnitTree tree, JavacTask task) { + cu = tree; + Trees trees = Trees.instance(task); + sourcePositions = trees.getSourcePositions(); + try { + source = String.valueOf(tree.getSourceFile().getCharContent(true)); + } catch (IOException e) { + throw new Error(e); + } + return super.visitCompilationUnit(tree, task); + } + + // this is the core of the test + @Override public Void visitMethod(MethodTree tree, JavacTask task) { + String name = String.valueOf(tree.getName()); + int pos = source.indexOf(" " + name + "("); + while (source.charAt(pos - 1) != '\n') pos--; + while (source.charAt(pos) == ' ') pos++; + int expectedStart = pos; + int reportedStart = (int) sourcePositions.getStartPosition(cu, tree); + System.err.println("Method " + name + + " expectedStart:" + expectedStart + + " reportedStart:" + reportedStart); + if (expectedStart != reportedStart) { + error("Unexpected value for " + name); + show("expected", expectedStart); + show("reported", reportedStart); + } + return super.visitMethod(tree, task); + } + } +}
--- a/test/tools/javac/tree/TreePosTest.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/tree/TreePosTest.java Sat Apr 09 00:45:10 2011 +0100 @@ -249,6 +249,13 @@ error("File " + file + " ignored"); } + // See CR: 6982992 Tests CheckAttributedTree.java, JavacTreeScannerTest.java, and SourceTreeeScannerTest.java timeout + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + Reporter r = new Reporter(pw); + JavacTool tool = JavacTool.create(); + StandardJavaFileManager fm = tool.getStandardFileManager(r, null, null); + /** * Read a file. * @param file the file to be read @@ -257,12 +264,8 @@ * @throws TreePosTest.ParseException if any errors occur while parsing the file */ JCCompilationUnit read(File file) throws IOException, ParseException { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - Reporter r = new Reporter(pw); JavacTool tool = JavacTool.create(); - Charset cs = (encoding == null ? null : Charset.forName(encoding)); - StandardJavaFileManager fm = tool.getStandardFileManager(r, null, null); + r.errors = 0; Iterable<? extends JavaFileObject> files = fm.getJavaFileObjects(file); JavacTask task = tool.getTask(pw, fm, r, Collections.<String>emptyList(), null, files); Iterable<? extends CompilationUnitTree> trees = task.parse();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/types/GenericTypeWellFormednessTest.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,261 @@ +/* + * 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 7007432 7006109 + * @summary Test generic types well-formedness + * @author mcimadamore + * @library . + * @run main GenericTypeWellFormednessTest + */ + +import com.sun.tools.javac.code.BoundKind; +import com.sun.tools.javac.code.Type; +import com.sun.tools.javac.code.Type.*; +import com.sun.tools.javac.code.Symbol; +import com.sun.tools.javac.code.Symbol.*; +import java.lang.reflect.Array; + +/** + * Check parameterized type well-formedness. This test executes a number of checks + * in order to establish as to whether an instantiation of a generic type conforms + * to the generic class' declared bounds. + */ +public class GenericTypeWellFormednessTest extends TypeHarness { + + static int executedCount = 0; + static int ignoredCount = 0; + + InstantiableType[] rows; + Type[] columns; + + static class InstantiableType { + protected Type type; + + public InstantiableType(Type type) { + this.type = type; + } + + Type inst(Type clazz) { + return type; + } + } + + enum Result { + /* generic type is well-formed w.r.t. declared bounds */ + OK(true), + /* generic type is not well-formed w.r.t. declared bounds */ + FAIL(false), + /* generic type is not well-formed w.r.t. declared bounds according to the JLS 3rd, + * but javac allows it (spec for generic type well-formedness is overly restrictive) + * See regression test test/tools/generics/wildcards/T5097548.java + */ + IGNORE(false); + + boolean value; + + Result(boolean value) { + this.value = value; + } + } + + static final Result T = Result.OK; + static final Result F = Result.FAIL; + static final Result I = Result.IGNORE; + + /*is a type in 'rows' a valid instantiation for the generic class in 'col' ? */ + Result[][] isValidInstantiation = { + //Foo<X>, Foo<X ext Object>, Foo<X ext Number>, Foo<X ext Foo<X>>, Foo<X ext Foo<+X>>, Foo<X ext Foo<-X>>, Foo<X ext Foo<?>> + /*Foo<Object>*/ { T , T , F , F , F , F , F }, + /*Foo<Number>*/ { T , T , T , F , F , F , F }, + /*Foo<Integer>*/ { T , T , T , F , F , F , F }, + /*Foo<Double>*/ { T , T , T , F , F , F , F }, + /*Foo<String>*/ { T , T , F , F , F , F , F }, + /*Foo<X1>*/ { T , T , F , F , F , F , F }, + /*Foo<X2>*/ { T , T , T , F , F , F , F }, + /*Foo<X3>*/ { T , T , T , F , F , F , F }, + /*Foo<X4>*/ { T , T , T , F , F , F , F }, + /*Foo<X5>*/ { T , T , F , F , F , F , F }, + /*Foo<X6>*/ { T , T , F , T , T , T , T }, + /*Foo<+Object>*/ { T , T , I , I , I , I , I }, + /*Foo<+Number>*/ { T , T , T , F , F , F , F }, + /*Foo<+Integer>*/{ T , T , T , F , F , F , F }, + /*Foo<+Double>*/ { T , T , T , F , F , F , F }, + /*Foo<+String>*/ { T , T , F , F , F , F , F }, + /*Foo<+X1>*/ { T , T , F , F , F , F , F }, + /*Foo<+X2>*/ { T , T , T , F , F , F , F }, + /*Foo<+X3>*/ { T , T , T , F , F , F , F }, + /*Foo<+X4>*/ { T , T , T , F , F , F , F }, + /*Foo<+X5>*/ { T , T , F , F , F , F , F }, + /*Foo<+X6>*/ { T , T , F , T , T , I , T }, + /*Foo<-Object>*/ { T , T , F , F , F , F , F }, + /*Foo<-Number>*/ { T , T , T , F , F , F , F }, + /*Foo<-Integer>*/{ T , T , T , F , F , F , F }, + /*Foo<-Double>*/ { T , T , T , F , F , F , F }, + /*Foo<-String>*/ { T , T , F , F , F , F , F }, + /*Foo<-X1>*/ { T , T , I , I , I , I , I }, + /*Foo<-X2>*/ { T , T , I , F , F , F , F }, + /*Foo<-X3>*/ { T , T , I , F , F , F , F }, + /*Foo<-X4>*/ { T , T , I , F , F , F , F }, + /*Foo<-X5>*/ { T , T , I , F , F , F , F }, + /*Foo<-X6>*/ { T , T , F , T , I , I , T }, + /*Foo<?>*/ { T , T , T , T , T , T , T }}; + + GenericTypeWellFormednessTest() { + InstantiableType[] basicTypes = { + new InstantiableType(predef.objectType), + new InstantiableType(NumberType()), + new InstantiableType(box(predef.intType)), + new InstantiableType(box(predef.doubleType)), + new InstantiableType(predef.stringType) }; + + InstantiableType[] typeVars = new InstantiableType[basicTypes.length + 1]; + for (int i = 0 ; i < basicTypes.length ; i++) { + typeVars[i] = new InstantiableType(fac.TypeVariable(basicTypes[i].type)); + } + typeVars[typeVars.length - 1] = new InstantiableType(null) { + Type inst(Type clazz) { + TypeVar tvar = fac.TypeVariable(); + tvar.bound = subst(clazz, Mapping(clazz.getTypeArguments().head, tvar)); + return tvar; + } + }; + + InstantiableType[] typeArgs = join(InstantiableType.class, basicTypes, typeVars); + + InstantiableType[] invariantTypes = new InstantiableType[typeArgs.length]; + for (int i = 0 ; i < typeArgs.length ; i++) { + final InstantiableType type1 = typeArgs[i]; + invariantTypes[i] = new InstantiableType(typeArgs[i].type) { + Type inst(Type clazz) { + return subst(clazz, Mapping(clazz.getTypeArguments().head, type1.inst(clazz))); + } + }; + } + + InstantiableType[] covariantTypes = new InstantiableType[typeArgs.length]; + for (int i = 0 ; i < typeArgs.length ; i++) { + final InstantiableType type1 = typeArgs[i]; + covariantTypes[i] = new InstantiableType(null) { + Type inst(Type clazz) { + Type t = fac.Wildcard(BoundKind.EXTENDS, type1.inst(clazz)); + return subst(clazz, Mapping(clazz.getTypeArguments().head, t)); + } + }; + } + + InstantiableType[] contravariantTypes = new InstantiableType[typeArgs.length]; + for (int i = 0 ; i < typeArgs.length ; i++) { + final InstantiableType type1 = typeArgs[i]; + contravariantTypes[i] = new InstantiableType(null) { + Type inst(Type clazz) { + Type t = fac.Wildcard(BoundKind.SUPER, type1.inst(clazz)); + return subst(clazz, Mapping(clazz.getTypeArguments().head, t)); + } + }; + } + + InstantiableType[] bivariantTypes = { + new InstantiableType(fac.Wildcard(BoundKind.UNBOUND, predef.objectType)) { + Type inst(Type clazz) { + return subst(clazz, Mapping(clazz.getTypeArguments().head, type)); + } + } + }; + + rows = join(InstantiableType.class, invariantTypes, covariantTypes, contravariantTypes, bivariantTypes); + + Type tv1 = fac.TypeVariable(); + Type decl1 = fac.Class(tv1); + + Type tv2 = fac.TypeVariable(predef.objectType); + Type decl2 = fac.Class(tv2); + + Type tv3 = fac.TypeVariable(NumberType()); + Type decl3 = fac.Class(tv3); + + TypeVar tv4 = fac.TypeVariable(); + Type decl4 = fac.Class(tv4); + tv4.bound = decl4; + tv4.tsym.name = predef.exceptionType.tsym.name; + + TypeVar tv5 = fac.TypeVariable(); + Type decl5 = fac.Class(tv5); + tv5.bound = subst(decl5, Mapping(tv5, fac.Wildcard(BoundKind.EXTENDS, tv5))); + + TypeVar tv6 = fac.TypeVariable(); + Type decl6 = fac.Class(tv6); + tv6.bound = subst(decl6, Mapping(tv6, fac.Wildcard(BoundKind.SUPER, tv6))); + + TypeVar tv7 = fac.TypeVariable(); + Type decl7 = fac.Class(tv7); + tv7.bound = subst(decl7, Mapping(tv7, fac.Wildcard(BoundKind.UNBOUND, predef.objectType))); + + columns = new Type[] { + decl1, decl2, decl3, decl4, decl5, decl6, decl7 + }; + } + + void test() { + for (int i = 0; i < rows.length ; i++) { + for (int j = 0; j < columns.length ; j++) { + Type decl = columns[j]; + Type inst = rows[i].inst(decl); + if (isValidInstantiation[i][j] != Result.IGNORE) { + executedCount++; + assertValidGenericType(inst, isValidInstantiation[i][j].value); + } else { + ignoredCount++; + } + } + } + } + + Type NumberType() { + Symbol s = box(predef.intType).tsym; + s.complete(); + return ((ClassType)s.type).supertype_field; + } + + @SuppressWarnings("unchecked") + <T> T[] join(Class<T> type, T[]... args) { + int totalLength = 0; + for (T[] arr : args) { + totalLength += arr.length; + } + T[] new_arr = (T[])Array.newInstance(type, totalLength); + int idx = 0; + for (T[] arr : args) { + System.arraycopy(arr, 0, new_arr, idx, arr.length); + idx += arr.length; + } + return new_arr; + } + + public static void main(String[] args) { + new GenericTypeWellFormednessTest().test(); + System.out.println("Executed checks : " + executedCount); + System.out.println("Ignored checks : " + ignoredCount); + } +}
--- a/test/tools/javac/types/TypeHarness.java Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/types/TypeHarness.java Sat Apr 09 00:45:10 2011 +0100 @@ -29,6 +29,7 @@ import com.sun.tools.javac.code.Type; import com.sun.tools.javac.code.Type.*; import com.sun.tools.javac.code.Symbol.*; +import com.sun.tools.javac.comp.Check; import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.ListBuffer; import com.sun.tools.javac.util.Name; @@ -68,6 +69,7 @@ public class TypeHarness { protected Types types; + protected Check chk; protected Symtab predef; protected Names names; protected Factory fac; @@ -76,6 +78,7 @@ Context ctx = new Context(); JavacFileManager.preRegister(ctx); types = Types.instance(ctx); + chk = Check.instance(ctx); predef = Symtab.instance(ctx); names = Names.instance(ctx); fac = new Factory(); @@ -157,6 +160,21 @@ error(s + msg + t); } } + + /** assert that generic type 't' is well-formed */ + public void assertValidGenericType(Type t) { + assertValidGenericType(t, true); + } + + /** assert that 's' is/is not assignable to 't' */ + public void assertValidGenericType(Type t, boolean expected) { + if (chk.checkValidGenericType(t) != expected) { + String msg = expected ? + " is not a valid generic type" : + " is a valid generic type"; + error(t + msg + " " + t.tsym.type); + } + } // </editor-fold> private void error(String msg) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/varargs/6313164/T6313164.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,18 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6313164 + * @author mcimadamore + * @summary javac generates code that fails byte code verification for the varargs feature + * @compile/fail/ref=T6313164.out -XDrawDiagnostics T6313164.java + */ +import p1.*; + +class T6313164 { + { B b = new B(); + b.foo1(new B(), new B()); //error - A not accesible + b.foo2(new B(), new B()); //ok - A not accessible, but foo2(Object...) applicable + b.foo3(null, null); //error - A (inferred) not accesible + b.foo4(null, null); //error - A (inferred in 15.12.2.8 - no resolution backtrack) not accesible + b.foo4(new B(), new C()); //ok - A (inferred in 15.12.2.7) not accessible, but foo4(Object...) applicable + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/varargs/6313164/T6313164.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,6 @@ +T6313164.java:12:8: compiler.err.cant.apply.symbol.1: kindname.method, foo1, p1.A[], p1.B,p1.B, kindname.class, p1.B, (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164) +T6313164.java:14:13: compiler.err.invalid.inferred.types: X, (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164) +T6313164.java:15:13: compiler.err.invalid.inferred.types: X, (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164) +- compiler.note.unchecked.filename: B.java +- compiler.note.unchecked.recompile +3 errors
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/varargs/6313164/p1/A.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p1; + +class A { + A() { } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/varargs/6313164/p1/B.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p1; + +public class B extends A { + public B() {} + public void foo1(A... args) { } + public void foo2(A... args) { } + public void foo2(Object... args) { } + public <X extends A> void foo3(X... args) { } + public <X extends A> void foo4(X... args) { } + public void foo4(Object... args) { } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/varargs/6313164/p1/C.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2011, 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. + */ + +package p1; + +public class C extends A { }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/varargs/6569633/T6569633.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,13 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6569633 + * @author mcimadamore + * @summary Varargs: parser error when varargs element type is an array + * @compile/fail/ref=T6569633.out -XDrawDiagnostics T6569633.java + */ + +class T6569633 { + void m1 (Integer... i[]) { } + void m2 (Integer[]... i) { } + void m3 (Integer[]... i[]) { } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/varargs/6569633/T6569633.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,3 @@ +T6569633.java:10:27: compiler.err.varargs.and.old.array.syntax +T6569633.java:12:29: compiler.err.varargs.and.old.array.syntax +2 errors
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/varargs/T7013865.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2011, 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 7013865 + * @summary varargs: javac crashes during overload resolution with generic varargs + * @compile T7013865.java + */ + +class T7013865 { + public <X extends Number> void m(X... args) { } + public void m(Object... args) { } + + { m(null, null); } +}
--- a/test/tools/javac/versions/check.sh Mon Jan 10 16:57:27 2011 +0000 +++ b/test/tools/javac/versions/check.sh Sat Apr 09 00:45:10 2011 +0100 @@ -32,7 +32,7 @@ J="$TESTJAVA/bin/java" JC="$TESTJAVA/bin/javac" -CFV="$J ${TESTVMOPTS} -cp $TC CheckClassFileVersion" +CFV="${TESTVMOPTS} -cp $TC CheckClassFileVersion" rm -f $TC/X.java $TC/X.java echo 'public class X { }' > $TC/X.java @@ -44,7 +44,7 @@ check() { V=$1; shift echo "+ javac $* [$V]" - $JC ${TESTTOOLVMOPTS} -d $TC $* $TC/X.java && $CFV $TC/X.class $V || exit 2 + "$JC" ${TESTTOOLVMOPTS} -d $TC $* $TC/X.java && "$J" $CFV $TC/X.class $V || exit 2 } check 48.0 -source 1.4 @@ -73,7 +73,7 @@ fail() { echo "+ javac $*" - if $JC ${TESTTOOLVMOPTS} -d $TC $*; then + if "$JC" ${TESTTOOLVMOPTS} -d $TC $*; then echo "-- did not fail as expected" exit 3 else @@ -83,7 +83,7 @@ pass() { echo "+ javac $*" - if $JC ${TESTTOOLVMOPTS} -d $TC $*; then + if "$JC" ${TESTTOOLVMOPTS} -d $TC $*; then echo "-- passed" else echo "-- failed"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/warnings/6594914/DeprecatedClass.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2011, 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. + */ + +@Deprecated +class DeprecatedClass extends Exception {}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/warnings/6594914/T6594914a.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,29 @@ +/** + * @test /nodynamiccopyright/ + * @bug 6594914 + * @summary \\@SuppressWarnings("deprecation") does not not work for the type of a variable + * @compile/ref=T6594914a.out -XDrawDiagnostics -Xlint:deprecation T6594914a.java + */ + + +class T6747671a { + + DeprecatedClass a1; //warn + + @SuppressWarnings("deprecation") + DeprecatedClass a2; + + <X extends DeprecatedClass> DeprecatedClass m1(DeprecatedClass a) + throws DeprecatedClass { return null; } //warn + + @SuppressWarnings("deprecation") + <X extends DeprecatedClass> DeprecatedClass m2(DeprecatedClass a) + throws DeprecatedClass { return null; } + + void test() { + DeprecatedClass a1; //warn + + @SuppressWarnings("deprecation") + DeprecatedClass a2; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/warnings/6594914/T6594914a.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,7 @@ +T6594914a.java:11:5: compiler.warn.has.been.deprecated: DeprecatedClass, compiler.misc.unnamed.package +T6594914a.java:16:16: compiler.warn.has.been.deprecated: DeprecatedClass, compiler.misc.unnamed.package +T6594914a.java:16:52: compiler.warn.has.been.deprecated: DeprecatedClass, compiler.misc.unnamed.package +T6594914a.java:16:33: compiler.warn.has.been.deprecated: DeprecatedClass, compiler.misc.unnamed.package +T6594914a.java:17:20: compiler.warn.has.been.deprecated: DeprecatedClass, compiler.misc.unnamed.package +T6594914a.java:24:9: compiler.warn.has.been.deprecated: DeprecatedClass, compiler.misc.unnamed.package +6 warnings
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/warnings/6594914/T6594914b.java Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,29 @@ +/** + * @test /nodynamiccopyright/ + * @bug 6594914 + * @summary \\@SuppressWarnings("deprecation") does not not work for the type of a variable + * @compile/ref=T6594914b.out -XDenableSunApiLintControl -XDrawDiagnostics -Xlint:sunapi T6594914b.java + */ + + +class T6747671b { + + sun.misc.Lock a1; //warn + + @SuppressWarnings("sunapi") + sun.misc.Lock a2; + + <X extends sun.misc.Lock> sun.misc.Lock m1(sun.misc.Lock a) + throws sun.misc.CEFormatException { return null; } //warn + + @SuppressWarnings("sunapi") + <X extends sun.misc.Lock> sun.misc.Lock m2(sun.misc.Lock a) + throws sun.misc.CEFormatException { return null; } + + void test() { + sun.misc.Lock a1; //warn + + @SuppressWarnings("sunapi") + sun.misc.Lock a2; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/warnings/6594914/T6594914b.out Sat Apr 09 00:45:10 2011 +0100 @@ -0,0 +1,7 @@ +T6594914b.java:11:13: compiler.warn.sun.proprietary: sun.misc.Lock +T6594914b.java:16:24: compiler.warn.sun.proprietary: sun.misc.Lock +T6594914b.java:16:56: compiler.warn.sun.proprietary: sun.misc.Lock +T6594914b.java:16:39: compiler.warn.sun.proprietary: sun.misc.Lock +T6594914b.java:17:28: compiler.warn.sun.proprietary: sun.misc.CEFormatException +T6594914b.java:24:17: compiler.warn.sun.proprietary: sun.misc.Lock +6 warnings