--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java Mon Dec 04 10:13:58 2017 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java Mon Dec 04 17:54:49 2017 +0000
@@ -38,6 +38,7 @@
import com.sun.tools.javac.code.*;
import com.sun.tools.javac.code.Lint.LintCategory;
import com.sun.tools.javac.code.Scope.WriteableScope;
+import com.sun.tools.javac.code.Source.Feature;
import com.sun.tools.javac.code.Symbol.*;
import com.sun.tools.javac.code.Type.*;
import com.sun.tools.javac.code.TypeMetadata.Annotations;
@@ -150,12 +151,12 @@
Options options = Options.instance(context);
Source source = Source.instance(context);
- allowStringsInSwitch = source.allowStringsInSwitch();
- allowPoly = source.allowPoly();
- allowTypeAnnos = source.allowTypeAnnotations();
- allowLambda = source.allowLambda();
- allowDefaultMethods = source.allowDefaultMethods();
- allowStaticInterfaceMethods = source.allowStaticInterfaceMethods();
+ allowStringsInSwitch = Feature.STRINGS_IN_SWITCH.allowedInSource(source);
+ allowPoly = Feature.POLY.allowedInSource(source);
+ allowTypeAnnos = Feature.TYPE_ANNOTATIONS.allowedInSource(source);
+ allowLambda = Feature.LAMBDA.allowedInSource(source);
+ allowDefaultMethods = Feature.DEFAULT_METHODS.allowedInSource(source);
+ allowStaticInterfaceMethods = Feature.STATIC_INTERFACE_METHODS.allowedInSource(source);
sourceName = source.name;
useBeforeDeclarationWarning = options.isSet("useBeforeDeclarationWarning");
@@ -1392,7 +1393,7 @@
boolean enumSwitch = (seltype.tsym.flags() & Flags.ENUM) != 0;
boolean stringSwitch = types.isSameType(seltype, syms.stringType);
if (stringSwitch && !allowStringsInSwitch) {
- log.error(DiagnosticFlag.SOURCE_LEVEL, tree.selector.pos(), Errors.StringSwitchNotSupportedInSource(sourceName));
+ log.error(DiagnosticFlag.SOURCE_LEVEL, tree.selector.pos(), Feature.STRINGS_IN_SWITCH.error(sourceName));
}
if (!enumSwitch && !stringSwitch)
seltype = chk.checkType(tree.selector.pos(), seltype, syms.intType);
@@ -3667,7 +3668,7 @@
}
if (!allowStaticInterfaceMethods && sitesym.isInterface() &&
sym.isStatic() && sym.kind == MTH) {
- log.error(DiagnosticFlag.SOURCE_LEVEL, tree.pos(), Errors.StaticIntfMethodInvokeNotSupportedInSource(sourceName));
+ log.error(DiagnosticFlag.SOURCE_LEVEL, tree.pos(), Feature.STATIC_INTERFACE_METHODS_INVOKE.error(sourceName));
}
} else if (sym.kind != ERR &&
(sym.flags() & STATIC) != 0 &&