[PATCH] Type Inference

Ahmed Ashour asashour at yahoo.com
Mon Sep 14 12:54:40 UTC 2015


Hi all,

Please find the below proposed batch for generics Type Inference.

Thanks a lot,
Ahmed


diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/OverloadedDynamicMethod.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/OverloadedDynamicMethod.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/OverloadedDynamicMethod.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -118,7 +118,7 @@
       * @param name the name of the method
       */
      OverloadedDynamicMethod(final Class<?> clazz, final String name) {
-        this(new LinkedList<SingleDynamicMethod>(), 
clazz.getClassLoader(), getClassAndMethodName(clazz, name));
+        this(new LinkedList<>(), clazz.getClassLoader(), 
getClassAndMethodName(clazz, name));
      }

      private OverloadedDynamicMethod(final 
LinkedList<SingleDynamicMethod> methods, final ClassLoader classLoader, 
final String name) {
diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -519,7 +519,7 @@
      public boolean enterFunctionNode(final FunctionNode functionNode) {
          start(functionNode, false);

-        thisProperties.push(new HashSet<String>());
+        thisProperties.push(new HashSet<>());

          // Every function has a body, even the ones skipped on reparse 
(they have an empty one). We're
          // asserting this as even for those, enterBlock() must be 
invoked to correctly process symbols that
diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/LocalVariableTypesCalculator.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/LocalVariableTypesCalculator.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/LocalVariableTypesCalculator.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -1635,7 +1635,7 @@
          }
          assert symbol.hasSlot();
          assert !symbol.isGlobal();
-        localVariableTypes = localVariableTypes.isEmpty() ? new 
IdentityHashMap<Symbol, LvarType>() : cloneMap(localVariableTypes);
+        localVariableTypes = localVariableTypes.isEmpty() ? new 
IdentityHashMap<>() : cloneMap(localVariableTypes);
          localVariableTypes.put(symbol, type);
      }

diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/Lower.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/Lower.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/Lower.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -189,7 +189,7 @@
          final int line = debuggerNode.getLineNumber();
          final long token = debuggerNode.getToken();
          final int finish = debuggerNode.getFinish();
-        addStatement(new ExpressionStatement(line, token, finish, new 
RuntimeNode(token, finish, RuntimeNode.Request.DEBUGGER, new 
ArrayList<Expression>())));
+        addStatement(new ExpressionStatement(line, token, finish, new 
RuntimeNode(token, finish, RuntimeNode.Request.DEBUGGER, new 
ArrayList<>())));
          return false;
      }

diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/types/Type.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/types/Type.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/types/Type.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -109,11 +109,11 @@
      private final Class<?> clazz;

      /**
-     * Cache for internal types - this is a query that requires complex 
stringbuilding inside
+     * Cache for internal types - this is a query that requires complex 
string building inside
       * ASM and it saves startup time to cache the type mappings
       */
      private static final Map<Class<?>, 
jdk.internal.org.objectweb.asm.Type> INTERNAL_TYPE_CACHE =
-            Collections.synchronizedMap(new WeakHashMap<Class<?>, 
jdk.internal.org.objectweb.asm.Type>());
+            Collections.synchronizedMap(new WeakHashMap<>());

      /** Internal ASM type for this Type - computed once at construction */
      private transient final jdk.internal.org.objectweb.asm.Type 
internalType;
diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/BlockLexicalContext.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/BlockLexicalContext.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/BlockLexicalContext.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -49,7 +49,7 @@
      public <T extends LexicalContextNode> T push(final T node) {
          final T pushed = super.push(node);
          if (node instanceof Block) {
-            sstack.push(new ArrayList<Statement>());
+            sstack.push(new ArrayList<>());
          }
          return pushed;
      }
diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/OptimisticLexicalContext.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/OptimisticLexicalContext.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/OptimisticLexicalContext.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -107,7 +107,7 @@
      public <T extends LexicalContextNode> T push(final T node) {
          if (isEnabled) {
              if(node instanceof FunctionNode) {
-                optimisticAssumptions.push(new ArrayList<Assumption>());
+                optimisticAssumptions.push(new ArrayList<>());
              }
          }

diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -686,7 +686,7 @@
              return invalidatedProgramPoints;
          }
          final Map<Integer, Type> loadedProgramPoints = 
OptimisticTypesPersistence.load(typeInformationFile);
-        return loadedProgramPoints != null ? loadedProgramPoints : new 
TreeMap<Integer, Type>();
+        return loadedProgramPoints != null ? loadedProgramPoints : new 
TreeMap<>();
      }

      private FunctionInitializer compileTypeSpecialization(final 
MethodType actualCallSiteType, final ScriptObject runtimeScope, final 
boolean persist) {
diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptEnvironment.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptEnvironment.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptEnvironment.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -343,7 +343,7 @@
          }

          final LoggingOption loggingOption = 
(LoggingOption)options.get("log");
-        this._loggers = loggingOption == null ? new HashMap<String, 
LoggerInfo>() : loggingOption.getLoggers();
+        this._loggers = loggingOption == null ? new HashMap<>() : 
loggingOption.getLoggers();

          final LoggerInfo timeLoggerInfo = 
_loggers.get(Timing.getLoggerName());
          this._timing = new Timing(timeLoggerInfo != null && 
timeLoggerInfo.getLevel() != Level.OFF);
diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/LengthNotWritableFilter.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/LengthNotWritableFilter.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/LengthNotWritableFilter.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -19,7 +19,7 @@
       * @param underlying array
       */
      LengthNotWritableFilter(final ArrayData underlying) {
-        this(underlying, new TreeMap<Long, Object>());
+        this(underlying, new TreeMap<>());
      }

      private LengthNotWritableFilter(final ArrayData underlying, final 
SortedMap<Long, Object> extraElements) {
diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -48,7 +48,7 @@
      private TreeMap<Long, Object> sparseMap;

      SparseArrayData(final ArrayData underlying, final long length) {
-        this(underlying, length, new TreeMap<Long, Object>());
+        this(underlying, length, new TreeMap<>());
      }

      SparseArrayData(final ArrayData underlying, final long length, 
final TreeMap<Long, Object> sparseMap) {
diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/RegExpFactory.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/RegExpFactory.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/RegExpFactory.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -48,7 +48,7 @@
       *  startup
       */
      private static final Map<String, RegExp> REGEXP_CACHE =
-            Collections.synchronizedMap(new WeakHashMap<String, RegExp>());
+            Collections.synchronizedMap(new WeakHashMap<>());

      static {
          final String impl = 
Options.getStringProperty("nashorn.regexp.impl", JONI);
diff -r 751ada854e5a 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/joni/Analyser.java
--- 
a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/joni/Analyser.java 
Mon Sep 14 16:13:10 2015 +0530
+++ 
b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/joni/Analyser.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -79,7 +79,7 @@
              if (Config.DEBUG_PARSE_TREE_RAW) {
                  Config.log.println("<TREE>");
              }
-            root.verifyTree(new HashSet<Node>(), env.reg.warnings);
+            root.verifyTree(new HashSet<>(), env.reg.warnings);
              Config.log.println(root + "\n");
          }

@@ -908,7 +908,7 @@

          ConsAltNode topRoot = null, r = null;
          @SuppressWarnings("unused")
-        final ObjPtr<Node> prevNode = new ObjPtr<Node>();
+        final ObjPtr<Node> prevNode = new ObjPtr<>();
          StringNode stringNode = null;

          while (pt < end) {
diff -r 751ada854e5a 
test/src/jdk/nashorn/api/scripting/test/PluggableJSObjectTest.java
--- a/test/src/jdk/nashorn/api/scripting/test/PluggableJSObjectTest.java 
Mon Sep 14 16:13:10 2015 +0530
+++ b/test/src/jdk/nashorn/api/scripting/test/PluggableJSObjectTest.java 
Mon Sep 14 13:40:46 2015 +0200
@@ -236,7 +236,7 @@
          @SuppressWarnings("unused")
          @Override
          public Object newObject(final Object... args) {
-            return new HashMap<Object, Object>();
+            return new HashMap<>();
          }

          @Override
diff -r 751ada854e5a test/src/jdk/nashorn/api/tree/test/ParseAPITest.java
--- a/test/src/jdk/nashorn/api/tree/test/ParseAPITest.java    Mon Sep 14 
16:13:10 2015 +0530
+++ b/test/src/jdk/nashorn/api/tree/test/ParseAPITest.java    Mon Sep 14 
13:40:46 2015 +0200
@@ -145,7 +145,7 @@

              final Parser parser = Parser.create(options);
              final Tree tree = parser.parse(file.getAbsolutePath(), 
content, null);
-            tree.accept(new SimpleTreeVisitorES5_1<Void, Void>(), null);
+            tree.accept(new SimpleTreeVisitorES5_1<>(), null);
              passed++;
          } catch (final Throwable exp) {
              log("Parse API failed: " + file.getAbsolutePath() + " : " 
+ exp);



More information about the nashorn-dev mailing list