You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2018/08/25 16:44:49 UTC

[1/8] groovy git commit: Minor refactoring: Explicit type can be replaced with <>

Repository: groovy
Updated Branches:
  refs/heads/master 80a8b1990 -> 72fd40785


http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/util/ManagedConcurrentMap.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/util/ManagedConcurrentMap.java b/src/main/java/org/codehaus/groovy/util/ManagedConcurrentMap.java
index d1cf760..97e41ba 100644
--- a/src/main/java/org/codehaus/groovy/util/ManagedConcurrentMap.java
+++ b/src/main/java/org/codehaus/groovy/util/ManagedConcurrentMap.java
@@ -29,7 +29,7 @@ public class ManagedConcurrentMap<K,V> extends AbstractConcurrentMap<K,V> {
     protected Segment<K,V> createSegment(Object segmentInfo, int cap) {
         ReferenceBundle bundle = (ReferenceBundle) segmentInfo;
         if (bundle==null) throw new IllegalArgumentException("bundle must not be null");
-        return new ManagedConcurrentMap.Segment<K,V>(bundle, cap);
+        return new ManagedConcurrentMap.Segment<>(bundle, cap);
     }
 
     public static class Segment<K,V> extends AbstractConcurrentMap.Segment<K,V>{
@@ -44,7 +44,7 @@ public class ManagedConcurrentMap<K,V> extends AbstractConcurrentMap<K,V> {
 
         protected AbstractConcurrentMap.Entry<K,V> createEntry(K key, int hash, V value) {
             if (bundle==null) throw new IllegalArgumentException("bundle must not be null");
-            return new EntryWithValue<K,V>(bundle, this, key, hash, value);
+            return new EntryWithValue<>(bundle, this, key, hash, value);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/util/ManagedConcurrentValueMap.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/util/ManagedConcurrentValueMap.java b/src/main/java/org/codehaus/groovy/util/ManagedConcurrentValueMap.java
index f28ee68..c8c05fb 100644
--- a/src/main/java/org/codehaus/groovy/util/ManagedConcurrentValueMap.java
+++ b/src/main/java/org/codehaus/groovy/util/ManagedConcurrentValueMap.java
@@ -35,7 +35,7 @@ public class ManagedConcurrentValueMap<K,V> {
     private ReferenceBundle bundle;
     public ManagedConcurrentValueMap(ReferenceBundle bundle){
         this.bundle = bundle;
-        internalMap = new ConcurrentHashMap<K, ManagedReference<V>>();
+        internalMap = new ConcurrentHashMap<>();
     }
     
     /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/util/ManagedLinkedList.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/util/ManagedLinkedList.java b/src/main/java/org/codehaus/groovy/util/ManagedLinkedList.java
index 17fa266..ff1e42e 100644
--- a/src/main/java/org/codehaus/groovy/util/ManagedLinkedList.java
+++ b/src/main/java/org/codehaus/groovy/util/ManagedLinkedList.java
@@ -101,7 +101,7 @@ public class ManagedLinkedList<T> {
      * @param value the value
      */
     public void add(T value) {
-        Element<T> element = new Element<T>(bundle, value);
+        Element<T> element = new Element<>(bundle, value);
         element.previous = tail;
         if (tail != null) tail.next = element;
         tail = element;
@@ -126,7 +126,7 @@ public class ManagedLinkedList<T> {
      * @return the array
      */
     public T[] toArray(T[] tArray) {
-        List<T> array = new ArrayList<T>(100);
+        List<T> array = new ArrayList<>(100);
         for (Iterator<T> it = iterator(); it.hasNext();) {
             T val = it.next();
             if (val != null) array.add(val);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/util/ReferenceManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/util/ReferenceManager.java b/src/main/java/org/codehaus/groovy/util/ReferenceManager.java
index 6ab6d56..da73d39 100644
--- a/src/main/java/org/codehaus/groovy/util/ReferenceManager.java
+++ b/src/main/java/org/codehaus/groovy/util/ReferenceManager.java
@@ -79,7 +79,7 @@ public class ReferenceManager {
     private static class CallBackedManager extends ReferenceManager {
 
         private static final ConcurrentHashMap<ReferenceQueue, ReferenceManager> queuesInProcess =
-                new ConcurrentHashMap<ReferenceQueue, ReferenceManager>(4, 0.9f, 2);
+                new ConcurrentHashMap<>(4, 0.9f, 2);
 
         public CallBackedManager(ReferenceQueue queue) {
             super(queue);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyArrayAccess.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyArrayAccess.java b/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyArrayAccess.java
index 92ce658..bf1f8dc 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyArrayAccess.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyArrayAccess.java
@@ -44,7 +44,7 @@ public class IndyArrayAccess {
 
     private static final HashMap<Class,MethodHandle> getterMap, setterMap;
     static {
-        getterMap = new HashMap<Class,MethodHandle>();
+        getterMap = new HashMap<>();
         Class[] classes = new Class[]{
                 int[].class, byte[].class, short[].class, long[].class,
                 double[].class, float[].class,
@@ -53,7 +53,7 @@ public class IndyArrayAccess {
             MethodHandle handle = buildGetter(arrayClass);
             getterMap.put(arrayClass, handle);
         }
-        setterMap = new HashMap<Class,MethodHandle>();
+        setterMap = new HashMap<>();
         for (Class arrayClass : classes) {
             MethodHandle handle = buildSetter(arrayClass);
             setterMap.put(arrayClass, handle);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
index 7655899..34fc49e 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
@@ -100,7 +100,7 @@ public class PluginDefaultGroovyMethods {
     public static <S,T> Future<T> collect(Future<S> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<T> transform) {
         Objects.requireNonNull(self);
         Objects.requireNonNull(transform);
-        return new TransformedFuture<T>(self, transform);
+        return new TransformedFuture<>(self, transform);
     }
 
     private static class TransformedFuture<E> implements Future<E> {


[6/8] groovy git commit: Minor refactoring: Explicit type can be replaced with <>

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java b/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
index d2ab237..23c9943 100644
--- a/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
+++ b/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
@@ -220,15 +220,15 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
     // The data store and its maximum capacity
     concurrencyLevel = builder.concurrencyLevel;
     capacity = new AtomicLong(Math.min(builder.capacity, MAXIMUM_CAPACITY));
-    data = new ConcurrentHashMap<K, Node<K, V>>(builder.initialCapacity, 0.75f, concurrencyLevel);
+    data = new ConcurrentHashMap<>(builder.initialCapacity, 0.75f, concurrencyLevel);
 
     // The eviction support
     weigher = builder.weigher;
     evictionLock = new ReentrantLock();
     weightedSize = new AtomicLong();
-    evictionDeque = new LinkedDeque<Node<K, V>>();
-    writeBuffer = new ConcurrentLinkedQueue<Runnable>();
-    drainStatus = new AtomicReference<DrainStatus>(IDLE);
+    evictionDeque = new LinkedDeque<>();
+    writeBuffer = new ConcurrentLinkedQueue<>();
+    drainStatus = new AtomicReference<>(IDLE);
 
     readBufferReadCount = new long[NUMBER_OF_READ_BUFFERS];
     readBufferWriteCount = new AtomicLong[NUMBER_OF_READ_BUFFERS];
@@ -239,7 +239,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
       readBufferDrainAtWriteCount[i] = new AtomicLong();
       readBuffers[i] = new AtomicReference[READ_BUFFER_SIZE];
       for (int j = 0; j < READ_BUFFER_SIZE; j++) {
-        readBuffers[i][j] = new AtomicReference<Node<K, V>>();
+        readBuffers[i][j] = new AtomicReference<>();
       }
     }
 
@@ -247,7 +247,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
     listener = builder.listener;
     pendingNotifications = (listener == DiscardingListener.INSTANCE)
         ? (Queue<Node<K, V>>) DISCARDING_QUEUE
-        : new ConcurrentLinkedQueue<Node<K, V>>();
+        : new ConcurrentLinkedQueue<>();
   }
 
   /** Ensures that the object is not null. */
@@ -493,7 +493,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
    */
   boolean tryToRetire(Node<K, V> node, WeightedValue<V> expect) {
     if (expect.isAlive()) {
-      final WeightedValue<V> retired = new WeightedValue<V>(expect.value, -expect.weight);
+      final WeightedValue<V> retired = new WeightedValue<>(expect.value, -expect.weight);
       return node.compareAndSet(expect, retired);
     }
     return false;
@@ -511,7 +511,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
       if (!current.isAlive()) {
         return;
       }
-      final WeightedValue<V> retired = new WeightedValue<V>(current.value, -current.weight);
+      final WeightedValue<V> retired = new WeightedValue<>(current.value, -current.weight);
       if (node.compareAndSet(current, retired)) {
         return;
       }
@@ -528,7 +528,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
   void makeDead(Node<K, V> node) {
     for (;;) {
       WeightedValue<V> current = node.get();
-      WeightedValue<V> dead = new WeightedValue<V>(current.value, 0);
+      WeightedValue<V> dead = new WeightedValue<>(current.value, 0);
       if (node.compareAndSet(current, dead)) {
         weightedSize.lazySet(weightedSize.get() - Math.abs(current.weight));
         return;
@@ -720,8 +720,8 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
     checkNotNull(value);
 
     final int weight = weigher.weightOf(key, value);
-    final WeightedValue<V> weightedValue = new WeightedValue<V>(value, weight);
-    final Node<K, V> node = new Node<K, V>(key, weightedValue);
+    final WeightedValue<V> weightedValue = new WeightedValue<>(value, weight);
+    final Node<K, V> node = new Node<>(key, weightedValue);
 
     for (;;) {
       final Node<K, V> prior = data.putIfAbsent(node.key, node);
@@ -782,7 +782,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
     checkNotNull(key);
     checkNotNull(mappingFunction);
 
-    final ObjectHolder<Node<K, V>> objectHolder = new ObjectHolder<Node<K, V>>();
+    final ObjectHolder<Node<K, V>> objectHolder = new ObjectHolder<>();
 
     for (;;) {
       Function<K, Node<K, V>> f = k -> {
@@ -791,8 +791,8 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
         checkNotNull(value);
 
         final int weight = weigher.weightOf(key, value);
-        final WeightedValue<V> weightedValue = new WeightedValue<V>(value, weight);
-        final Node<K, V> node = new Node<K, V>(key, weightedValue);
+        final WeightedValue<V> weightedValue = new WeightedValue<>(value, weight);
+        final Node<K, V> node = new Node<>(key, weightedValue);
 
         objectHolder.setObject(node);
 
@@ -804,8 +804,8 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
       if (null == node) { // the entry is present
         V value = prior.getValue();
         final int weight = weigher.weightOf(key, value);
-        final WeightedValue<V> weightedValue = new WeightedValue<V>(value, weight);
-        node = new Node<K, V>(key, weightedValue);
+        final WeightedValue<V> weightedValue = new WeightedValue<>(value, weight);
+        node = new Node<>(key, weightedValue);
       } else {
         // the return value of `computeIfAbsent` is different from the one of `putIfAbsent`.
         // if the key is absent in map, the return value of `computeIfAbsent` is the newly computed value, but `putIfAbsent` return null.
@@ -888,7 +888,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
     checkNotNull(value);
 
     final int weight = weigher.weightOf(key, value);
-    final WeightedValue<V> weightedValue = new WeightedValue<V>(value, weight);
+    final WeightedValue<V> weightedValue = new WeightedValue<>(value, weight);
 
     final Node<K, V> node = data.get(key);
     if (node == null) {
@@ -918,7 +918,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
     checkNotNull(newValue);
 
     final int weight = weigher.weightOf(key, newValue);
-    final WeightedValue<V> newWeightedValue = new WeightedValue<V>(newValue, weight);
+    final WeightedValue<V> newWeightedValue = new WeightedValue<>(newValue, weight);
 
     final Node<K, V> node = data.get(key);
     if (node == null) {
@@ -1028,7 +1028,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
       final int initialCapacity = (weigher == Weighers.entrySingleton())
           ? Math.min(limit, (int) weightedSize())
           : 16;
-      final Set<K> keys = new LinkedHashSet<K>(initialCapacity);
+      final Set<K> keys = new LinkedHashSet<>(initialCapacity);
       final Iterator<Node<K, V>> iterator = ascending
           ? evictionDeque.iterator()
           : evictionDeque.descendingIterator();
@@ -1138,7 +1138,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
       final int initialCapacity = (weigher == Weighers.entrySingleton())
           ? Math.min(limit, (int) weightedSize())
           : 16;
-      final Map<K, V> map = new LinkedHashMap<K, V>(initialCapacity);
+      final Map<K, V> map = new LinkedHashMap<>(initialCapacity);
       final Iterator<Node<K, V>> iterator = ascending
           ? evictionDeque.iterator()
           : evictionDeque.descendingIterator();
@@ -1474,7 +1474,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
     }
 
     Object writeReplace() {
-      return new SimpleEntry<K, V>(this);
+      return new SimpleEntry<>(this);
     }
   }
 
@@ -1522,7 +1522,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
   static final long serialVersionUID = 1;
 
   Object writeReplace() {
-    return new SerializationProxy<K, V>(this);
+    return new SerializationProxy<>(this);
   }
 
   private void readObject(ObjectInputStream stream) throws InvalidObjectException {
@@ -1545,7 +1545,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
 
     SerializationProxy(ConcurrentLinkedHashMap<K, V> map) {
       concurrencyLevel = map.concurrencyLevel;
-      data = new HashMap<K, V>(map);
+      data = new HashMap<>(map);
       capacity = map.capacity.get();
       listener = map.listener;
       weigher = map.weigher;
@@ -1667,7 +1667,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
     public Builder<K, V> weigher(Weigher<? super V> weigher) {
       this.weigher = (weigher == Weighers.singleton())
           ? Weighers.<K, V>entrySingleton()
-          : new BoundedEntryWeigher<K, V>(Weighers.asEntryWeigher(weigher));
+          : new BoundedEntryWeigher<>(Weighers.asEntryWeigher(weigher));
       return this;
     }
 
@@ -1682,7 +1682,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
     public Builder<K, V> weigher(EntryWeigher<? super K, ? super V> weigher) {
       this.weigher = (weigher == Weighers.entrySingleton())
           ? Weighers.<K, V>entrySingleton()
-          : new BoundedEntryWeigher<K, V>(weigher);
+          : new BoundedEntryWeigher<>(weigher);
       return this;
     }
 
@@ -1694,7 +1694,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
      */
     public ConcurrentLinkedHashMap<K, V> build() {
       checkState(capacity >= 0);
-      return new ConcurrentLinkedHashMap<K, V>(this);
+      return new ConcurrentLinkedHashMap<>(this);
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/Weighers.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/Weighers.java b/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/Weighers.java
index 6fd9b25..25b0599 100644
--- a/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/Weighers.java
+++ b/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/Weighers.java
@@ -48,7 +48,7 @@ public final class Weighers {
       final Weigher<? super V> weigher) {
     return (weigher == singleton())
         ? Weighers.<K, V>entrySingleton()
-        : new EntryWeigherView<K, V>(weigher);
+        : new EntryWeigherView<>(weigher);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java b/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
index 9b3981a..37a6ca7 100644
--- a/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
+++ b/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
@@ -297,7 +297,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
         if ("html".equals(formatProp)) {
             try {
                 PrintStream out = new PrintStream(new FileOutputStream(sourceUnit.getName() + ".html"));
-                List<VisitorAdapter> v = new ArrayList<VisitorAdapter>();
+                List<VisitorAdapter> v = new ArrayList<>();
                 v.add(new NodeAsHTMLPrinter(out, tokenNames));
                 v.add(new SourcePrinter(out, tokenNames));
                 Visitor visitors = new CompositeVisitor(v);
@@ -393,7 +393,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     //-------------------------------------------------------------------------
 
     protected void packageDef(AST packageDef) {
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
         AST node = packageDef.getFirstChild();
         if (isType(ANNOTATIONS, node)) {
             processAnnotations(annotations, node);
@@ -411,7 +411,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
             output.putNodeMetaData(ImportNode.class, ImportNode.class);
 
             boolean isStatic = importNode.getType() == STATIC_IMPORT;
-            List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+            List<AnnotationNode> annotations = new ArrayList<>();
 
             AST node = importNode.getFirstChild();
             if (isType(ANNOTATIONS, node)) {
@@ -490,7 +490,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected void annotationDef(AST classDef) {
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
         AST node = classDef.getFirstChild();
         int modifiers = Opcodes.ACC_PUBLIC;
         if (isType(MODIFIERS, node)) {
@@ -539,7 +539,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected void innerInterfaceDef(AST classDef) {
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
         AST node = classDef.getFirstChild();
         int modifiers = Opcodes.ACC_PUBLIC;
         if (isType(MODIFIERS, node)) {
@@ -626,7 +626,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected void innerClassDef(AST classDef) {
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
 
         if (isType(TRAIT_DEF, classDef)) {
             annotations.add(new AnnotationNode(ClassHelper.make("groovy.transform.Trait")));
@@ -750,7 +750,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
 
     protected void enumDef(AST enumNode) {
         assertNodeType(ENUM_DEF, enumNode);
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
 
         AST node = enumNode.getFirstChild();
         int modifiers = Opcodes.ACC_PUBLIC;
@@ -784,7 +784,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     protected void enumConstantDef(AST node) {
         enumConstantBeingDef = true;
         assertNodeType(ENUM_CONSTANT_DEF, node);
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
         AST element = node.getFirstChild();
         if (isType(ANNOTATIONS, element)) {
             processAnnotations(annotations, element);
@@ -861,7 +861,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
 
     protected void methodDef(AST methodDef) {
         MethodNode oldNode = methodNode;
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
         AST node = methodDef.getFirstChild();
 
         GenericsType[] generics = null;
@@ -911,7 +911,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
 
             if (isType(LITERAL_throws, node)) {
                 AST throwsNode = node.getFirstChild();
-                List<ClassNode> exceptionList = new ArrayList<ClassNode>();
+                List<ClassNode> exceptionList = new ArrayList<>();
                 throwsList(throwsNode, exceptionList);
                 exceptions = exceptionList.toArray(exceptions);
                 node = node.getNextSibling();
@@ -973,7 +973,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected void constructorDef(AST constructorDef) {
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
         AST node = constructorDef.getFirstChild();
         int modifiers = Opcodes.ACC_PUBLIC;
         if (isType(MODIFIERS, node)) {
@@ -993,7 +993,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
         ClassNode[] exceptions = ClassNode.EMPTY_ARRAY;
         if (isType(LITERAL_throws, node)) {
             AST throwsNode = node.getFirstChild();
-            List<ClassNode> exceptionList = new ArrayList<ClassNode>();
+            List<ClassNode> exceptionList = new ArrayList<>();
             throwsList(throwsNode, exceptionList);
             exceptions = exceptionList.toArray(exceptions);
             node = node.getNextSibling();
@@ -1014,7 +1014,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected void fieldDef(AST fieldDef) {
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
         AST node = fieldDef.getFirstChild();
 
         int modifiers = 0;
@@ -1127,7 +1127,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected ClassNode[] interfaces(AST node) {
-        List<ClassNode> interfaceList = new ArrayList<ClassNode>();
+        List<ClassNode> interfaceList = new ArrayList<>();
         for (AST implementNode = node.getFirstChild(); implementNode != null; implementNode = implementNode.getNextSibling()) {
             interfaceList.add(makeTypeWithArguments(implementNode));
         }
@@ -1147,7 +1147,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
             if (isType(IMPLICIT_PARAMETERS, parametersNode)) return Parameter.EMPTY_ARRAY;
             return null;
         } else {
-            List<Parameter> parameters = new ArrayList<Parameter>();
+            List<Parameter> parameters = new ArrayList<>();
             AST firstParameterNode = null;
             do {
                 firstParam = (firstParameterNode == null);
@@ -1175,7 +1175,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected Parameter parameter(AST paramNode) {
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
         boolean variableParameterDef = isType(VARIABLE_PARAMETER_DEF, paramNode);
         AST node = paramNode.getFirstChild();
 
@@ -1489,7 +1489,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
                 AST node = variableNode.getFirstChild();
                 // skip the final modifier if it's present
                 if (isType(MODIFIERS, node)) {
-                    int modifiersMask = modifiers(node, new ArrayList<AnnotationNode>(), 0);
+                    int modifiersMask = modifiers(node, new ArrayList<>(), 0);
                     // only final modifier allowed
                     if ((modifiersMask & ~Opcodes.ACC_FINAL) != 0) {
                         throw new ASTRuntimeException(node, "Only the 'final' modifier is allowed in front of the for loop variable.");
@@ -1555,7 +1555,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     protected Expression declarationExpression(AST variableDef) {
         AST node = variableDef.getFirstChild();
         ClassNode type = null;
-        List<AnnotationNode> annotations = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> annotations = new ArrayList<>();
         int modifiers = 0;
         if (isType(MODIFIERS, node)) {
             // force check of modifier conflicts
@@ -1661,7 +1661,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected Statement caseStatements(AST node, List cases) {
-        List<Expression> expressions = new LinkedList<Expression>();
+        List<Expression> expressions = new LinkedList<>();
         Statement statement = EmptyStatement.INSTANCE;
         Statement defaultStatement = EmptyStatement.INSTANCE;
         AST nextSibling = node;
@@ -1722,7 +1722,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
         AST node = tryNode.getNextSibling();
 
         // let's do the catch nodes
-        List<CatchStatement> catches = new ArrayList<CatchStatement>();
+        List<CatchStatement> catches = new ArrayList<>();
         for (; isType(LITERAL_catch, node); node = node.getNextSibling()) {
             final List<CatchStatement> catchStatements = catchStatement(node);
             catches.addAll(catchStatements);
@@ -1747,7 +1747,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
 
     protected List<CatchStatement> catchStatement(AST catchNode) {
         AST node = catchNode.getFirstChild();
-        List<CatchStatement> catches = new LinkedList<CatchStatement>();
+        List<CatchStatement> catches = new LinkedList<>();
         Statement code = statement(node.getNextSibling());
         if (MULTICATCH == node.getType()) {
             AST variableNode = node.getNextSibling();
@@ -2153,7 +2153,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     private ClosureListExpression closureListExpression(AST node) {
         isClosureListExpressionAllowedHere(node);
         AST exprNode = node.getFirstChild();
-        List<Expression> list = new LinkedList<Expression>();
+        List<Expression> list = new LinkedList<>();
         while (exprNode != null) {
             if (isType(EXPR, exprNode)) {
                 Expression expr = expression(exprNode);
@@ -2271,7 +2271,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
 */
 
     protected Expression listExpression(AST listNode) {
-        List<Expression> expressions = new ArrayList<Expression>();
+        List<Expression> expressions = new ArrayList<>();
         AST elist = listNode.getFirstChild();
         assertNodeType(ELIST, elist);
 
@@ -2695,7 +2695,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected Expression enumArguments(AST elist) {
-        List<Expression> expressionList = new ArrayList<Expression>();
+        List<Expression> expressionList = new ArrayList<>();
         for (AST node = elist; node != null; node = node.getNextSibling()) {
             Expression expression = expression(node);
             expressionList.add(expression);
@@ -2723,7 +2723,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
                 // let's remove any non-MapEntryExpression instances
                 // such as if the last expression is a ClosureExpression
                 // so let's wrap the named method calls in a Map expression
-                List<Expression> argumentList = new ArrayList<Expression>();
+                List<Expression> argumentList = new ArrayList<>();
                 for (Object next : expressionList) {
                     Expression expression = (Expression) next;
                     if (!(expression instanceof MapEntryExpression)) {
@@ -2755,7 +2755,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     private static void checkDuplicateNamedParams(AST elist, List expressionList) {
         if (expressionList.isEmpty()) return;
 
-        Set<String> namedArgumentNames = new HashSet<String>();
+        Set<String> namedArgumentNames = new HashSet<>();
         for (Object expression : expressionList) {
             MapEntryExpression meExp = (MapEntryExpression) expression;
             if (meExp.getKeyExpression() instanceof ConstantExpression) {
@@ -2786,7 +2786,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
     }
 
     protected Expression expressionList(AST node) {
-        List<Expression> expressionList = new ArrayList<Expression>();
+        List<Expression> expressionList = new ArrayList<>();
         for (AST child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
             expressionList.add(expression(child));
         }
@@ -3028,7 +3028,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
 
     private List<GenericsType> getTypeArgumentsList(AST node) {
         assertNodeType(TYPE_ARGUMENTS, node);
-        List<GenericsType> typeArgumentList = new LinkedList<GenericsType>();
+        List<GenericsType> typeArgumentList = new LinkedList<>();
         AST typeArgument = node.getFirstChild();
 
         while (typeArgument != null) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/antlr/GroovySourceAST.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/antlr/GroovySourceAST.java b/src/main/java/org/codehaus/groovy/antlr/GroovySourceAST.java
index 1f0d8b5..ce14c09 100644
--- a/src/main/java/org/codehaus/groovy/antlr/GroovySourceAST.java
+++ b/src/main/java/org/codehaus/groovy/antlr/GroovySourceAST.java
@@ -162,7 +162,7 @@ public class GroovySourceAST extends CommonAST implements Comparable, SourceInfo
     }
 
     public List<GroovySourceAST> childrenOfType(int type) {
-        List<GroovySourceAST> result = new ArrayList<GroovySourceAST>();
+        List<GroovySourceAST> result = new ArrayList<>();
         AST child = this.getFirstChild();
         while (child != null) {
             if (child.getType() == type) { result.add((GroovySourceAST) child); }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/antlr/SourceBuffer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/antlr/SourceBuffer.java b/src/main/java/org/codehaus/groovy/antlr/SourceBuffer.java
index 558370f..4f7e49a 100644
--- a/src/main/java/org/codehaus/groovy/antlr/SourceBuffer.java
+++ b/src/main/java/org/codehaus/groovy/antlr/SourceBuffer.java
@@ -32,7 +32,7 @@ public class SourceBuffer {
     private StringBuilder current;
 
     public SourceBuffer() {
-        lines = new ArrayList<StringBuilder>();
+        lines = new ArrayList<>();
         //lines.add(new StringBuilder()); // dummy row for position [0] in the List
 
         current = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/antlr/treewalker/SourceCodeTraversal.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/antlr/treewalker/SourceCodeTraversal.java b/src/main/java/org/codehaus/groovy/antlr/treewalker/SourceCodeTraversal.java
index ce2a236..6d4cfe0 100644
--- a/src/main/java/org/codehaus/groovy/antlr/treewalker/SourceCodeTraversal.java
+++ b/src/main/java/org/codehaus/groovy/antlr/treewalker/SourceCodeTraversal.java
@@ -48,7 +48,7 @@ public class SourceCodeTraversal extends TraversalHelper {
         super.setUp(t);
         
         // gather and sort all unvisited AST nodes
-        unvisitedNodes = new ArrayList<GroovySourceAST>();
+        unvisitedNodes = new ArrayList<>();
         traverse(t);
         Collections.sort(unvisitedNodes);
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/antlr/treewalker/TraversalHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/antlr/treewalker/TraversalHelper.java b/src/main/java/org/codehaus/groovy/antlr/treewalker/TraversalHelper.java
index dcae1a8..380fc95 100644
--- a/src/main/java/org/codehaus/groovy/antlr/treewalker/TraversalHelper.java
+++ b/src/main/java/org/codehaus/groovy/antlr/treewalker/TraversalHelper.java
@@ -36,7 +36,7 @@ public abstract class TraversalHelper implements AntlrASTProcessor {
     private final Visitor v;
 
     public TraversalHelper(Visitor visitor) {
-        this.unvisitedNodes = new ArrayList<GroovySourceAST>();
+        this.unvisitedNodes = new ArrayList<>();
         this.v = visitor;
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/AnnotatedNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/AnnotatedNode.java b/src/main/java/org/codehaus/groovy/ast/AnnotatedNode.java
index 0992455..75fc2ba 100644
--- a/src/main/java/org/codehaus/groovy/ast/AnnotatedNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/AnnotatedNode.java
@@ -44,7 +44,7 @@ public class AnnotatedNode extends ASTNode implements GroovydocHolder<AnnotatedN
     }
 
     public List<AnnotationNode> getAnnotations(ClassNode type) {
-        List<AnnotationNode> ret = new ArrayList<AnnotationNode>(annotations.size());
+        List<AnnotationNode> ret = new ArrayList<>(annotations.size());
         for (AnnotationNode node: annotations) {
             if (type.equals(node.getClassNode())) ret.add(node);
         }
@@ -58,7 +58,7 @@ public class AnnotatedNode extends ASTNode implements GroovydocHolder<AnnotatedN
 
     private void checkInit() {
         if (annotations == Collections.EMPTY_LIST)
-            annotations = new ArrayList<AnnotationNode>(3);
+            annotations = new ArrayList<>(3);
     }
 
     public void addAnnotations(List<AnnotationNode> annotations) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/AnnotationNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/AnnotationNode.java b/src/main/java/org/codehaus/groovy/ast/AnnotationNode.java
index c493299..1bd588f 100644
--- a/src/main/java/org/codehaus/groovy/ast/AnnotationNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/AnnotationNode.java
@@ -72,7 +72,7 @@ public class AnnotationNode extends ASTNode {
 
     private void assertMembers() {
         if (members == null) {
-             members = new LinkedHashMap<String, Expression>();
+             members = new LinkedHashMap<>();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
index 2e034fb..86c442a 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
@@ -141,7 +141,7 @@ public class ClassHelper {
         ClassNode classNode;
         if (classNodeSoftReference == null || (classNode = classNodeSoftReference.get()) == null) {
             classNode = new ClassNode(c);
-            ClassHelperCache.classCache.put(c, new SoftReference<ClassNode>(classNode));
+            ClassHelperCache.classCache.put(c, new SoftReference<>(classNode));
 
             VMPluginFactory.getPlugin().setAdditionalClassInformation(classNode);
         }
@@ -372,7 +372,7 @@ public class ClassHelper {
     }
 
     static class ClassHelperCache {
-        static ManagedConcurrentMap<Class, SoftReference<ClassNode>> classCache = new ManagedConcurrentMap<Class, SoftReference<ClassNode>>(ReferenceBundle.getWeakBundle());
+        static ManagedConcurrentMap<Class, SoftReference<ClassNode>> classCache = new ManagedConcurrentMap<>(ReferenceBundle.getWeakBundle());
     }
 
     public static boolean isSAMType(ClassNode type) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/ClassNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassNode.java b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
index 64d5cff..17e1e07 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
@@ -119,12 +119,12 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
 
         public void put(Object key, MethodNode value) {
             if (map == null) {
-                 map = new LinkedHashMap<Object, List<MethodNode>>();
+                 map = new LinkedHashMap<>();
             }
             if (map.containsKey(key)) {
                 get(key).add(value);
             } else {
-                List<MethodNode> list = new ArrayList<MethodNode>(2);
+                List<MethodNode> list = new ArrayList<>(2);
                 list.add(value);
                 map.put(key, list);
             }
@@ -365,7 +365,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
         if (redirect!=null) return redirect().getFields();
         lazyClassInit();
         if (fields == null)
-            fields = new LinkedList<FieldNode> ();
+            fields = new LinkedList<>();
         return fields;
     }
 
@@ -412,7 +412,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
      * ClassNode or null if there are no such methods
      */
     public List<MethodNode> getAbstractMethods() {
-        List<MethodNode> result = new ArrayList<MethodNode>(3);
+        List<MethodNode> result = new ArrayList<>(3);
         for (MethodNode method : getDeclaredMethodsMap().values()) {
             if (method.isAbstract()) {
                 result.add(method);
@@ -428,11 +428,11 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
     }
 
     public List<MethodNode> getAllDeclaredMethods() {
-        return new ArrayList<MethodNode>(getDeclaredMethodsMap().values());
+        return new ArrayList<>(getDeclaredMethodsMap().values());
     }
 
     public Set<ClassNode> getAllInterfaces () {
-        Set<ClassNode> res = new LinkedHashSet<ClassNode>();
+        Set<ClassNode> res = new LinkedHashSet<>();
         getAllInterfaces(res);
         return res;
     }
@@ -482,7 +482,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
     public List<PropertyNode> getProperties() {
         final ClassNode r = redirect();
         if (r.properties == null)
-            r.properties = new ArrayList<PropertyNode> ();
+            r.properties = new ArrayList<>();
         return r.properties;
     }
 
@@ -490,7 +490,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
         if (redirect != null) return redirect().getDeclaredConstructors();
         lazyClassInit();
         if (constructors == null)
-            constructors = new ArrayList<ConstructorNode> ();
+            constructors = new ArrayList<>();
         return constructors;
     }
 
@@ -562,7 +562,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
         addField(field);
         final ClassNode r = redirect();
         if (r.properties == null)
-            r.properties = new ArrayList<PropertyNode> ();
+            r.properties = new ArrayList<>();
         r.properties.add(node);
     }
 
@@ -607,7 +607,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
         node.setDeclaringClass(this);
         final ClassNode r = redirect();
         if (r.constructors == null)
-            r.constructors = new ArrayList<ConstructorNode> ();
+            r.constructors = new ArrayList<>();
         r.constructors.add(node);
     }
 
@@ -621,7 +621,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
         node.setDeclaringClass(this);
         ClassNode base = redirect();
         if (base.methodsList.isEmpty()) {
-            base.methodsList = new ArrayList<MethodNode>();
+            base.methodsList = new ArrayList<>();
         }
         base.methodsList.add(node);
         base.methods.put(node.getName(), node);
@@ -819,7 +819,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
 
     public List<Statement> getObjectInitializerStatements() {
         if (objectInitializers == null)
-            objectInitializers = new LinkedList<Statement> ();
+            objectInitializers = new LinkedList<>();
         return objectInitializers;
     }
 
@@ -912,7 +912,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
      * @see #getDeclaredMethods(String)
      */
     public List<MethodNode> getMethods(String name) {
-        List<MethodNode> answer = new ArrayList<MethodNode>();
+        List<MethodNode> answer = new ArrayList<>();
         ClassNode node = this;
         while (node != null) {
             answer.addAll(node.getDeclaredMethods(name));
@@ -1478,7 +1478,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
 
         Set<ASTNode> nodes = getTransformInstances().get(annotation.phase()).get(transform);
         if (nodes == null) {
-            nodes = new LinkedHashSet<ASTNode>();
+            nodes = new LinkedHashSet<>();
             getTransformInstances().get(annotation.phase()).put(transform, nodes);
         }
         nodes.add(node);
@@ -1491,7 +1491,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
     public void renameField(String oldName, String newName) {
         ClassNode r = redirect ();
         if (r.fieldIndex == null)
-            r.fieldIndex = new LinkedHashMap<String,FieldNode> ();
+            r.fieldIndex = new LinkedHashMap<>();
         final Map<String,FieldNode> index = r.fieldIndex;
         index.put(newName, index.remove(oldName));
     }
@@ -1499,7 +1499,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
     public void removeField(String oldName) {
         ClassNode r = redirect ();
         if (r.fieldIndex == null)
-            r.fieldIndex = new LinkedHashMap<String,FieldNode> ();
+            r.fieldIndex = new LinkedHashMap<>();
         final Map<String,FieldNode> index = r.fieldIndex;
         r.fields.remove(index.get(oldName));
         index.remove(oldName);
@@ -1518,9 +1518,9 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
 
     private Map<CompilePhase, Map<Class<? extends ASTTransformation>, Set<ASTNode>>> getTransformInstances() {
         if(transformInstances == null){
-            transformInstances = new EnumMap<CompilePhase, Map<Class <? extends ASTTransformation>, Set<ASTNode>>>(CompilePhase.class);
+            transformInstances = new EnumMap<>(CompilePhase.class);
             for (CompilePhase phase : CompilePhase.values()) {
-                transformInstances.put(phase, new LinkedHashMap<Class <? extends ASTTransformation>, Set<ASTNode>>());
+                transformInstances.put(phase, new LinkedHashMap<>());
             }
         }
         return transformInstances;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/CompileUnit.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/CompileUnit.java b/src/main/java/org/codehaus/groovy/ast/CompileUnit.java
index a453bb1..a633168 100644
--- a/src/main/java/org/codehaus/groovy/ast/CompileUnit.java
+++ b/src/main/java/org/codehaus/groovy/ast/CompileUnit.java
@@ -43,13 +43,13 @@ import java.util.Map;
  */
 public class CompileUnit implements NodeMetaDataHandler {
 
-    private final List<ModuleNode> modules = new ArrayList<ModuleNode>();
-    private final Map<String, ClassNode> classes = new HashMap<String, ClassNode>();
+    private final List<ModuleNode> modules = new ArrayList<>();
+    private final Map<String, ClassNode> classes = new HashMap<>();
     private final CompilerConfiguration config;
     private final GroovyClassLoader classLoader;
     private final CodeSource codeSource;
-    private final Map<String, ClassNode> classesToCompile = new HashMap<String, ClassNode>();
-    private final Map<String, SourceUnit> classNameToSource = new HashMap<String, SourceUnit>();
+    private final Map<String, ClassNode> classesToCompile = new HashMap<>();
+    private final Map<String, SourceUnit> classNameToSource = new HashMap<>();
     private final Map<String, InnerClassNode> generatedInnerClasses = new HashMap();
     private Map metaDataMap = null;
 
@@ -91,7 +91,7 @@ public class CompileUnit implements NodeMetaDataHandler {
      * @return a list of all the classes in each module in the compilation unit
      */
     public List getClasses() {
-        List<ClassNode> answer = new ArrayList<ClassNode>();
+        List<ClassNode> answer = new ArrayList<>();
         for (ModuleNode module : modules) {
             answer.addAll(module.getClasses());
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/GenericsType.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/GenericsType.java b/src/main/java/org/codehaus/groovy/ast/GenericsType.java
index 28216e1..75b9ba4 100644
--- a/src/main/java/org/codehaus/groovy/ast/GenericsType.java
+++ b/src/main/java/org/codehaus/groovy/ast/GenericsType.java
@@ -68,7 +68,7 @@ public class GenericsType extends ASTNode {
     }
 
     public String toString() {
-        Set<String> visited = new HashSet<String>();
+        Set<String> visited = new HashSet<>();
         return toString(visited);
     }
 
@@ -114,7 +114,7 @@ public class GenericsType extends ASTNode {
             if (Modifier.isStatic(innerClassNode.getModifiers()) || innerClassNode.isInterface()) {
                 ret.append(innerClassNode.getOuterClass().getName());
             } else {
-                ret.append(genericsBounds(innerClassNode.getOuterClass(), new HashSet<String>()));
+                ret.append(genericsBounds(innerClassNode.getOuterClass(), new HashSet<>()));
             }
             ret.append(".");
             String typeName = theType.getName();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/InnerClassNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/InnerClassNode.java b/src/main/java/org/codehaus/groovy/ast/InnerClassNode.java
index f20c457..71cfce7 100644
--- a/src/main/java/org/codehaus/groovy/ast/InnerClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/InnerClassNode.java
@@ -52,7 +52,7 @@ public class InnerClassNode extends ClassNode {
         this.outerClass = outerClass;
 
         if (outerClass.innerClasses == null)
-            outerClass.innerClasses = new LinkedList<InnerClassNode> ();
+            outerClass.innerClasses = new LinkedList<>();
         outerClass.innerClasses.add(this);
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/ModuleNode.java b/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
index a0f4b52..2049a55 100644
--- a/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
@@ -56,12 +56,12 @@ import java.util.Map;
 public class ModuleNode extends ASTNode implements Opcodes {
 
     private final BlockStatement statementBlock = new BlockStatement();
-    List<ClassNode> classes = new LinkedList<ClassNode>();
-    private final List<MethodNode> methods = new ArrayList<MethodNode>();
-    private final Map<String, ImportNode> imports = new HashMap<String, ImportNode>();
-    private final List<ImportNode> starImports = new ArrayList<ImportNode>();
-    private final Map<String, ImportNode> staticImports = new LinkedHashMap<String, ImportNode>();
-    private final Map<String, ImportNode> staticStarImports = new LinkedHashMap<String, ImportNode>();
+    List<ClassNode> classes = new LinkedList<>();
+    private final List<MethodNode> methods = new ArrayList<>();
+    private final Map<String, ImportNode> imports = new HashMap<>();
+    private final List<ImportNode> starImports = new ArrayList<>();
+    private final Map<String, ImportNode> staticImports = new LinkedHashMap<>();
+    private final Map<String, ImportNode> staticStarImports = new LinkedHashMap<>();
     private CompileUnit unit;
     private PackageNode packageNode;
     private String description;
@@ -105,7 +105,7 @@ public class ModuleNode extends ASTNode implements Opcodes {
     }
 
     public List<ImportNode> getImports() {
-        return new ArrayList<ImportNode>(imports.values());
+        return new ArrayList<>(imports.values());
     }
 
     public List<ImportNode> getStarImports() {
@@ -130,7 +130,7 @@ public class ModuleNode extends ASTNode implements Opcodes {
     }
 
     public void addImport(String alias, ClassNode type) {
-        addImport(alias, type, new ArrayList<AnnotationNode>());
+        addImport(alias, type, new ArrayList<>());
     }
 
     public void addImport(String alias, ClassNode type, List<AnnotationNode> annotations) {
@@ -141,7 +141,7 @@ public class ModuleNode extends ASTNode implements Opcodes {
     }
 
     public void addStarImport(String packageName) {
-        addStarImport(packageName, new ArrayList<AnnotationNode>());
+        addStarImport(packageName, new ArrayList<>());
     }
 
     public void addStarImport(String packageName, List<AnnotationNode> annotations) {
@@ -420,7 +420,7 @@ public class ModuleNode extends ASTNode implements Opcodes {
     public void sortClasses(){
         if (isEmpty()) return;
         List<ClassNode> classes = getClasses();
-        LinkedList<ClassNode> sorted = new LinkedList<ClassNode>();
+        LinkedList<ClassNode> sorted = new LinkedList<>();
         int level=1;
         while (!classes.isEmpty()) {
             for (Iterator<ClassNode> cni = classes.iterator(); cni.hasNext();) {
@@ -453,7 +453,7 @@ public class ModuleNode extends ASTNode implements Opcodes {
     }
 
     public void addStaticImport(ClassNode type, String fieldName, String alias) {
-        addStaticImport(type, fieldName, alias, new ArrayList<AnnotationNode>());
+        addStaticImport(type, fieldName, alias, new ArrayList<>());
     }
 
     public void addStaticImport(ClassNode type, String fieldName, String alias, List<AnnotationNode> annotations) {
@@ -464,7 +464,7 @@ public class ModuleNode extends ASTNode implements Opcodes {
     }
 
     public void addStaticStarImport(String name, ClassNode type) {
-        addStaticStarImport(name, type, new ArrayList<AnnotationNode>());
+        addStaticStarImport(name, type, new ArrayList<>());
     }
 
     public void addStaticStarImport(String name, ClassNode type, List<AnnotationNode> annotations) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/VariableScope.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/VariableScope.java b/src/main/java/org/codehaus/groovy/ast/VariableScope.java
index 521b301..9381c64 100644
--- a/src/main/java/org/codehaus/groovy/ast/VariableScope.java
+++ b/src/main/java/org/codehaus/groovy/ast/VariableScope.java
@@ -99,15 +99,15 @@ public class VariableScope  {
         VariableScope copy = new VariableScope();
         copy.clazzScope = clazzScope;
         if (!declaredVariables.isEmpty()) {
-          copy.declaredVariables = new LinkedHashMap<String, Variable>(declaredVariables);
+          copy.declaredVariables = new LinkedHashMap<>(declaredVariables);
         }
         copy.inStaticContext = inStaticContext;
         copy.parent = parent;
         if (!referencedClassVariables.isEmpty()) {
-            copy.referencedClassVariables = new LinkedHashMap<String, Variable>(referencedClassVariables);
+            copy.referencedClassVariables = new LinkedHashMap<>(referencedClassVariables);
         }
         if (!referencedLocalVariables.isEmpty()) {
-            copy.referencedLocalVariables = new LinkedHashMap<String, Variable>(referencedLocalVariables);
+            copy.referencedLocalVariables = new LinkedHashMap<>(referencedLocalVariables);
         }
         copy.resolvesDynamic = resolvesDynamic;
         return copy;
@@ -115,7 +115,7 @@ public class VariableScope  {
 
     public void putDeclaredVariable(Variable var) {
         if (declaredVariables == Collections.EMPTY_MAP)
-          declaredVariables = new LinkedHashMap<String, Variable>();
+          declaredVariables = new LinkedHashMap<>();
         declaredVariables.put(var.getName(), var);
     }
 
@@ -133,13 +133,13 @@ public class VariableScope  {
 
     public void putReferencedLocalVariable(Variable var) {
         if (referencedLocalVariables == Collections.EMPTY_MAP)
-          referencedLocalVariables = new LinkedHashMap<String, Variable>();
+          referencedLocalVariables = new LinkedHashMap<>();
         referencedLocalVariables.put(var.getName(), var);
     }
 
     public void putReferencedClassVariable(Variable var) {
         if (referencedClassVariables == Collections.EMPTY_MAP)
-          referencedClassVariables = new LinkedHashMap<String, Variable>();
+          referencedClassVariables = new LinkedHashMap<>();
         referencedClassVariables.put(var.getName(), var);
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/builder/AstBuilderTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/builder/AstBuilderTransformation.java b/src/main/java/org/codehaus/groovy/ast/builder/AstBuilderTransformation.java
index 6882498..2773edb 100644
--- a/src/main/java/org/codehaus/groovy/ast/builder/AstBuilderTransformation.java
+++ b/src/main/java/org/codehaus/groovy/ast/builder/AstBuilderTransformation.java
@@ -72,7 +72,7 @@ public class AstBuilderTransformation extends MethodCallTransformation {
      */
     private static class AstBuilderInvocationTrap extends MethodInvocationTrap {
 
-        private final List<String> factoryTargets = new ArrayList<String>();
+        private final List<String> factoryTargets = new ArrayList<>();
 
         /**
          * Creates the trap and captures all the ways in which a class may be referenced via imports.
@@ -124,7 +124,7 @@ public class AstBuilderTransformation extends MethodCallTransformation {
         }
 
         private static List<Expression> getNonClosureArguments(MethodCallExpression call) {
-            List<Expression> result = new ArrayList<Expression>();
+            List<Expression> result = new ArrayList<>();
             if (call.getArguments() instanceof TupleExpression) {
                 for (ASTNode node : ((TupleExpression) call.getArguments()).getExpressions()) {
                     if (!(node instanceof ClosureExpression)) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/decompiled/AsmDecompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/decompiled/AsmDecompiler.java b/src/main/java/org/codehaus/groovy/ast/decompiled/AsmDecompiler.java
index f0bf0bd..3793303 100644
--- a/src/main/java/org/codehaus/groovy/ast/decompiled/AsmDecompiler.java
+++ b/src/main/java/org/codehaus/groovy/ast/decompiled/AsmDecompiler.java
@@ -55,7 +55,7 @@ public abstract class AsmDecompiler {
          * It's synchronized "just in case". Occasional misses are expected if several threads attempt to load the same class,
          * but this shouldn't result in serious memory issues.
          */
-        static final Map<URI, SoftReference<ClassStub>> map = new ConcurrentHashMap<URI, SoftReference<ClassStub>>();         // According to http://michaelscharf.blogspot.jp/2006/11/javaneturlequals-and-hashcode-make.html, use java.net.URI instead.
+        static final Map<URI, SoftReference<ClassStub>> map = new ConcurrentHashMap<>();         // According to http://michaelscharf.blogspot.jp/2006/11/javaneturlequals-and-hashcode-make.html, use java.net.URI instead.
     }
 
     /**
@@ -83,7 +83,7 @@ public abstract class AsmDecompiler {
                 new ClassReader(stream).accept(visitor, ClassReader.SKIP_FRAMES);
             }
             stub = visitor.result;
-            StubCache.map.put(uri, new SoftReference<ClassStub>(stub));
+            StubCache.map.put(uri, new SoftReference<>(stub));
         }
         return stub;
     }
@@ -131,7 +131,7 @@ public abstract class AsmDecompiler {
         public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
             if (!"<clinit>".equals(name)) {
                 final MethodStub stub = new MethodStub(name, access, desc, signature, exceptions != null ? exceptions : EMPTY_STRING_ARRAY);
-                if (result.methods == null) result.methods = new ArrayList<MethodStub>(1);
+                if (result.methods == null) result.methods = new ArrayList<>(1);
                 result.methods.add(stub);
                 return new MethodVisitor(api) {
                     @Override
@@ -141,10 +141,10 @@ public abstract class AsmDecompiler {
 
                     @Override
                     public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible) {
-                        if (stub.parameterAnnotations == null) stub.parameterAnnotations = new HashMap<Integer, List<AnnotationStub>>(1);
+                        if (stub.parameterAnnotations == null) stub.parameterAnnotations = new HashMap<>(1);
                         List<AnnotationStub> list = stub.parameterAnnotations.get(parameter);
                         if (list == null) {
-                            stub.parameterAnnotations.put(parameter, list = new ArrayList<AnnotationStub>());
+                            stub.parameterAnnotations.put(parameter, list = new ArrayList<>());
                         }
                         AnnotationStub annotationStub = new AnnotationStub(desc);
                         list.add(annotationStub);
@@ -173,7 +173,7 @@ public abstract class AsmDecompiler {
         @Override
         public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) {
             final FieldStub stub = new FieldStub(name, access, desc, signature);
-            if (result.fields == null) result.fields = new ArrayList<FieldStub>(1);
+            if (result.fields == null) result.fields = new ArrayList<>(1);
             result.fields.add(stub);
             return new FieldVisitor(api) {
                 @Override
@@ -223,7 +223,7 @@ public abstract class AsmDecompiler {
 
         @Override
         public AnnotationVisitor visitArray(String name) {
-            final List<Object> list = new ArrayList<Object>();
+            final List<Object> list = new ArrayList<>();
             visitAttribute(name, list);
             return new AnnotationReader() {
                 @Override

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/decompiled/ClassSignatureParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/decompiled/ClassSignatureParser.java b/src/main/java/org/codehaus/groovy/ast/decompiled/ClassSignatureParser.java
index 2c0d28c..bfafcdc 100644
--- a/src/main/java/org/codehaus/groovy/ast/decompiled/ClassSignatureParser.java
+++ b/src/main/java/org/codehaus/groovy/ast/decompiled/ClassSignatureParser.java
@@ -48,7 +48,7 @@ class ClassSignatureParser {
     }
 
     private static void parseClassSignature(final ClassNode classNode, String signature, final AsmReferenceResolver resolver) {
-        final List<ClassNode> interfaces = new ArrayList<ClassNode>();
+        final List<ClassNode> interfaces = new ArrayList<>();
         FormalParameterParser v = new FormalParameterParser(resolver) {
 
             @Override

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/decompiled/ClassStub.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/decompiled/ClassStub.java b/src/main/java/org/codehaus/groovy/ast/decompiled/ClassStub.java
index 987753b..9d1986c 100644
--- a/src/main/java/org/codehaus/groovy/ast/decompiled/ClassStub.java
+++ b/src/main/java/org/codehaus/groovy/ast/decompiled/ClassStub.java
@@ -52,7 +52,7 @@ class MemberStub {
 
     AnnotationStub addAnnotation(String desc) {
         AnnotationStub stub = new AnnotationStub(desc);
-        if (annotations == null) annotations = new ArrayList<AnnotationStub>(1);
+        if (annotations == null) annotations = new ArrayList<>(1);
         annotations.add(stub);
         return stub;
     }
@@ -92,7 +92,7 @@ class FieldStub extends MemberStub {
 
 class AnnotationStub {
     final String className;
-    final Map<String, Object> members = new LinkedHashMap<String, Object>();
+    final Map<String, Object> members = new LinkedHashMap<>();
 
     public AnnotationStub(String className) {
         this.className = className;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/decompiled/FormalParameterParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/decompiled/FormalParameterParser.java b/src/main/java/org/codehaus/groovy/ast/decompiled/FormalParameterParser.java
index 0c0603a..ed2ca0e 100644
--- a/src/main/java/org/codehaus/groovy/ast/decompiled/FormalParameterParser.java
+++ b/src/main/java/org/codehaus/groovy/ast/decompiled/FormalParameterParser.java
@@ -33,8 +33,8 @@ import java.util.List;
 abstract class FormalParameterParser extends SignatureVisitor {
     private final AsmReferenceResolver resolver;
     private String currentTypeParameter;
-    private final List<ClassNode> parameterBounds = new ArrayList<ClassNode>();
-    private final List<GenericsType> typeParameters = new ArrayList<GenericsType>();
+    private final List<ClassNode> parameterBounds = new ArrayList<>();
+    private final List<GenericsType> typeParameters = new ArrayList<>();
 
     public FormalParameterParser(AsmReferenceResolver resolver) {
         super(CompilerConfiguration.ASM_API_VERSION);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/decompiled/TypeSignatureParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/decompiled/TypeSignatureParser.java b/src/main/java/org/codehaus/groovy/ast/decompiled/TypeSignatureParser.java
index 21a7e6c..e70686f 100644
--- a/src/main/java/org/codehaus/groovy/ast/decompiled/TypeSignatureParser.java
+++ b/src/main/java/org/codehaus/groovy/ast/decompiled/TypeSignatureParser.java
@@ -43,7 +43,7 @@ abstract class TypeSignatureParser extends SignatureVisitor {
     abstract void finished(ClassNode result);
 
     private String baseName;
-    private final List<GenericsType> arguments = new ArrayList<GenericsType>();
+    private final List<GenericsType> arguments = new ArrayList<>();
 
     @Override
     public void visitTypeVariable(String name) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/expr/ClosureListExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ClosureListExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ClosureListExpression.java
index ecbd333..20f05e8 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ClosureListExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ClosureListExpression.java
@@ -48,7 +48,7 @@ public class ClosureListExpression extends ListExpression {
     }
     
     public ClosureListExpression() {
-        this(new ArrayList<Expression>(3));
+        this(new ArrayList<>(3));
     }
     
     public void visit(GroovyCodeVisitor visitor) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/expr/Expression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/Expression.java b/src/main/java/org/codehaus/groovy/ast/expr/Expression.java
index f9991d2..fbcb9d6 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/Expression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/Expression.java
@@ -46,7 +46,7 @@ public abstract class Expression extends AnnotatedNode {
      * @return a new list of transformed expressions
      */
     protected List<Expression> transformExpressions(List<? extends Expression> expressions, ExpressionTransformer transformer) {
-        List<Expression> list = new ArrayList<Expression>(expressions.size());
+        List<Expression> list = new ArrayList<>(expressions.size());
         for (Expression expr : expressions ) {
             list.add(transformer.transform(expr));
         }
@@ -60,7 +60,7 @@ public abstract class Expression extends AnnotatedNode {
      */
     protected <T extends Expression> List<T> transformExpressions(List<? extends Expression> expressions,
             ExpressionTransformer transformer, Class<T> transformedType) {
-        List<T> list = new ArrayList<T>(expressions.size());
+        List<T> list = new ArrayList<>(expressions.size());
         for (Expression expr : expressions) {
             Expression transformed = transformer.transform(expr);
             if (!transformedType.isInstance(transformed))

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/expr/GStringExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/GStringExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/GStringExpression.java
index 7ccf355..531ef70 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/GStringExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/GStringExpression.java
@@ -39,8 +39,8 @@ public class GStringExpression extends Expression {
     public GStringExpression(String verbatimText) {
         this.verbatimText = verbatimText;
         super.setType(ClassHelper.GSTRING_TYPE);
-        this.strings = new ArrayList<ConstantExpression>();
-        this.values = new ArrayList<Expression>();
+        this.strings = new ArrayList<>();
+        this.values = new ArrayList<>();
     }
 
     public GStringExpression(String verbatimText, List<ConstantExpression> strings, List<Expression> values) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java
index 94ab0d2..737de2e 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java
@@ -34,7 +34,7 @@ public class ListExpression extends Expression {
     private boolean wrapped = false;
 
     public ListExpression() {
-        this(new ArrayList<Expression>());
+        this(new ArrayList<>());
     }
 
     public ListExpression(List<Expression> expressions) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java
index 0effc80..38c1764 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java
@@ -33,7 +33,7 @@ public class MapExpression extends Expression {
     private final List<MapEntryExpression> mapEntryExpressions;
 
     public MapExpression() {
-        this(new ArrayList<MapEntryExpression>());
+        this(new ArrayList<>());
     }
 
     public MapExpression(List<MapEntryExpression> mapEntryExpressions) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java
index 113706a..83512fc 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java
@@ -57,7 +57,7 @@ public class TupleExpression extends Expression implements Iterable<Expression>
     }
     
     public TupleExpression(int length) {
-        this.expressions = new ArrayList<Expression>(length);
+        this.expressions = new ArrayList<>(length);
     }
     
     public TupleExpression(List<Expression> expressions) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/stmt/BlockStatement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/BlockStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/BlockStatement.java
index 5013726..a024d58 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/BlockStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/BlockStatement.java
@@ -32,11 +32,11 @@ import java.util.List;
  */
 public class BlockStatement extends Statement {
 
-    private List<Statement> statements = new ArrayList<Statement>();
+    private List<Statement> statements = new ArrayList<>();
     private VariableScope scope;
     
     public BlockStatement() {
-        this(new ArrayList<Statement>(), new VariableScope());
+        this(new ArrayList<>(), new VariableScope());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/stmt/Statement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/Statement.java b/src/main/java/org/codehaus/groovy/ast/stmt/Statement.java
index 80dbc4d..6aa2e57 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/Statement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/Statement.java
@@ -48,12 +48,12 @@ public class Statement extends ASTNode {
 
     // TODO @Deprecated
     public void setStatementLabel(String label) {
-        if (statementLabels == null) statementLabels = new LinkedList<String>();
+        if (statementLabels == null) statementLabels = new LinkedList<>();
         statementLabels.add(label);
     }
 
     public void addStatementLabel(String label) {
-        if (statementLabels == null) statementLabels = new LinkedList<String>();
+        if (statementLabels == null) statementLabels = new LinkedList<>();
         statementLabels.add(label);
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/stmt/SwitchStatement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/SwitchStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/SwitchStatement.java
index bad0194..6988082 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/SwitchStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/SwitchStatement.java
@@ -32,7 +32,7 @@ import java.util.List;
 public class SwitchStatement extends Statement {
 
     private Expression expression;
-    private List<CaseStatement> caseStatements = new ArrayList<CaseStatement>();
+    private List<CaseStatement> caseStatements = new ArrayList<>();
     private Statement defaultStatement;
     
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/stmt/TryCatchStatement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/TryCatchStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/TryCatchStatement.java
index aee7176..345783a 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/TryCatchStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/TryCatchStatement.java
@@ -33,8 +33,8 @@ import java.util.List;
 public class TryCatchStatement extends Statement {
 
     private Statement tryStatement;
-    private List<ExpressionStatement> resourceStatements = new ArrayList<ExpressionStatement>();
-    private List<CatchStatement> catchStatements = new ArrayList<CatchStatement>();
+    private List<ExpressionStatement> resourceStatements = new ArrayList<>();
+    private List<CatchStatement> catchStatements = new ArrayList<>();
     private Statement finallyStatement;
     
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java
index 841e1a3..a2b3a9d 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java
@@ -63,15 +63,15 @@ public class BeanUtils {
      * @return the list of found property nodes
      */
     public static List<PropertyNode> getAllProperties(ClassNode type, boolean includeSuperProperties, boolean includeStatic, boolean includePseudoGetters, boolean includePseudoSetters, boolean superFirst) {
-        return getAllProperties(type, type, new HashSet<String>(), includeSuperProperties, includeStatic, includePseudoGetters, includePseudoSetters, superFirst);
+        return getAllProperties(type, type, new HashSet<>(), includeSuperProperties, includeStatic, includePseudoGetters, includePseudoSetters, superFirst);
     }
 
     private static List<PropertyNode> getAllProperties(ClassNode origType, ClassNode type, Set<String> names, boolean includeSuperProperties, boolean includeStatic, boolean includePseudoGetters, boolean includePseudoSetters, boolean superFirst) {
         // TODO add generics support so this can be used for @EAHC
         if (type == null) {
-            return new ArrayList<PropertyNode>();
+            return new ArrayList<>();
         }
-        List<PropertyNode> result = new ArrayList<PropertyNode>();
+        List<PropertyNode> result = new ArrayList<>();
         if (superFirst && includeSuperProperties) {
             result.addAll(getAllProperties(origType, type.getSuperClass(), names, includeSuperProperties, includeStatic, includePseudoGetters, includePseudoSetters, superFirst));
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
index d7a3f0c..375e910 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
@@ -96,7 +96,7 @@ public class GeneralUtils {
     }
 
     public static ArgumentListExpression args(Expression... expressions) {
-        List<Expression> args = new ArrayList<Expression>();
+        List<Expression> args = new ArrayList<>();
         Collections.addAll(args, expressions);
         return new ArgumentListExpression(args);
     }
@@ -110,7 +110,7 @@ public class GeneralUtils {
     }
 
     public static ArgumentListExpression args(String... names) {
-        List<Expression> vars = new ArrayList<Expression>();
+        List<Expression> vars = new ArrayList<>();
         for (String name : names) {
             vars.add(varX(name));
         }
@@ -357,7 +357,7 @@ public class GeneralUtils {
 
     public static List<MethodNode> getAllMethods(ClassNode type) {
         ClassNode node = type;
-        List<MethodNode> result = new ArrayList<MethodNode>();
+        List<MethodNode> result = new ArrayList<>();
         while (node != null) {
             result.addAll(node.getMethods());
             node = node.getSuperClass();
@@ -367,7 +367,7 @@ public class GeneralUtils {
 
     public static List<PropertyNode> getAllProperties(ClassNode type) {
         ClassNode node = type;
-        List<PropertyNode> result = new ArrayList<PropertyNode>();
+        List<PropertyNode> result = new ArrayList<>();
         while (node != null) {
             result.addAll(node.getProperties());
             node = node.getSuperClass();
@@ -380,7 +380,7 @@ public class GeneralUtils {
     }
 
     public static List<FieldNode> getInstanceNonPropertyFields(ClassNode cNode) {
-        final List<FieldNode> result = new ArrayList<FieldNode>();
+        final List<FieldNode> result = new ArrayList<>();
         for (FieldNode fNode : cNode.getFields()) {
             if (!fNode.isStatic() && cNode.getProperty(fNode.getName()) == null) {
                 result.add(fNode);
@@ -391,7 +391,7 @@ public class GeneralUtils {
 
     public static List<String> getInstanceNonPropertyFieldNames(ClassNode cNode) {
         List<FieldNode> fList = getInstanceNonPropertyFields(cNode);
-        List<String> result = new ArrayList<String>(fList.size());
+        List<String> result = new ArrayList<>(fList.size());
         for (FieldNode fNode : fList) {
             result.add(fNode.getName());
         }
@@ -399,7 +399,7 @@ public class GeneralUtils {
     }
 
     public static List<PropertyNode> getInstanceProperties(ClassNode cNode) {
-        final List<PropertyNode> result = new ArrayList<PropertyNode>();
+        final List<PropertyNode> result = new ArrayList<>();
         for (PropertyNode pNode : cNode.getProperties()) {
             if (!pNode.isStatic()) {
                 result.add(pNode);
@@ -410,7 +410,7 @@ public class GeneralUtils {
 
     public static List<String> getInstancePropertyNames(ClassNode cNode) {
         List<PropertyNode> pList = BeanUtils.getAllProperties(cNode, false, false, true);
-        List<String> result = new ArrayList<String>(pList.size());
+        List<String> result = new ArrayList<>(pList.size());
         for (PropertyNode pNode : pList) {
             result.add(pNode.getName());
         }
@@ -418,7 +418,7 @@ public class GeneralUtils {
     }
 
     public static List<FieldNode> getInstancePropertyFields(ClassNode cNode) {
-        final List<FieldNode> result = new ArrayList<FieldNode>();
+        final List<FieldNode> result = new ArrayList<>();
         for (PropertyNode pNode : cNode.getProperties()) {
             if (!pNode.isStatic()) {
                 result.add(pNode.getField());
@@ -428,7 +428,7 @@ public class GeneralUtils {
     }
 
     public static Set<ClassNode> getInterfacesAndSuperInterfaces(ClassNode type) {
-        Set<ClassNode> res = new LinkedHashSet<ClassNode>();
+        Set<ClassNode> res = new LinkedHashSet<>();
         if (type.isInterface()) {
             res.add(type);
             return res;
@@ -444,7 +444,7 @@ public class GeneralUtils {
     public static List<FieldNode> getSuperNonPropertyFields(ClassNode cNode) {
         final List<FieldNode> result;
         if (cNode == ClassHelper.OBJECT_TYPE) {
-            result = new ArrayList<FieldNode>();
+            result = new ArrayList<>();
         } else {
             result = getSuperNonPropertyFields(cNode.getSuperClass());
         }
@@ -459,7 +459,7 @@ public class GeneralUtils {
     public static List<FieldNode> getSuperPropertyFields(ClassNode cNode) {
         final List<FieldNode> result;
         if (cNode == ClassHelper.OBJECT_TYPE) {
-            result = new ArrayList<FieldNode>();
+            result = new ArrayList<>();
         } else {
             result = getSuperPropertyFields(cNode.getSuperClass());
         }
@@ -482,7 +482,7 @@ public class GeneralUtils {
     public static List<PropertyNode> getAllProperties(Set<String> names, ClassNode origType, ClassNode cNode, boolean includeProperties,
                                                       boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters,
                                                       boolean traverseSuperClasses, boolean skipReadonly, boolean reverse, boolean allNames, boolean includeStatic) {
-        final List<PropertyNode> result = new ArrayList<PropertyNode>();
+        final List<PropertyNode> result = new ArrayList<>();
         if (cNode != ClassHelper.OBJECT_TYPE && traverseSuperClasses && !reverse) {
             result.addAll(getAllProperties(names, origType, cNode.getSuperClass(), includeProperties, includeFields, includePseudoGetters, includePseudoSetters, true, skipReadonly));
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
index c7af72d..68c7175 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
@@ -142,7 +142,7 @@ public class GenericsUtils {
     }
 
     public static Map<GenericsTypeName, GenericsType> extractPlaceholders(ClassNode cn) {
-        Map<GenericsTypeName, GenericsType> ret = new HashMap<GenericsTypeName, GenericsType>();
+        Map<GenericsTypeName, GenericsType> ret = new HashMap<>();
         extractPlaceholders(cn, ret);
         return ret;
     }
@@ -332,7 +332,7 @@ public class GenericsUtils {
     }
 
     public static ClassNode correctToGenericsSpecRecurse(Map<String, ClassNode> genericsSpec, ClassNode type) {
-        return correctToGenericsSpecRecurse(genericsSpec, type, new ArrayList<String>());
+        return correctToGenericsSpecRecurse(genericsSpec, type, new ArrayList<>());
     }
 
     /**
@@ -343,7 +343,7 @@ public class GenericsUtils {
         ClassNode[] newTypes = new ClassNode[types.length];
         boolean modified = false;
         for (int i = 0; i < types.length; i++) {
-            newTypes[i] = correctToGenericsSpecRecurse(genericsSpec, types[i], new ArrayList<String>());
+            newTypes[i] = correctToGenericsSpecRecurse(genericsSpec, types[i], new ArrayList<>());
             modified = modified || (types[i] != newTypes[i]);
         }
         if (!modified) return types;
@@ -427,7 +427,7 @@ public class GenericsUtils {
     }
 
     public static Map<String, ClassNode> createGenericsSpec(ClassNode current, Map<String, ClassNode> oldSpec) {
-        Map<String, ClassNode> ret = new HashMap<String, ClassNode>(oldSpec);
+        Map<String, ClassNode> ret = new HashMap<>(oldSpec);
         // ret contains the type specs, what we now need is the type spec for the
         // current class. To get that we first apply the type parameters to the
         // current class and then use the type names of the current class to reset
@@ -455,7 +455,7 @@ public class GenericsUtils {
     }
 
     public static Map<String, ClassNode> addMethodGenerics(MethodNode current, Map<String, ClassNode> oldSpec) {
-        Map<String, ClassNode> ret = new HashMap<String, ClassNode>(oldSpec);
+        Map<String, ClassNode> ret = new HashMap<>(oldSpec);
         // ret starts with the original type specs, now add gts for the current method if any
         GenericsType[] sgts = current.getGenericsTypes();
         if (sgts != null) {
@@ -562,7 +562,7 @@ public class GenericsUtils {
         final GroovyRecognizer rn = GroovyRecognizer.make(lexer);
         try {
             rn.classOrInterfaceType(true);
-            final AtomicReference<ClassNode> ref = new AtomicReference<ClassNode>();
+            final AtomicReference<ClassNode> ref = new AtomicReference<>();
             AntlrParserPlugin plugin = new AntlrParserPlugin() {
                 @Override
                 public ModuleNode buildAST(final SourceUnit sourceUnit, final ClassLoader classLoader, final Reduction cst) throws ParserException {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/ast/tools/WideningCategories.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/WideningCategories.java b/src/main/java/org/codehaus/groovy/ast/tools/WideningCategories.java
index fb1cc72..357abb5 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/WideningCategories.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/WideningCategories.java
@@ -397,9 +397,9 @@ public class WideningCategories {
             // which are common
             ClassNode[] interfacesFromA = a.getInterfaces();
             ClassNode[] interfacesFromB = b.getInterfaces();
-            Set<ClassNode> common = new HashSet<ClassNode>();
+            Set<ClassNode> common = new HashSet<>();
             Collections.addAll(common, interfacesFromA);
-            Set<ClassNode> fromB = new HashSet<ClassNode>();
+            Set<ClassNode> fromB = new HashSet<>();
             Collections.addAll(fromB, interfacesFromB);
             common.retainAll(fromB);
 
@@ -423,7 +423,7 @@ public class WideningCategories {
             // for a ClassNode. Therefore, even if b doesn't implement
             // interface a, a could "implement" other interfaces that b
             // implements too, so we must create a list of matching interfaces
-            List<ClassNode> matchingInterfaces = new LinkedList<ClassNode>();
+            List<ClassNode> matchingInterfaces = new LinkedList<>();
             extractMostSpecificImplementedInterfaces(b, a, matchingInterfaces);
             if (matchingInterfaces.isEmpty()) {
                 // no interface in common
@@ -449,12 +449,12 @@ public class WideningCategories {
         ClassNode sb = b.getUnresolvedSuperClass();
 
         // extract implemented interfaces before "going up"
-        Set<ClassNode> ifa = new HashSet<ClassNode>();
+        Set<ClassNode> ifa = new HashSet<>();
         extractInterfaces(a, ifa);
-        Set<ClassNode> ifb = new HashSet<ClassNode>();
+        Set<ClassNode> ifb = new HashSet<>();
         extractInterfaces(b, ifb);
-        interfacesImplementedByA = interfacesImplementedByA==null?new LinkedList<ClassNode>(ifa):interfacesImplementedByA;
-        interfacesImplementedByB = interfacesImplementedByB==null?new LinkedList<ClassNode>(ifb):interfacesImplementedByB;
+        interfacesImplementedByA = interfacesImplementedByA==null? new LinkedList<>(ifa):interfacesImplementedByA;
+        interfacesImplementedByB = interfacesImplementedByB==null? new LinkedList<>(ifb):interfacesImplementedByB;
 
         // check if no superclass is defined
         // meaning that we reached the top of the object hierarchy
@@ -486,9 +486,9 @@ public class WideningCategories {
      */
     private static List<ClassNode> keepLowestCommonInterfaces(List<ClassNode> fromA, List<ClassNode> fromB) {
         if (fromA==null||fromB==null) return EMPTY_CLASSNODE_LIST;
-        Set<ClassNode> common = new HashSet<ClassNode>(fromA);
+        Set<ClassNode> common = new HashSet<>(fromA);
         common.retainAll(fromB);
-        List<ClassNode> result = new ArrayList<ClassNode>(common.size());
+        List<ClassNode> result = new ArrayList<>(common.size());
         for (ClassNode classNode : common) {
             addMostSpecificInterface(classNode, result);
         }
@@ -618,7 +618,7 @@ public class WideningCategories {
             compileTimeClassNode = upper.equals(OBJECT_TYPE) && interfaces.length>0?interfaces[0]:upper;
             this.name = name;
             usesGenerics = upper.isUsingGenerics();
-            List<GenericsType[]> genericsTypesList = new LinkedList<GenericsType[]>();
+            List<GenericsType[]> genericsTypesList = new LinkedList<>();
             genericsTypesList.add(upper.getGenericsTypes());
 			for (ClassNode anInterface : interfaces) {
                 usesGenerics |= anInterface.isUsingGenerics();
@@ -630,7 +630,7 @@ public class WideningCategories {
 			}
             setUsingGenerics(usesGenerics);
             if (usesGenerics) {
-                List<GenericsType> asArrayList = new ArrayList<GenericsType>();
+                List<GenericsType> asArrayList = new ArrayList<>();
                 for (GenericsType[] genericsTypes : genericsTypesList) {
                     if (genericsTypes!=null) {
                         Collections.addAll(asArrayList, genericsTypes);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 35a05fe..dbe3351 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -166,7 +166,7 @@ public class AsmClassGenerator extends ClassGenerator {
     static final MethodCaller createGroovyObjectWrapperMethod = MethodCaller.newStatic(ScriptBytecodeAdapter.class, "createGroovyObjectWrapper");
 
     // exception blocks list
-    private final Map<String,ClassNode> referencedClasses = new HashMap<String,ClassNode>();
+    private final Map<String,ClassNode> referencedClasses = new HashMap<>();
     private boolean passingParams;
 
     public static final boolean CREATE_DEBUG_INFO = true;
@@ -2083,10 +2083,10 @@ public class AsmClassGenerator extends ClassGenerator {
      * @param av the visitor to use
      */
     private void visitAnnotationAttributes(AnnotationNode an, AnnotationVisitor av) {
-        Map<String, Object> constantAttrs = new HashMap<String, Object>();
-        Map<String, PropertyExpression> enumAttrs = new HashMap<String, PropertyExpression>();
-        Map<String, Object> atAttrs = new HashMap<String, Object>();
-        Map<String, ListExpression> arrayAttrs = new HashMap<String, ListExpression>();
+        Map<String, Object> constantAttrs = new HashMap<>();
+        Map<String, PropertyExpression> enumAttrs = new HashMap<>();
+        Map<String, Object> atAttrs = new HashMap<>();
+        Map<String, ListExpression> arrayAttrs = new HashMap<>();
 
         for (String name : an.getMembers().keySet()) {
             Expression expr = an.getMember(name);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java b/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
index 7f2d933..9ce323e 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
@@ -131,7 +131,7 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         if (parent != null) {
             result = parent.getDeclaredMethodsMap();
         } else {
-            result = new HashMap<String, MethodNode>();
+            result = new HashMap<>();
         }
         // add in unimplemented abstract methods from the interfaces
         ClassNodeUtils.addDeclaredMethodsFromInterfaces(node, result);
@@ -224,7 +224,7 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         if (!isInterface(modifiers)) {
             for (ClassNode anInterface : GeneralUtils.getInterfacesAndSuperInterfaces(node)) {
                 if (Traits.isTrait(anInterface)) {
-                    LinkedHashSet<ClassNode> selfTypes = new LinkedHashSet<ClassNode>();
+                    LinkedHashSet<ClassNode> selfTypes = new LinkedHashSet<>();
                     for (ClassNode type : Traits.collectSelfTypes(anInterface, selfTypes, true, false)) {
                         if (type.isInterface() && !node.implementsInterface(type)) {
                             addError(getDescription(node)


[2/8] groovy git commit: Minor refactoring: Explicit type can be replaced with <>

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
index d421a47..6e99694 100644
--- a/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
@@ -97,7 +97,7 @@ public class TupleConstructorASTTransformation extends AbstractASTTransformation
     static {
         final ConstantExpression zero = constX(0);
         final ConstantExpression zeroDecimal = constX(.0);
-        primitivesInitialValues = new HashMap<Class<?>, Expression>();
+        primitivesInitialValues = new HashMap<>();
         primitivesInitialValues.put(int.class, zero);
         primitivesInitialValues.put(long.class, zero);
         primitivesInitialValues.put(short.class, zero);
@@ -171,12 +171,12 @@ public class TupleConstructorASTTransformation extends AbstractASTTransformation
         boolean callSuper = xform.memberHasValue(anno, "callSuper", true);
         boolean force = xform.memberHasValue(anno, "force", true);
         boolean defaults = !xform.memberHasValue(anno, "defaults", false);
-        Set<String> names = new HashSet<String>();
+        Set<String> names = new HashSet<>();
         List<PropertyNode> superList;
         if (includeSuperProperties || includeSuperFields) {
             superList = getAllProperties(names, cNode.getSuperClass(), includeSuperProperties, includeSuperFields, false, allProperties, true, true);
         } else {
-            superList = new ArrayList<PropertyNode>();
+            superList = new ArrayList<>();
         }
 
         List<PropertyNode> list = getAllProperties(names, cNode, includeProperties, includeFields, false, allProperties, false, true);
@@ -188,8 +188,8 @@ public class TupleConstructorASTTransformation extends AbstractASTTransformation
         // no processing if existing constructors found unless forced or ImmutableBase in play
         if (hasExplicitConstructor(null, cNode) && !force && !makeImmutable) return;
 
-        final List<Parameter> params = new ArrayList<Parameter>();
-        final List<Expression> superParams = new ArrayList<Expression>();
+        final List<Parameter> params = new ArrayList<>();
+        final List<Expression> superParams = new ArrayList<>();
         final BlockStatement preBody = new BlockStatement();
         boolean superInPre = false;
         if (pre != null) {
@@ -202,7 +202,7 @@ public class TupleConstructorASTTransformation extends AbstractASTTransformation
 
         final BlockStatement body = new BlockStatement();
 
-        List<PropertyNode> tempList = new ArrayList<PropertyNode>(list);
+        List<PropertyNode> tempList = new ArrayList<>(list);
         tempList.addAll(superList);
         if (!handler.validateProperties(xform, body, cNode, tempList)) {
             return;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/sc/ListOfExpressionsExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/ListOfExpressionsExpression.java b/src/main/java/org/codehaus/groovy/transform/sc/ListOfExpressionsExpression.java
index 0c4a56c..355ff66 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/ListOfExpressionsExpression.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/ListOfExpressionsExpression.java
@@ -36,7 +36,7 @@ public class ListOfExpressionsExpression extends Expression {
     private final List<Expression> expressions;
 
     public ListOfExpressionsExpression() {
-        expressions = new LinkedList<Expression>();
+        expressions = new LinkedList<>();
     }
 
     public ListOfExpressionsExpression(final List<Expression> expressions) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/sc/StaticCompilationVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/StaticCompilationVisitor.java b/src/main/java/org/codehaus/groovy/transform/sc/StaticCompilationVisitor.java
index f66b24a..39972d3 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/StaticCompilationVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/StaticCompilationVisitor.java
@@ -241,8 +241,8 @@ public class StaticCompilationVisitor extends StaticTypeCheckingVisitor {
             return;
         }
         int acc = -1;
-        privateFieldAccessors = accessedFields != null ? new HashMap<String, MethodNode>() : null;
-        privateFieldMutators = mutatedFields != null ? new HashMap<String, MethodNode>() : null;
+        privateFieldAccessors = accessedFields != null ? new HashMap<>() : null;
+        privateFieldMutators = mutatedFields != null ? new HashMap<>() : null;
         final int access = Opcodes.ACC_STATIC | Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC;
         for (FieldNode fieldNode : node.getFields()) {
             boolean generateAccessor = accessedFields != null && accessedFields.contains(fieldNode);
@@ -288,14 +288,14 @@ public class StaticCompilationVisitor extends StaticTypeCheckingVisitor {
     private static void addPrivateBridgeMethods(final ClassNode node) {
         Set<ASTNode> accessedMethods = (Set<ASTNode>) node.getNodeMetaData(StaticTypesMarker.PV_METHODS_ACCESS);
         if (accessedMethods==null) return;
-        List<MethodNode> methods = new ArrayList<MethodNode>(node.getAllDeclaredMethods());
+        List<MethodNode> methods = new ArrayList<>(node.getAllDeclaredMethods());
         methods.addAll(node.getDeclaredConstructors());
         Map<MethodNode, MethodNode> privateBridgeMethods = (Map<MethodNode, MethodNode>) node.getNodeMetaData(PRIVATE_BRIDGE_METHODS);
         if (privateBridgeMethods!=null) {
             // private bridge methods already added
             return;
         }
-        privateBridgeMethods = new HashMap<MethodNode, MethodNode>();
+        privateBridgeMethods = new HashMap<>();
         int i=-1;
         final int access = Opcodes.ACC_STATIC | Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC;
         for (MethodNode method : methods) {
@@ -319,7 +319,7 @@ public class StaticCompilationVisitor extends StaticTypeCheckingVisitor {
                 if (method.getParameters()==null || method.getParameters().length==0) {
                     arguments = ArgumentListExpression.EMPTY_ARGUMENTS;
                 } else {
-                    List<Expression> args = new LinkedList<Expression>();
+                    List<Expression> args = new LinkedList<>();
                     for (Parameter parameter : methodParameters) {
                         args.add(new VariableExpression(parameter));
                     }
@@ -369,7 +369,7 @@ public class StaticCompilationVisitor extends StaticTypeCheckingVisitor {
     }
 
     private static List<String> methodSpecificGenerics(final MethodNode method) {
-        List<String> genericTypeTokens = new ArrayList<String>();
+        List<String> genericTypeTokens = new ArrayList<>();
         GenericsType[] candidateGenericsTypes = method.getGenericsTypes();
         if (candidateGenericsTypes != null) {
             for (GenericsType gt : candidateGenericsTypes) {
@@ -459,7 +459,7 @@ public class StaticCompilationVisitor extends StaticTypeCheckingVisitor {
     protected boolean existsProperty(final PropertyExpression pexp, final boolean checkForReadOnly, final ClassCodeVisitorSupport visitor) {
         Expression objectExpression = pexp.getObjectExpression();
         ClassNode objectExpressionType = getType(objectExpression);
-        final Reference<ClassNode> rType = new Reference<ClassNode>(objectExpressionType);
+        final Reference<ClassNode> rType = new Reference<>(objectExpressionType);
         ClassCodeVisitorSupport receiverMemoizer = new ClassCodeVisitorSupport() {
             @Override
             protected SourceUnit getSourceUnit() {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java b/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
index d726ee8..6cd5b69 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
@@ -225,8 +225,8 @@ public class BinaryExpressionTransformer {
                 // next = tmp1
                 // result = tmp2
                 int size = rightExpressions.size();
-                List<Expression> tmpAssignments = new ArrayList<Expression>(size);
-                List<Expression> finalAssignments = new ArrayList<Expression>(size);
+                List<Expression> tmpAssignments = new ArrayList<>(size);
+                List<Expression> finalAssignments = new ArrayList<>(size);
                 for (int i = 0; i < Math.min(size, leftExpressions.size()); i++) {
                     Expression left = leftIt.next();
                     Expression right = rightIt.next();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/sc/transformers/ListExpressionTransformer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/transformers/ListExpressionTransformer.java b/src/main/java/org/codehaus/groovy/transform/sc/transformers/ListExpressionTransformer.java
index a415d05..59fcd65 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/transformers/ListExpressionTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/transformers/ListExpressionTransformer.java
@@ -72,7 +72,7 @@ public class ListExpressionTransformer {
 
     private List<Expression> transformArguments(final ListExpression expr) {
         List<Expression> expressions = expr.getExpressions();
-        List<Expression> transformedArgs = new LinkedList<Expression>();
+        List<Expression> transformedArgs = new LinkedList<>();
         for (Expression expression : expressions) {
             transformedArgs.add(transformer.transform(expression));
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/AbstractTypeCheckingExtension.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/AbstractTypeCheckingExtension.java b/src/main/java/org/codehaus/groovy/transform/stc/AbstractTypeCheckingExtension.java
index d6cae87..81f333b 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/AbstractTypeCheckingExtension.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/AbstractTypeCheckingExtension.java
@@ -60,8 +60,8 @@ import java.util.logging.Logger;
 public class AbstractTypeCheckingExtension extends TypeCheckingExtension {
     private static final Logger LOG = Logger.getLogger(GroovyTypeCheckingExtensionSupport.class.getName());
     protected final TypeCheckingContext context;
-    private final Set<MethodNode> generatedMethods = new LinkedHashSet<MethodNode>();
-    private final LinkedList<TypeCheckingScope> scopeData = new LinkedList<TypeCheckingScope>();
+    private final Set<MethodNode> generatedMethods = new LinkedHashSet<>();
+    private final LinkedList<TypeCheckingScope> scopeData = new LinkedList<>();
     // this boolean is used through setHandled(boolean)
     protected boolean handled = false;
     protected boolean debug = false;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/DefaultTypeCheckingExtension.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/DefaultTypeCheckingExtension.java b/src/main/java/org/codehaus/groovy/transform/stc/DefaultTypeCheckingExtension.java
index e17d8d4..aae9e5d 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/DefaultTypeCheckingExtension.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/DefaultTypeCheckingExtension.java
@@ -48,7 +48,7 @@ import java.util.List;
  * @since 2.1.0
  */
 public class DefaultTypeCheckingExtension extends TypeCheckingExtension {
-    protected final List<TypeCheckingExtension> handlers = new LinkedList<TypeCheckingExtension>();
+    protected final List<TypeCheckingExtension> handlers = new LinkedList<>();
 
     public DefaultTypeCheckingExtension(final StaticTypeCheckingVisitor typeCheckingVisitor) {
         super(typeCheckingVisitor);
@@ -110,7 +110,7 @@ public class DefaultTypeCheckingExtension extends TypeCheckingExtension {
     }
 
     public List<MethodNode> handleMissingMethod(final ClassNode receiver, final String name, final ArgumentListExpression argumentList, final ClassNode[] argumentTypes, final MethodCall call) {
-        List<MethodNode> result = new LinkedList<MethodNode>();
+        List<MethodNode> result = new LinkedList<>();
         for (TypeCheckingExtension handler : handlers) {
             List<MethodNode> handlerResult = handler.handleMissingMethod(receiver, name, argumentList, argumentTypes, call);
             for (MethodNode mn : handlerResult) {
@@ -178,7 +178,7 @@ public class DefaultTypeCheckingExtension extends TypeCheckingExtension {
 
     @Override
     public void setup() {
-        ArrayList<TypeCheckingExtension> copy = new ArrayList<TypeCheckingExtension>(handlers);
+        ArrayList<TypeCheckingExtension> copy = new ArrayList<>(handlers);
         // we're using a copy here because new extensions can be added during the "setup" phase
         for (TypeCheckingExtension handler : copy) {
             handler.setup();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java b/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
index 6d8b36c..d2a9623 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
@@ -89,7 +89,7 @@ public class GroovyTypeCheckingExtensionSupport extends AbstractTypeCheckingExte
     );
 
     // the following fields are closures executed in event-based methods
-    private final Map<String, List<Closure>> eventHandlers = new HashMap<String, List<Closure>>();
+    private final Map<String, List<Closure>> eventHandlers = new HashMap<>();
 
     private final String scriptPath;
 
@@ -352,7 +352,7 @@ public class GroovyTypeCheckingExtensionSupport extends AbstractTypeCheckingExte
     @SuppressWarnings("unchecked")
     public List<MethodNode> handleMissingMethod(final ClassNode receiver, final String name, final ArgumentListExpression argumentList, final ClassNode[] argumentTypes, final MethodCall call) {
         List<Closure> onMethodSelection = eventHandlers.get("handleMissingMethod");
-        List<MethodNode> methodList = new LinkedList<MethodNode>();
+        List<MethodNode> methodList = new LinkedList<>();
         if (onMethodSelection != null) {
             for (Closure closure : onMethodSelection) {
                 Object result = safeCall(closure, receiver, name, argumentList, argumentTypes, call);
@@ -384,7 +384,7 @@ public class GroovyTypeCheckingExtensionSupport extends AbstractTypeCheckingExte
                     if (result instanceof MethodNode) {
                         methodList = Collections.singletonList((MethodNode) result);
                     } else if (result instanceof Collection) {
-                        methodList = new LinkedList<MethodNode>((Collection<? extends MethodNode>) result);
+                        methodList = new LinkedList<>((Collection<? extends MethodNode>) result);
                     } else {
                         throw new GroovyBugError("Type checking extension returned unexpected method list: " + result);
                     }
@@ -444,7 +444,7 @@ public class GroovyTypeCheckingExtensionSupport extends AbstractTypeCheckingExte
                 }
                 List<Closure> closures = extension.eventHandlers.get(methodName);
                 if (closures == null) {
-                    closures = new LinkedList<Closure>();
+                    closures = new LinkedList<>();
                     extension.eventHandlers.put(methodName, closures);
                 }
                 closures.add((Closure) argsArray[0]);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/Receiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/Receiver.java b/src/main/java/org/codehaus/groovy/transform/stc/Receiver.java
index ad934ee..8e6efd9 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/Receiver.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/Receiver.java
@@ -26,7 +26,7 @@ public class Receiver<T> {
     private final T data;
 
     public static <T> Receiver<T> make(final ClassNode type) {
-        return new Receiver<T>(type==null?ClassHelper.OBJECT_TYPE:type);
+        return new Receiver<>(type == null ? ClassHelper.OBJECT_TYPE : type);
     }
 
     public Receiver(final ClassNode type) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/SharedVariableCollector.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/SharedVariableCollector.java b/src/main/java/org/codehaus/groovy/transform/stc/SharedVariableCollector.java
index b8fccb2..3d980ad 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/SharedVariableCollector.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/SharedVariableCollector.java
@@ -31,7 +31,7 @@ import java.util.Set;
  */
 public class SharedVariableCollector extends ClassCodeVisitorSupport {
     private final SourceUnit unit;
-    private final Set<VariableExpression> closureSharedExpressions = new LinkedHashSet<VariableExpression>();
+    private final Set<VariableExpression> closureSharedExpressions = new LinkedHashSet<>();
     private boolean visited = false;
 
     public SharedVariableCollector(final SourceUnit unit) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
index 061cfb7..b70f6de 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
@@ -301,7 +301,7 @@ public abstract class StaticTypeCheckingSupport {
     }
 
     protected static Set<MethodNode> findDGMMethodsForClassNode(final ClassLoader loader, ClassNode clazz, String name) {
-        TreeSet<MethodNode> accumulator = new TreeSet<MethodNode>(DGM_METHOD_NODE_COMPARATOR);
+        TreeSet<MethodNode> accumulator = new TreeSet<>(DGM_METHOD_NODE_COMPARATOR);
         findDGMMethodsForClassNode(loader, clazz, name, accumulator);
         return accumulator;
     }
@@ -1008,7 +1008,7 @@ public abstract class StaticTypeCheckingSupport {
     }
 
     public static List<MethodNode> findDGMMethodsByNameAndArguments(final ClassLoader loader, final ClassNode receiver, final String name, final ClassNode[] args) {
-        return findDGMMethodsByNameAndArguments(loader, receiver, name, args, new LinkedList<MethodNode>());
+        return findDGMMethodsByNameAndArguments(loader, receiver, name, args, new LinkedList<>());
     }
 
     /**
@@ -1072,7 +1072,7 @@ public abstract class StaticTypeCheckingSupport {
             ClassNode raw = makeRawType(receiver);
             return chooseBestMethod(raw, methods, args);
         }
-        List<MethodNode> bestChoices = new LinkedList<MethodNode>();
+        List<MethodNode> bestChoices = new LinkedList<>();
         int bestDist = Integer.MAX_VALUE;
         Collection<MethodNode> choicesLeft = removeCovariantsAndInterfaceEquivalents(methods);
         for (MethodNode candidateNode : choicesLeft) {
@@ -1116,7 +1116,7 @@ public abstract class StaticTypeCheckingSupport {
         }
         if (bestChoices.size() > 1) {
             // GROOVY-6849: prefer extension methods in case of ambiguity
-            List<MethodNode> onlyExtensionMethods = new LinkedList<MethodNode>();
+            List<MethodNode> onlyExtensionMethods = new LinkedList<>();
             for (MethodNode choice : bestChoices) {
                 if (choice instanceof ExtensionMethodNode) {
                     onlyExtensionMethods.add(choice);
@@ -1215,8 +1215,8 @@ public abstract class StaticTypeCheckingSupport {
 
     private static Collection<MethodNode> removeCovariantsAndInterfaceEquivalents(Collection<MethodNode> collection) {
         if (collection.size() <= 1) return collection;
-        List<MethodNode> toBeRemoved = new LinkedList<MethodNode>();
-        List<MethodNode> list = new LinkedList<MethodNode>(new LinkedHashSet<MethodNode>(collection));
+        List<MethodNode> toBeRemoved = new LinkedList<>();
+        List<MethodNode> list = new LinkedList<>(new LinkedHashSet<>(collection));
         for (int i = 0; i < list.size() - 1; i++) {
             MethodNode one = list.get(i);
             if (toBeRemoved.contains(one)) continue;
@@ -1241,7 +1241,7 @@ public abstract class StaticTypeCheckingSupport {
             }
         }
         if (toBeRemoved.isEmpty()) return list;
-        List<MethodNode> result = new LinkedList<MethodNode>(list);
+        List<MethodNode> result = new LinkedList<>(list);
         result.removeAll(toBeRemoved);
         return result;
     }
@@ -1508,7 +1508,7 @@ public abstract class StaticTypeCheckingSupport {
         // There is firstly the context given through the class, and the method.
         // The method context may hide generics given through the class, but use 
         // the non-hidden ones.
-        Map<GenericsTypeName, GenericsType> resolvedMethodGenerics = new HashMap<GenericsTypeName, GenericsType>();
+        Map<GenericsTypeName, GenericsType> resolvedMethodGenerics = new HashMap<>();
         if (!skipBecauseOfInnerClassNotReceiver) {
             addMethodLevelDeclaredGenerics(candidateMethod, resolvedMethodGenerics);
         }
@@ -1548,7 +1548,7 @@ public abstract class StaticTypeCheckingSupport {
 
     private static Set<GenericsTypeName> extractResolvedPlaceHolders(Map<GenericsTypeName, GenericsType> resolvedMethodGenerics) {
         if (resolvedMethodGenerics.isEmpty()) return Collections.EMPTY_SET;
-        Set<GenericsTypeName> result = new HashSet<GenericsTypeName>();
+        Set<GenericsTypeName> result = new HashSet<>();
         for (Entry<GenericsTypeName, GenericsType> entry : resolvedMethodGenerics.entrySet()) {
             GenericsType value = entry.getValue();
             if (value.isPlaceholder()) continue;
@@ -1558,7 +1558,7 @@ public abstract class StaticTypeCheckingSupport {
     }
 
     private static boolean inferenceCheck(Set<GenericsTypeName> fixedGenericsPlaceHolders, Map<GenericsTypeName, GenericsType> resolvedMethodGenerics, ClassNode type, ClassNode wrappedArgument, boolean lastArg) {
-        Map<GenericsTypeName, GenericsType> connections = new HashMap<GenericsTypeName, GenericsType>();
+        Map<GenericsTypeName, GenericsType> connections = new HashMap<>();
         if (isPrimitiveType(wrappedArgument)) wrappedArgument = getWrapper(wrappedArgument);
         // the context we compare with in the end is the one of the callsite
         // so far we specified the context of the method declaration only
@@ -1652,10 +1652,10 @@ public abstract class StaticTypeCheckingSupport {
 
     public static ClassNode resolveClassNodeGenerics(Map<GenericsTypeName, GenericsType> resolvedPlaceholders, final Map<GenericsTypeName, GenericsType> placeholdersFromContext, ClassNode currentType) {
         ClassNode target = currentType.redirect();
-        resolvedPlaceholders = new HashMap<GenericsTypeName, GenericsType>(resolvedPlaceholders);
+        resolvedPlaceholders = new HashMap<>(resolvedPlaceholders);
         applyContextGenerics(resolvedPlaceholders, placeholdersFromContext);
 
-        Map<GenericsTypeName, GenericsType> connections = new HashMap<GenericsTypeName, GenericsType>();
+        Map<GenericsTypeName, GenericsType> connections = new HashMap<>();
         extractGenericsConnections(connections, currentType, target);
         applyGenericsConnections(connections, resolvedPlaceholders);
         currentType = applyGenericsContext(resolvedPlaceholders, currentType);
@@ -2060,7 +2060,7 @@ public abstract class StaticTypeCheckingSupport {
 
     private static Map<GenericsTypeName, GenericsType> mergeGenerics(Map<GenericsTypeName, GenericsType> current, GenericsType[] newGenerics) {
         if (newGenerics == null || newGenerics.length == 0) return current;
-        if (current == null) current = new HashMap<GenericsTypeName, GenericsType>();
+        if (current == null) current = new HashMap<>();
         for (GenericsType gt : newGenerics) {
             if (!gt.isPlaceholder()) continue;
             GenericsTypeName name = new GenericsTypeName(gt.getName());
@@ -2207,7 +2207,7 @@ public abstract class StaticTypeCheckingSupport {
      * a method lookup.
      */
     private static class ExtensionMethodCache {
-        private final EvictableCache<ClassLoader, Map<String, List<MethodNode>>> cache = new StampedCommonCache<ClassLoader, Map<String, List<MethodNode>>>(new WeakHashMap<ClassLoader, Map<String, List<MethodNode>>>());
+        private final EvictableCache<ClassLoader, Map<String, List<MethodNode>>> cache = new StampedCommonCache<>(new WeakHashMap<>());
 
         public Map<String, List<MethodNode>> getExtensionMethods(ClassLoader loader) {
             return cache.getAndPut(
@@ -2215,7 +2215,7 @@ public abstract class StaticTypeCheckingSupport {
                     new EvictableCache.ValueProvider<ClassLoader, Map<String, List<MethodNode>>>() {
                         @Override
                         public Map<String, List<MethodNode>> provide(final ClassLoader key) {
-                            final List<ExtensionModule> modules = new LinkedList<ExtensionModule>();
+                            final List<ExtensionModule> modules = new LinkedList<>();
                             ExtensionModuleScanner scanner =
                                     new ExtensionModuleScanner(
                                             new ExtensionModuleScanner.ExtensionModuleListener() {
@@ -2248,8 +2248,8 @@ public abstract class StaticTypeCheckingSupport {
          * @return
          */
         private static Map<String, List<MethodNode>> getDGMMethods(List<ExtensionModule> modules) {
-            Set<Class> instanceExtClasses = new LinkedHashSet<Class>();
-            Set<Class> staticExtClasses = new LinkedHashSet<Class>();
+            Set<Class> instanceExtClasses = new LinkedHashSet<>();
+            Set<Class> staticExtClasses = new LinkedHashSet<>();
             for (ExtensionModule module : modules) {
                 if (module instanceof MetaInfExtensionModule) {
                     MetaInfExtensionModule extensionModule = (MetaInfExtensionModule) module;
@@ -2257,7 +2257,7 @@ public abstract class StaticTypeCheckingSupport {
                     staticExtClasses.addAll(extensionModule.getStaticMethodsExtensionClasses());
                 }
             }
-            Map<String, List<MethodNode>> methods = new HashMap<String, List<MethodNode>>();
+            Map<String, List<MethodNode>> methods = new HashMap<>();
             Collections.addAll(instanceExtClasses, DefaultGroovyMethods.DGM_LIKE_CLASSES);
             Collections.addAll(instanceExtClasses, DefaultGroovyMethods.ADDITIONAL_CLASSES);
             staticExtClasses.add(DefaultGroovyStaticMethods.class);
@@ -2306,7 +2306,7 @@ public abstract class StaticTypeCheckingSupport {
 
                         List<MethodNode> nodes = accumulator.get(declaringClassName);
                         if (nodes == null) {
-                            nodes = new LinkedList<MethodNode>();
+                            nodes = new LinkedList<>();
                             accumulator.put(declaringClassName, nodes);
                         }
                         nodes.add(node);
@@ -2409,7 +2409,7 @@ public abstract class StaticTypeCheckingSupport {
      * @return a set of interfaces implemented by this class node
      */
     public static Set<ClassNode> collectAllInterfaces(ClassNode node) {
-        Set<ClassNode> result = new HashSet<ClassNode>();
+        Set<ClassNode> result = new HashSet<>();
         collectAllInterfaces(node, result);
         return result;
     }
@@ -2453,7 +2453,7 @@ public abstract class StaticTypeCheckingSupport {
                     && (!voidOnly || VOID_TYPE == method.getReturnType())
                     && method.getParameters().length == 1) {
                 if (result == null) {
-                    result = new LinkedList<MethodNode>();
+                    result = new LinkedList<>();
                 }
                 result.add(method);
             }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
index 2f48985..b1f9237 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -389,7 +389,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         }
         typeCheckingContext.pushEnclosingClassNode(node);
         Set<MethodNode> oldVisitedMethod = typeCheckingContext.alreadyVisitedMethods;
-        typeCheckingContext.alreadyVisitedMethods = new LinkedHashSet<MethodNode>();
+        typeCheckingContext.alreadyVisitedMethods = new LinkedHashSet<>();
         super.visitClass(node);
         Iterator<InnerClassNode> innerClasses = node.getInnerClasses();
         while (innerClasses.hasNext()) {
@@ -478,7 +478,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
     private static void addPrivateFieldOrMethodAccess(Expression source, ClassNode cn, StaticTypesMarker type, ASTNode accessedMember) {
         Set<ASTNode> set = (Set<ASTNode>) cn.getNodeMetaData(type);
         if (set == null) {
-            set = new LinkedHashSet<ASTNode>();
+            set = new LinkedHashSet<>();
             cn.putNodeMetaData(type, set);
         }
         set.add(accessedMember);
@@ -561,7 +561,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                     ClassNode current = typeCheckingContext.getEnclosingClassNode();
                     LinkedList<MethodNode> list = current.getNodeMetaData(StaticTypesMarker.SUPER_MOP_METHOD_REQUIRED);
                     if (list == null) {
-                        list = new LinkedList<MethodNode>();
+                        list = new LinkedList<>();
                         current.putNodeMetaData(StaticTypesMarker.SUPER_MOP_METHOD_REQUIRED, list);
                     }
                     list.add(directCallTarget);
@@ -900,7 +900,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                         VariableExpression var = (VariableExpression) accessedVariable;
                         List<ClassNode> types = typeCheckingContext.ifElseForWhileAssignmentTracker.get(var);
                         if (types == null) {
-                            types = new LinkedList<ClassNode>();
+                            types = new LinkedList<>();
                             ClassNode type = var.getNodeMetaData(StaticTypesMarker.INFERRED_TYPE);
                             types.add(type);
                             typeCheckingContext.ifElseForWhileAssignmentTracker.put(var, types);
@@ -1071,7 +1071,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         Object key = extractTemporaryTypeInfoKey(objectOfInstanceOf);
         List<ClassNode> potentialTypes = tempo.get(key);
         if (potentialTypes == null) {
-            potentialTypes = new LinkedList<ClassNode>();
+            potentialTypes = new LinkedList<>();
             tempo.put(key, potentialTypes);
         }
         potentialTypes.add(typeExpression.getType());
@@ -1277,7 +1277,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
             if (!(keyExpr instanceof ConstantExpression)) {
                 addStaticTypeError("Dynamic keys in map-style constructors are unsupported in static type checking", keyExpr);
             } else {
-                AtomicReference<ClassNode> lookup = new AtomicReference<ClassNode>();
+                AtomicReference<ClassNode> lookup = new AtomicReference<>();
                 PropertyExpression pexp = new PropertyExpression(varX("_", receiverType), keyExpr.getText());
                 boolean hasProperty = existsProperty(pexp, false, new PropertyLookupVisitor(lookup));
                 if (!hasProperty) {
@@ -1437,16 +1437,16 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         }
 
         boolean foundGetterOrSetter = false;
-        List<Receiver<String>> receivers = new LinkedList<Receiver<String>>();
+        List<Receiver<String>> receivers = new LinkedList<>();
         List<Receiver<String>> owners = makeOwnerList(objectExpression);
         addReceivers(receivers, owners, pexp.isImplicitThis());
 
         String capName = capitalize(propertyName);
         boolean isAttributeExpression = pexp instanceof AttributeExpression;
-        HashSet<ClassNode> handledNodes = new HashSet<ClassNode>();
+        HashSet<ClassNode> handledNodes = new HashSet<>();
         for (Receiver<String> receiver : receivers) {
             ClassNode testClass = receiver.getType();
-            LinkedList<ClassNode> queue = new LinkedList<ClassNode>();
+            LinkedList<ClassNode> queue = new LinkedList<>();
             queue.add(testClass);
             if (isPrimitiveType(testClass)) {
                 queue.add(getWrapper(testClass));
@@ -1551,7 +1551,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                 }
             }
             // GROOVY-5568, the property may be defined by DGM
-            List<ClassNode> dgmReceivers = new ArrayList<ClassNode>(2);
+            List<ClassNode> dgmReceivers = new ArrayList<>(2);
             dgmReceivers.add(testClass);
             if (isPrimitiveType(testClass)) dgmReceivers.add(getWrapper(testClass));
             for (ClassNode dgmReceiver : dgmReceivers) {
@@ -1615,7 +1615,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         ClassNode contentType = OBJECT_TYPE;
         if (types != null && types.length == 1) contentType = types[0].getType();
         PropertyExpression subExp = new PropertyExpression(varX("{}", contentType), pexp.getPropertyAsString());
-        AtomicReference<ClassNode> result = new AtomicReference<ClassNode>();
+        AtomicReference<ClassNode> result = new AtomicReference<>();
         if (existsProperty(subExp, true, new PropertyLookupVisitor(result))) {
             ClassNode intf = LIST_TYPE.getPlainNodeReference();
             intf.setGenericsTypes(new GenericsType[]{new GenericsType(getWrapper(result.get()))});
@@ -1631,7 +1631,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         if (types == null || types.length != 1) return OBJECT_TYPE;
 
         PropertyExpression subExp = new PropertyExpression(varX("{}", types[0].getType()), pexp.getPropertyAsString());
-        AtomicReference<ClassNode> result = new AtomicReference<ClassNode>();
+        AtomicReference<ClassNode> result = new AtomicReference<>();
         if (existsProperty(subExp, true, new PropertyLookupVisitor(result))) {
             intf = LIST_TYPE.getPlainNodeReference();
             ClassNode itemType = result.get();
@@ -1753,7 +1753,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         if (propertyName == null) return null;
 
         Expression objectExpression = pexp.getObjectExpression();
-        List<Receiver<String>> receivers = new LinkedList<Receiver<String>>();
+        List<Receiver<String>> receivers = new LinkedList<>();
         List<Receiver<String>> owners = makeOwnerList(objectExpression);
         addReceivers(receivers, owners, pexp.isImplicitThis());
 
@@ -1762,7 +1762,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
         for (Receiver<String> receiver : receivers) {
             ClassNode testClass = receiver.getType();
-            LinkedList<ClassNode> queue = new LinkedList<ClassNode>();
+            LinkedList<ClassNode> queue = new LinkedList<>();
             queue.add(testClass);
             if (testClass.isInterface()) {
                 queue.addAll(testClass.getAllInterfaces());
@@ -1828,7 +1828,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
     @Override
     public void visitForLoop(final ForStatement forLoop) {
         // collect every variable expression used in the loop body
-        final Map<VariableExpression, ClassNode> varOrigType = new HashMap<VariableExpression, ClassNode>();
+        final Map<VariableExpression, ClassNode> varOrigType = new HashMap<>();
         forLoop.getLoopBlock().visit(new VariableExpressionTypeMemoizer(varOrigType));
 
         // visit body
@@ -2235,7 +2235,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         if (exp instanceof VariableExpression && info != null) {
             List<ClassNode> classNodes = getTemporaryTypesForExpression(exp);
             if (classNodes != null && !classNodes.isEmpty()) {
-                ArrayList<ClassNode> arr = new ArrayList<ClassNode>(classNodes.size() + 1);
+                ArrayList<ClassNode> arr = new ArrayList<>(classNodes.size() + 1);
                 if (result != null && !classNodes.contains(result)) arr.add(result);
                 arr.addAll(classNodes);
                 // GROOVY-7333: filter out Object
@@ -2264,7 +2264,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         typeCheckingContext.isInStaticContext = false;
 
         // collect every variable expression used in the loop body
-        final Map<VariableExpression, ClassNode> varOrigType = new HashMap<VariableExpression, ClassNode>();
+        final Map<VariableExpression, ClassNode> varOrigType = new HashMap<>();
         Statement code = expression.getCode();
         code.visit(new VariableExpressionTypeMemoizer(varOrigType));
         Map<VariableExpression, List<ClassNode>> oldTracker = pushAssignmentTracking();
@@ -2275,7 +2275,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         Set<VariableExpression> closureSharedExpressions = collector.getClosureSharedExpressions();
         Map<VariableExpression, ListHashMap> typesBeforeVisit = null;
         if (!closureSharedExpressions.isEmpty()) {
-            typesBeforeVisit = new HashMap<VariableExpression, ListHashMap>();
+            typesBeforeVisit = new HashMap<>();
             saveVariableExpressionMetadata(closureSharedExpressions, typesBeforeVisit);
         }
 
@@ -2351,7 +2351,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
             // GROOVY-6921: We must force a call to getType in order to update closure shared variable whose
             // types are inferred thanks to closure parameter type inference
             getType(ve);
-            ListHashMap<StaticTypesMarker, Object> metadata = new ListHashMap<StaticTypesMarker, Object>();
+            ListHashMap<StaticTypesMarker, Object> metadata = new ListHashMap<>();
             for (StaticTypesMarker marker : StaticTypesMarker.values()) {
                 Object value = ve.getNodeMetaData(marker);
                 if (value != null) {
@@ -2497,7 +2497,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
             //   - the actual receiver as found in the method call expression
             //   - any of the potential receivers found in the instanceof temporary table
             // in that order
-            List<Receiver<String>> receivers = new LinkedList<Receiver<String>>();
+            List<Receiver<String>> receivers = new LinkedList<>();
             addReceivers(receivers, makeOwnerList(new ClassExpression(receiver)), false);
             List<MethodNode> mn = null;
             Receiver<String> chosenReceiver = null;
@@ -2581,7 +2581,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
     protected void visitMethodCallArguments(final ClassNode receiver, ArgumentListExpression arguments, boolean visitClosures, final MethodNode selectedMethod) {
         Parameter[] params = selectedMethod != null ? selectedMethod.getParameters() : Parameter.EMPTY_ARRAY;
-        List<Expression> expressions = new LinkedList<Expression>(arguments.getExpressions());
+        List<Expression> expressions = new LinkedList<>(arguments.getExpressions());
         if (selectedMethod instanceof ExtensionMethodNode) {
             params = ((ExtensionMethodNode) selectedMethod).getExtensionMethodNode().getParameters();
             expressions.add(0, varX("$self", receiver));
@@ -2656,7 +2656,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
         // First we try to get as much information about the declaration
         // class through the receiver
-        Map<GenericsTypeName, GenericsType> targetMethodDeclarationClassConnections = new HashMap<GenericsTypeName, GenericsType>();
+        Map<GenericsTypeName, GenericsType> targetMethodDeclarationClassConnections = new HashMap<>();
         extractGenericsConnections(targetMethodDeclarationClassConnections, receiver, receiver.redirect());
         // then we use the method with the SAM parameter to get more information about the declaration
         Parameter[] parametersOfMethodContainingSAM = methodWithSAMParameter.getParameters();
@@ -2677,7 +2677,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         // to replace the generics in the SAM type parameter of the target
         // method and than that to make the connections to the SAM type generics
         ClassNode paramTypeWithReceiverInformation = applyGenericsContext(targetMethodDeclarationClassConnections, param.getOriginType());
-        Map<GenericsTypeName, GenericsType> SAMTypeConnections = new HashMap<GenericsTypeName, GenericsType>();
+        Map<GenericsTypeName, GenericsType> SAMTypeConnections = new HashMap<>();
         ClassNode classForSAM = paramTypeWithReceiverInformation.redirect();
         extractGenericsConnections(SAMTypeConnections, paramTypeWithReceiverInformation, classForSAM);
 
@@ -2770,7 +2770,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
     private void doInferClosureParameterTypes(final ClassNode receiver, final Expression arguments, final ClosureExpression expression, final MethodNode selectedMethod, final Expression hintClass, Expression resolverClass, final Expression options) {
         List<ClassNode[]> closureSignatures = getSignaturesFromHint(expression, selectedMethod, hintClass, options);
-        List<ClassNode[]> candidates = new LinkedList<ClassNode[]>();
+        List<ClassNode[]> candidates = new LinkedList<>();
         Parameter[] closureParams = expression.getParameters();
         for (ClassNode[] signature : closureSignatures) {
             // in order to compute the inferred types of the closure parameters, we're using the following trick:
@@ -2929,7 +2929,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         }
         if (options instanceof ListExpression) {
             List<Expression> list = ((ListExpression) options).getExpressions();
-            List<String> result = new ArrayList<String>(list.size());
+            List<String> result = new ArrayList<>(list.size());
             for (Expression expression : list) {
                 result.add(expression.getText());
             }
@@ -3075,9 +3075,9 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
     }
 
     private static void doAddDelegateReceiver(final List<Receiver<String>> receivers, final StringBuilder path, final ClassNode delegate) {
-        receivers.add(new Receiver<String>(delegate, path.toString()));
+        receivers.add(new Receiver<>(delegate, path.toString()));
         if (isTraitHelper(delegate)) {
-            receivers.add(new Receiver<String>(delegate.getOuterClass(), path.toString()));
+            receivers.add(new Receiver<>(delegate.getOuterClass(), path.toString()));
         }
     }
 
@@ -3206,7 +3206,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                 //   - the actual receiver as found in the method call expression
                 //   - any of the potential receivers found in the instanceof temporary table
                 // in that order
-                List<Receiver<String>> receivers = new LinkedList<Receiver<String>>();
+                List<Receiver<String>> receivers = new LinkedList<>();
                 List<Receiver<String>> owners = makeOwnerList(objectExpression);
                 addReceivers(receivers, owners, call.isImplicitThis());
                 List<MethodNode> mn = null;
@@ -3226,8 +3226,8 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                         // a nice error message to the user
                         // a method is accessible if it is static, or if we are not in a static context and it is
                         // declared by the current receiver or a superclass
-                        List<MethodNode> accessibleMethods = new LinkedList<MethodNode>();
-                        List<MethodNode> inaccessibleMethods = new LinkedList<MethodNode>();
+                        List<MethodNode> accessibleMethods = new LinkedList<>();
+                        List<MethodNode> inaccessibleMethods = new LinkedList<>();
                         for (final MethodNode node : mn) {
                             if (node.isStatic()
                                     || (!typeCheckingContext.isInStaticContext && implementsInterfaceOrIsSubclassOf(receiverType, node.getDeclaringClass()))) {
@@ -3331,7 +3331,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                             if (objectExpression instanceof VariableExpression) {
                                 VariableExpression var = (VariableExpression) objectExpression;
                                 if (var.isClosureSharedVariable()) {
-                                    SecondPassExpression<ClassNode[]> wrapper = new SecondPassExpression<ClassNode[]>(
+                                    SecondPassExpression<ClassNode[]> wrapper = new SecondPassExpression<>(
                                             call,
                                             args
                                     );
@@ -3411,7 +3411,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         if (directMethodCallCandidate instanceof ExtensionMethodNode) {
             ExtensionMethodNode emn = (ExtensionMethodNode) directMethodCallCandidate;
             if ("withTraits".equals(emn.getName()) && "DefaultGroovyMethods".equals(emn.getExtensionMethodNode().getDeclaringClass().getNameWithoutPackage())) {
-                List<ClassNode> nodes = new LinkedList<ClassNode>();
+                List<ClassNode> nodes = new LinkedList<>();
                 Collections.addAll(nodes, receiver.getInterfaces());
                 for (ClassNode arg : args) {
                     if (isClassClassNodeWrappingConcreteType(arg)) {
@@ -3478,7 +3478,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
      */
     protected List<Receiver<String>> makeOwnerList(final Expression objectExpression) {
         final ClassNode receiver = getType(objectExpression);
-        List<Receiver<String>> owners = new LinkedList<Receiver<String>>();
+        List<Receiver<String>> owners = new LinkedList<>();
         owners.add(Receiver.<String>make(receiver));
         if (isClassClassNodeWrappingConcreteType(receiver)) {
             GenericsType clazzGT = receiver.getGenericsTypes()[0];
@@ -3506,7 +3506,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
     }
 
     private static void addSelfTypes(final ClassNode receiver, final List<Receiver<String>> owners) {
-        LinkedHashSet<ClassNode> selfTypes = new LinkedHashSet<ClassNode>();
+        LinkedHashSet<ClassNode> selfTypes = new LinkedHashSet<>();
         for (ClassNode selfType : Traits.collectSelfTypes(receiver, selfTypes)) {
             owners.add(Receiver.<String>make(selfType));
         }
@@ -3755,13 +3755,13 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
     }
 
     protected Map<VariableExpression, ClassNode> popAssignmentTracking(final Map<VariableExpression, List<ClassNode>> oldTracker) {
-        Map<VariableExpression, ClassNode> assignments = new HashMap<VariableExpression, ClassNode>();
+        Map<VariableExpression, ClassNode> assignments = new HashMap<>();
         if (!typeCheckingContext.ifElseForWhileAssignmentTracker.isEmpty()) {
             for (Map.Entry<VariableExpression, List<ClassNode>> entry : typeCheckingContext.ifElseForWhileAssignmentTracker.entrySet()) {
                 VariableExpression key = entry.getKey();
                 List<ClassNode> allValues = entry.getValue();
                 // GROOVY-6099: First element of the list may be null, if no assignment was made before the branch
-                List<ClassNode> nonNullValues = new ArrayList<ClassNode>(allValues.size());
+                List<ClassNode> nonNullValues = new ArrayList<>(allValues.size());
                 for (ClassNode value : allValues) {
                     if (value != null) nonNullValues.add(value);
                 }
@@ -3777,7 +3777,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
     protected Map<VariableExpression, List<ClassNode>> pushAssignmentTracking() {
         // memorize current assignment context
         Map<VariableExpression, List<ClassNode>> oldTracker = typeCheckingContext.ifElseForWhileAssignmentTracker;
-        typeCheckingContext.ifElseForWhileAssignmentTracker = new HashMap<VariableExpression, List<ClassNode>>();
+        typeCheckingContext.ifElseForWhileAssignmentTracker = new HashMap<>();
         return oldTracker;
     }
 
@@ -3979,7 +3979,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
             if (var.isClosureSharedVariable() && cn != null) {
                 List<ClassNode> assignedTypes = typeCheckingContext.closureSharedVariablesAssignmentTypes.get(var);
                 if (assignedTypes == null) {
-                    assignedTypes = new LinkedList<ClassNode>();
+                    assignedTypes = new LinkedList<>();
                     typeCheckingContext.closureSharedVariablesAssignmentTypes.put(var, assignedTypes);
                 }
                 assignedTypes.add(cn);
@@ -4148,7 +4148,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         if (samGt == null || closureGt == null) return samUsage;
 
         // extract the generics from the return type
-        Map<GenericsTypeName, GenericsType> connections = new HashMap<GenericsTypeName, GenericsType>();
+        Map<GenericsTypeName, GenericsType> connections = new HashMap<>();
         extractGenericsConnections(connections, getInferredReturnType(closureExpression), sam.getReturnType());
 
         // next we get the block parameter types and set the generics
@@ -4235,7 +4235,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
     private List<MethodNode> disambiguateMethods(List<MethodNode> methods, ClassNode receiver, ClassNode[] argTypes, final Expression call) {
         if (methods.size() > 1 && receiver != null && argTypes != null) {
-            List<MethodNode> filteredWithGenerics = new LinkedList<MethodNode>();
+            List<MethodNode> filteredWithGenerics = new LinkedList<>();
             for (MethodNode methodNode : methods) {
                 if (typeCheckMethodsWithGenerics(receiver, argTypes, methodNode)) {
                     filteredWithGenerics.add(methodNode);
@@ -4316,7 +4316,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
     private static List<MethodNode> addGeneratedMethods(final ClassNode receiver, final List<MethodNode> methods) {
         // using a comparator of parameters
-        List<MethodNode> result = new LinkedList<MethodNode>();
+        List<MethodNode> result = new LinkedList<>();
         for (MethodNode method : methods) {
             result.add(method);
             Parameter[] parameters = method.getParameters();
@@ -4375,7 +4375,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         if (isPrimitiveType(receiver)) receiver = getWrapper(receiver);
         List<MethodNode> methods;
         if (!receiver.isInterface() && "<init>".equals(name)) {
-            methods = addGeneratedMethods(receiver, new ArrayList<MethodNode>(receiver.getDeclaredConstructors()));
+            methods = addGeneratedMethods(receiver, new ArrayList<>(receiver.getDeclaredConstructors()));
             if (methods.isEmpty()) {
                 MethodNode node = new ConstructorNode(Opcodes.ACC_PUBLIC, Parameter.EMPTY_ARRAY, ClassNode.EMPTY_ARRAY, GENERATED_EMPTY_STATEMENT);
                 node.setDeclaringClass(receiver);
@@ -4759,7 +4759,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
      */
     private ClassNode getGenericsResolvedTypeOfFieldOrProperty(AnnotatedNode an, ClassNode type) {
         if (!type.isUsingGenerics()) return type;
-        Map<GenericsTypeName, GenericsType> connections = new HashMap<GenericsTypeName, GenericsType>();
+        Map<GenericsTypeName, GenericsType> connections = new HashMap<>();
         //TODO: inner classes mean a different this-type. This is ignored here!
         extractGenericsConnections(connections, typeCheckingContext.getEnclosingClassNode(), an.getDeclaringClass());
         type = applyGenericsContext(connections, type);
@@ -4790,7 +4790,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
     private static ClassNode makeSelf(ClassNode trait) {
         ClassNode ret = trait;
-        LinkedHashSet<ClassNode> selfTypes = new LinkedHashSet<ClassNode>();
+        LinkedHashSet<ClassNode> selfTypes = new LinkedHashSet<>();
         Traits.collectSelfTypes(ret, selfTypes);
         if (!selfTypes.isEmpty()) {
             selfTypes.add(ret);
@@ -4839,7 +4839,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                 || (genericsTypes.length == 1 && OBJECT_TYPE.equals(genericsTypes[0].getType())))
                 && (!expressions.isEmpty())) {
             // maybe we can infer the component type
-            List<ClassNode> nodes = new LinkedList<ClassNode>();
+            List<ClassNode> nodes = new LinkedList<>();
             for (Expression expression : expressions) {
                 if (isNullConstant(expression)) {
                     // a null element is found in the list, skip it because we'll use the other elements from the list
@@ -4871,8 +4871,8 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         if (genericsTypes == null
                 || genericsTypes.length < 2
                 || (genericsTypes.length == 2 && OBJECT_TYPE.equals(genericsTypes[0].getType()) && OBJECT_TYPE.equals(genericsTypes[1].getType()))) {
-            List<ClassNode> keyTypes = new LinkedList<ClassNode>();
-            List<ClassNode> valueTypes = new LinkedList<ClassNode>();
+            List<ClassNode> keyTypes = new LinkedList<>();
+            List<ClassNode> valueTypes = new LinkedList<>();
             for (MapEntryExpression entryExpression : entryExpressions) {
                 keyTypes.add(getType(entryExpression.getKeyExpression()));
                 valueTypes.add(getType(entryExpression.getValueExpression()));
@@ -4985,7 +4985,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                     }
                     actualType = wrapTypeIfNecessary(actualType);
 
-                    Map<GenericsTypeName, GenericsType> connections = new HashMap<GenericsTypeName, GenericsType>();
+                    Map<GenericsTypeName, GenericsType> connections = new HashMap<>();
                     extractGenericsConnections(connections, actualType, type);
                     extractGenericsConnectionsForSuperClassAndInterfaces(resolvedPlaceholders, connections);
                     applyGenericsConnections(connections, resolvedPlaceholders);
@@ -5010,10 +5010,10 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
     }
 
     private static void extractGenericsConnectionsForSuperClassAndInterfaces(final Map<GenericsTypeName, GenericsType> resolvedPlaceholders, final Map<GenericsTypeName, GenericsType> connections) {
-        for (GenericsType value : new HashSet<GenericsType>(connections.values())) {
+        for (GenericsType value : new HashSet<>(connections.values())) {
             if (!value.isPlaceholder() && !value.isWildcard()) {
                 ClassNode valueType = value.getType();
-                List<ClassNode> deepNodes = new LinkedList<ClassNode>();
+                List<ClassNode> deepNodes = new LinkedList<>();
                 ClassNode unresolvedSuperClass = valueType.getUnresolvedSuperClass();
                 if (unresolvedSuperClass != null && unresolvedSuperClass.isUsingGenerics()) {
                     deepNodes.add(unresolvedSuperClass);
@@ -5078,7 +5078,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
             // now repeat the same for each parameter given in the ClosureExpression
             if (expression instanceof ClosureExpression && sam.getParameters().length > 0) {
-                List<ClassNode[]> genericsToConnect = new LinkedList<ClassNode[]>();
+                List<ClassNode[]> genericsToConnect = new LinkedList<>();
                 Parameter[] closureParams = ((ClosureExpression) expression).getParameters();
                 ClassNode[] closureParamTypes = extractTypesFromParameters(closureParams);
                 if (expression.getNodeMetaData(StaticTypesMarker.CLOSURE_ARGUMENTS) != null) {
@@ -5165,7 +5165,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
     private static Map<GenericsTypeName, GenericsType> extractPlaceHolders(MethodNode method, ClassNode receiver, ClassNode declaringClass) {
         if (declaringClass.equals(OBJECT_TYPE)) {
-            Map<GenericsTypeName, GenericsType> resolvedPlaceholders = new HashMap<GenericsTypeName, GenericsType>();
+            Map<GenericsTypeName, GenericsType> resolvedPlaceholders = new HashMap<>();
             if (method != null) addMethodLevelDeclaredGenerics(method, resolvedPlaceholders);
             return resolvedPlaceholders;
         }
@@ -5185,7 +5185,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
             while (current != null) {
                 boolean continueLoop = true;
                 //extract the place holders
-                Map<GenericsTypeName, GenericsType> currentPlaceHolders = new HashMap<GenericsTypeName, GenericsType>();
+                Map<GenericsTypeName, GenericsType> currentPlaceHolders = new HashMap<>();
                 if (isGenericsPlaceHolderOrArrayOf(declaringClass) || declaringClass.equals(current)) {
                     extractGenericsConnections(currentPlaceHolders, current, declaringClass);
                     if (method != null) addMethodLevelDeclaredGenerics(method, currentPlaceHolders);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java b/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
index 7922770..8b77468 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
@@ -109,7 +109,7 @@ public class TraitTypeCheckingExtension extends AbstractTypeCheckingExtension {
     private List<MethodNode> convertToDynamicCall(MethodCall call, ClassNode receiver, String[] decomposed, ClassNode[] argumentTypes) {
         String traitName = decomposed[0];
         String name = decomposed[1];
-        LinkedHashSet<ClassNode> traitsAsList = Traits.collectAllInterfacesReverseOrder(receiver, new LinkedHashSet<ClassNode>());
+        LinkedHashSet<ClassNode> traitsAsList = Traits.collectAllInterfacesReverseOrder(receiver, new LinkedHashSet<>());
         ClassNode[] implementedTraits = traitsAsList.toArray(ClassNode.EMPTY_ARRAY);
         ClassNode nextTrait = null;
         for (int i = 0; i < implementedTraits.length - 1; i++) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/TypeCheckingContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/TypeCheckingContext.java b/src/main/java/org/codehaus/groovy/transform/stc/TypeCheckingContext.java
index 77cb289..70ef404 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/TypeCheckingContext.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/TypeCheckingContext.java
@@ -52,18 +52,18 @@ public class TypeCheckingContext {
     protected Set<MethodNode> methodsToBeVisited = Collections.emptySet();
     protected boolean isInStaticContext = false;
 
-    protected final LinkedList<ErrorCollector> errorCollectors = new LinkedList<ErrorCollector>();
-    protected final LinkedList<ClassNode> enclosingClassNodes = new LinkedList<ClassNode>();
-    protected final LinkedList<MethodNode> enclosingMethods = new LinkedList<MethodNode>();
-    protected final LinkedList<Expression> enclosingMethodCalls = new LinkedList<Expression>();
-    protected final LinkedList<ConstructorCallExpression> enclosingConstructorCalls = new LinkedList<ConstructorCallExpression>();
-    protected final LinkedList<BlockStatement> enclosingBlocks = new LinkedList<BlockStatement>();
-    protected final LinkedList<ReturnStatement> enclosingReturnStatements = new LinkedList<ReturnStatement>();
-    protected final LinkedList<PropertyExpression> enclosingPropertyExpressions = new LinkedList<PropertyExpression>();
+    protected final LinkedList<ErrorCollector> errorCollectors = new LinkedList<>();
+    protected final LinkedList<ClassNode> enclosingClassNodes = new LinkedList<>();
+    protected final LinkedList<MethodNode> enclosingMethods = new LinkedList<>();
+    protected final LinkedList<Expression> enclosingMethodCalls = new LinkedList<>();
+    protected final LinkedList<ConstructorCallExpression> enclosingConstructorCalls = new LinkedList<>();
+    protected final LinkedList<BlockStatement> enclosingBlocks = new LinkedList<>();
+    protected final LinkedList<ReturnStatement> enclosingReturnStatements = new LinkedList<>();
+    protected final LinkedList<PropertyExpression> enclosingPropertyExpressions = new LinkedList<>();
 
 
     // used for closure return type inference
-    protected final LinkedList<EnclosingClosure> enclosingClosures = new LinkedList<EnclosingClosure>();
+    protected final LinkedList<EnclosingClosure> enclosingClosures = new LinkedList<>();
 
     // whenever a method using a closure as argument (typically, "with") is detected, this list is updated
     // with the receiver type of the with method
@@ -89,34 +89,34 @@ public class TypeCheckingContext {
      * }
      * // Here var1 instance of Runnable
      */
-    protected final IdentityHashMap<BlockStatement, Map<VariableExpression, List<ClassNode>>> blockStatements2Types = new IdentityHashMap<BlockStatement, Map<VariableExpression, List<ClassNode>>>();
+    protected final IdentityHashMap<BlockStatement, Map<VariableExpression, List<ClassNode>>> blockStatements2Types = new IdentityHashMap<>();
 
 
     /**
      * Stores information which is only valid in the "if" branch of an if-then-else statement. This is used when the if
      * condition expression makes use of an instanceof check
      */
-    protected Stack<Map<Object, List<ClassNode>>> temporaryIfBranchTypeInformation = new Stack<Map<Object, List<ClassNode>>>();
-    protected Set<MethodNode> alreadyVisitedMethods = new HashSet<MethodNode>();
+    protected Stack<Map<Object, List<ClassNode>>> temporaryIfBranchTypeInformation = new Stack<>();
+    protected Set<MethodNode> alreadyVisitedMethods = new HashSet<>();
     /**
      * Some expressions need to be visited twice, because type information may be insufficient at some point. For
      * example, for closure shared variables, we need a first pass to collect every type which is assigned to a closure
      * shared variable, then a second pass to ensure that every method call on such a variable is made on a LUB.
      */
-    protected final LinkedHashSet<SecondPassExpression> secondPassExpressions = new LinkedHashSet<SecondPassExpression>();
+    protected final LinkedHashSet<SecondPassExpression> secondPassExpressions = new LinkedHashSet<>();
     /**
      * A map used to store every type used in closure shared variable assignments. In a second pass, we will compute the
      * LUB of each type and check that method calls on those variables are valid.
      */
-    protected final Map<VariableExpression, List<ClassNode>> closureSharedVariablesAssignmentTypes = new HashMap<VariableExpression, List<ClassNode>>();
-    protected Map<Parameter, ClassNode> controlStructureVariables = new HashMap<Parameter, ClassNode>();
+    protected final Map<VariableExpression, List<ClassNode>> closureSharedVariablesAssignmentTypes = new HashMap<>();
+    protected Map<Parameter, ClassNode> controlStructureVariables = new HashMap<>();
 
     // this map is used to ensure that two errors are not reported on the same line/column
-    protected final Set<Long> reportedErrors = new TreeSet<Long>();
+    protected final Set<Long> reportedErrors = new TreeSet<>();
 
     // stores the current binary expression. This is used when assignments are made with a null object, for type
     // inference
-    protected final LinkedList<BinaryExpression> enclosingBinaryExpressions = new LinkedList<BinaryExpression>();
+    protected final LinkedList<BinaryExpression> enclosingBinaryExpressions = new LinkedList<>();
 
     protected final StaticTypeCheckingVisitor visitor;
 
@@ -294,7 +294,7 @@ public class TypeCheckingContext {
     }
 
     public void pushTemporaryTypeInfo() {
-        Map<Object, List<ClassNode>> potentialTypes = new HashMap<Object, List<ClassNode>>();
+        Map<Object, List<ClassNode>> potentialTypes = new HashMap<>();
         temporaryIfBranchTypeInformation.push(potentialTypes);
     }
 
@@ -460,7 +460,7 @@ public class TypeCheckingContext {
 
         public EnclosingClosure(final ClosureExpression closureExpression) {
             this.closureExpression = closureExpression;
-            this.returnTypes = new LinkedList<ClassNode>();
+            this.returnTypes = new LinkedList<>();
         }
 
         public ClosureExpression getClosureExpression() {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java b/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java
index 1513421..a576b19 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java
@@ -165,7 +165,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public List<MethodNode> getAbstractMethods() {
-        List<MethodNode> allMethods = new LinkedList<MethodNode>();
+        List<MethodNode> allMethods = new LinkedList<>();
         for (ClassNode delegate : delegates) {
             allMethods.addAll(delegate.getAbstractMethods());
         }
@@ -174,7 +174,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public List<MethodNode> getAllDeclaredMethods() {
-        List<MethodNode> allMethods = new LinkedList<MethodNode>();
+        List<MethodNode> allMethods = new LinkedList<>();
         for (ClassNode delegate : delegates) {
             allMethods.addAll(delegate.getAllDeclaredMethods());
         }
@@ -183,7 +183,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public Set<ClassNode> getAllInterfaces() {
-        Set<ClassNode> allMethods = new HashSet<ClassNode>();
+        Set<ClassNode> allMethods = new HashSet<>();
         for (ClassNode delegate : delegates) {
             allMethods.addAll(delegate.getAllInterfaces());
         }
@@ -192,7 +192,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public List<AnnotationNode> getAnnotations() {
-        List<AnnotationNode> nodes = new LinkedList<AnnotationNode>();
+        List<AnnotationNode> nodes = new LinkedList<>();
         for (ClassNode delegate : delegates) {
             List<AnnotationNode> annotations = delegate.getAnnotations();
             if (annotations != null) nodes.addAll(annotations);
@@ -202,7 +202,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public List<AnnotationNode> getAnnotations(final ClassNode type) {
-        List<AnnotationNode> nodes = new LinkedList<AnnotationNode>();
+        List<AnnotationNode> nodes = new LinkedList<>();
         for (ClassNode delegate : delegates) {
             List<AnnotationNode> annotations = delegate.getAnnotations(type);
             if (annotations != null) nodes.addAll(annotations);
@@ -217,7 +217,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public List<ConstructorNode> getDeclaredConstructors() {
-        List<ConstructorNode> nodes = new LinkedList<ConstructorNode>();
+        List<ConstructorNode> nodes = new LinkedList<>();
         for (ClassNode delegate : delegates) {
             nodes.addAll(delegate.getDeclaredConstructors());
         }
@@ -244,7 +244,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public List<MethodNode> getDeclaredMethods(final String name) {
-        List<MethodNode> nodes = new LinkedList<MethodNode>();
+        List<MethodNode> nodes = new LinkedList<>();
         for (ClassNode delegate : delegates) {
             List<MethodNode> methods = delegate.getDeclaredMethods(name);
             if (methods != null) nodes.addAll(methods);
@@ -273,7 +273,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public List<FieldNode> getFields() {
-        List<FieldNode> nodes = new LinkedList<FieldNode>();
+        List<FieldNode> nodes = new LinkedList<>();
         for (ClassNode delegate : delegates) {
             List<FieldNode> fields = delegate.getFields();
             if (fields != null) nodes.addAll(fields);
@@ -288,7 +288,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public ClassNode[] getInterfaces() {
-        Set<ClassNode> nodes = new LinkedHashSet<ClassNode>();
+        Set<ClassNode> nodes = new LinkedHashSet<>();
         for (ClassNode delegate : delegates) {
             ClassNode[] interfaces = delegate.getInterfaces();
             if (interfaces != null) Collections.addAll(nodes, interfaces);
@@ -298,7 +298,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public List<MethodNode> getMethods() {
-        List<MethodNode> nodes = new LinkedList<MethodNode>();
+        List<MethodNode> nodes = new LinkedList<>();
         for (ClassNode delegate : delegates) {
             List<MethodNode> methods = delegate.getMethods();
             if (methods != null) nodes.addAll(methods);
@@ -308,7 +308,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public List<PropertyNode> getProperties() {
-        List<PropertyNode> nodes = new LinkedList<PropertyNode>();
+        List<PropertyNode> nodes = new LinkedList<>();
         for (ClassNode delegate : delegates) {
             List<PropertyNode> properties = delegate.getProperties();
             if (properties != null) nodes.addAll(properties);
@@ -323,7 +323,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public ClassNode[] getUnresolvedInterfaces() {
-        Set<ClassNode> nodes = new LinkedHashSet<ClassNode>();
+        Set<ClassNode> nodes = new LinkedHashSet<>();
         for (ClassNode delegate : delegates) {
             ClassNode[] interfaces = delegate.getUnresolvedInterfaces();
             if (interfaces != null) Collections.addAll(nodes, interfaces);
@@ -333,7 +333,7 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public ClassNode[] getUnresolvedInterfaces(final boolean useRedirect) {
-        Set<ClassNode> nodes = new LinkedHashSet<ClassNode>();
+        Set<ClassNode> nodes = new LinkedHashSet<>();
         for (ClassNode delegate : delegates) {
             ClassNode[] interfaces = delegate.getUnresolvedInterfaces(useRedirect);
             if (interfaces != null) Collections.addAll(nodes, interfaces);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/trait/TraitASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/trait/TraitASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/trait/TraitASTTransformation.java
index 1dbbe96..4610dd9 100644
--- a/src/main/java/org/codehaus/groovy/transform/trait/TraitASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/trait/TraitASTTransformation.java
@@ -182,8 +182,8 @@ public class TraitASTTransformation extends AbstractASTTransformation implements
         generatePropertyMethods(cNode);
 
         // prepare fields
-        List<FieldNode> fields = new ArrayList<FieldNode>();
-        Set<String> fieldNames = new HashSet<String>();
+        List<FieldNode> fields = new ArrayList<>();
+        Set<String> fieldNames = new HashSet<>();
         boolean hasStatic = false;
         for (FieldNode field : cNode.getFields()) {
             if (!"metaClass".equals(field.getName()) && (!field.isSynthetic() || field.getName().indexOf('$') < 0)) {
@@ -214,8 +214,8 @@ public class TraitASTTransformation extends AbstractASTTransformation implements
         }
 
         // add methods
-        List<MethodNode> methods = new ArrayList<MethodNode>(cNode.getMethods());
-        List<MethodNode> nonPublicAPIMethods = new LinkedList<MethodNode>();
+        List<MethodNode> methods = new ArrayList<>(cNode.getMethods());
+        List<MethodNode> nonPublicAPIMethods = new LinkedList<>();
         for (final MethodNode methodNode : methods) {
             boolean declared = methodNode.getDeclaringClass() == cNode;
             if (declared) {
@@ -250,7 +250,7 @@ public class TraitASTTransformation extends AbstractASTTransformation implements
         // copy annotations
         copyClassAnnotations(cNode, helper);
 
-        fields = new ArrayList<FieldNode>(cNode.getFields()); // reuse the full list of fields
+        fields = new ArrayList<>(cNode.getFields()); // reuse the full list of fields
         for (FieldNode field : fields) {
             cNode.removeField(field.getName());
         }
@@ -513,8 +513,8 @@ public class TraitASTTransformation extends AbstractASTTransformation implements
                 null
         );
         // copy annotations from field to dummy field
-        List<AnnotationNode> copied = new LinkedList<AnnotationNode>();
-        List<AnnotationNode> notCopied = new LinkedList<AnnotationNode>();
+        List<AnnotationNode> copied = new LinkedList<>();
+        List<AnnotationNode> notCopied = new LinkedList<>();
         GeneralUtils.copyAnnotatedNodeAnnotations(field, copied, notCopied);
         dummyField.addAnnotations(copied);
         fieldHelper.addField(dummyField);
@@ -531,8 +531,8 @@ public class TraitASTTransformation extends AbstractASTTransformation implements
                 null
         );
         // copy annotations from field to legacy dummy field
-        copied = new LinkedList<AnnotationNode>();
-        notCopied = new LinkedList<AnnotationNode>();
+        copied = new LinkedList<>();
+        notCopied = new LinkedList<>();
         GeneralUtils.copyAnnotatedNodeAnnotations(field, copied, notCopied);
         dummyField.addAnnotations(copied);
         fieldHelper.addField(dummyField);
@@ -569,7 +569,7 @@ public class TraitASTTransformation extends AbstractASTTransformation implements
     }
 
     private static List<AnnotationNode> filterAnnotations(List<AnnotationNode> annotations) {
-        List<AnnotationNode> result = new ArrayList<AnnotationNode>(annotations.size());
+        List<AnnotationNode> result = new ArrayList<>(annotations.size());
         for (AnnotationNode annotation : annotations) {
             if (!OVERRIDE_CLASSNODE.equals(annotation.getClassNode())) {
                 result.add(annotation);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java b/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
index f7a57f8..6195ae9 100644
--- a/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
+++ b/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
@@ -120,9 +120,9 @@ public abstract class TraitComposer {
     }
 
     private static List<ClassNode> findTraits(ClassNode cNode) {
-        LinkedHashSet<ClassNode> interfaces = new LinkedHashSet<ClassNode>();
+        LinkedHashSet<ClassNode> interfaces = new LinkedHashSet<>();
         Traits.collectAllInterfacesReverseOrder(cNode, interfaces);
-        List<ClassNode> traits = new LinkedList<ClassNode>();
+        List<ClassNode> traits = new LinkedList<>();
         for (ClassNode candidate : interfaces) {
             if (Traits.isAnnotatedWithTrait(candidate)) {
                 traits.add(candidate);
@@ -156,7 +156,7 @@ public abstract class TraitComposer {
                 Parameter[] origParams = new Parameter[helperMethodParams.length - 1];
                 Parameter[] params = new Parameter[helperMethodParams.length - 1];
                 System.arraycopy(methodNode.getParameters(), 1, params, 0, params.length);
-                Map<String,ClassNode> methodGenericsSpec = new LinkedHashMap<String, ClassNode>(genericsSpec);
+                Map<String,ClassNode> methodGenericsSpec = new LinkedHashMap<>(genericsSpec);
                 MethodNode originalMethod = trait.getMethod(name, params);
                 // Original method may be null for the case of private or static methods
                 if (originalMethod!=null) {
@@ -167,8 +167,8 @@ public abstract class TraitComposer {
                     ClassNode originType = parameter.getOriginType();
                     ClassNode fixedType = correctToGenericsSpecRecurse(methodGenericsSpec, originType);
                     Parameter newParam = new Parameter(fixedType, "arg" + i);
-                    List<AnnotationNode> copied = new LinkedList<AnnotationNode>();
-                    List<AnnotationNode> notCopied = new LinkedList<AnnotationNode>();
+                    List<AnnotationNode> copied = new LinkedList<>();
+                    List<AnnotationNode> notCopied = new LinkedList<>();
                     GeneralUtils.copyAnnotatedNodeAnnotations(parameter, copied, notCopied);
                     newParam.addAnnotations(copied);
                     params[i - 1] = newParam;
@@ -200,7 +200,7 @@ public abstract class TraitComposer {
             // we should implement the field helper interface too
             cNode.addInterface(fieldHelperClassNode);
             // implementation of methods
-            List<MethodNode> declaredMethods = new LinkedList<MethodNode>();
+            List<MethodNode> declaredMethods = new LinkedList<>();
             for (MethodNode declaredMethod : fieldHelperClassNode.getAllDeclaredMethods()) {
                 if (declaredMethod.getName().endsWith(Traits.DIRECT_GETTER_SUFFIX)) {
                     declaredMethods.add(0, declaredMethod);
@@ -267,8 +267,8 @@ public abstract class TraitComposer {
                     if (getter) {
                         // add field
                         if (helperField!=null) {
-                            List<AnnotationNode> copied = new LinkedList<AnnotationNode>();
-                            List<AnnotationNode> notCopied = new LinkedList<AnnotationNode>();
+                            List<AnnotationNode> copied = new LinkedList<>();
+                            List<AnnotationNode> notCopied = new LinkedList<>();
                             GeneralUtils.copyAnnotatedNodeAnnotations(helperField, copied, notCopied);
                             FieldNode fieldNode = cNode.addField(fieldName, fieldMods, returnType, null);
                             fieldNode.addAnnotations(copied);
@@ -369,7 +369,7 @@ public abstract class TraitComposer {
                 exceptionNodes,
                 new ExpressionStatement(forwardExpression)
         );
-        List<AnnotationNode> copied = new LinkedList<AnnotationNode>();
+        List<AnnotationNode> copied = new LinkedList<>();
         List<AnnotationNode> notCopied = Collections.emptyList(); // at this point, should *always* stay empty
         GeneralUtils.copyAnnotatedNodeAnnotations(helperMethod, copied, notCopied);
         if (!copied.isEmpty()) {
@@ -383,7 +383,7 @@ public abstract class TraitComposer {
             // null indicates a static method which may still need generics correction
             GenericsType[] genericsTypes = helperMethod.getGenericsTypes();
             if (genericsTypes != null) {
-                Map<String, ClassNode> methodSpec = new HashMap<String, ClassNode>();
+                Map<String, ClassNode> methodSpec = new HashMap<>();
                 methodSpec = GenericsUtils.addMethodGenerics(helperMethod, methodSpec);
                 GenericsType[] newGt = GenericsUtils.applyGenericsContextToPlaceHolders(methodSpec, helperMethod.getGenericsTypes());
                 forwarder.setGenericsTypes(newGt);
@@ -444,7 +444,7 @@ public abstract class TraitComposer {
 
     private static GenericsType[] removeNonPlaceHolders(GenericsType[] oldTypes) {
         if (oldTypes==null || oldTypes.length==0) return oldTypes;
-        ArrayList<GenericsType> l = new ArrayList<GenericsType>(Arrays.asList(oldTypes));
+        ArrayList<GenericsType> l = new ArrayList<>(Arrays.asList(oldTypes));
         Iterator<GenericsType> it = l.iterator();
         boolean modified = false;
         while (it.hasNext()) {
@@ -465,11 +465,11 @@ public abstract class TraitComposer {
      * @param genericsSpec
      */
     private static void createSuperForwarder(ClassNode targetNode, MethodNode forwarder, final Map<String,ClassNode> genericsSpec) {
-        List<ClassNode> interfaces = new ArrayList<ClassNode>(Traits.collectAllInterfacesReverseOrder(targetNode, new LinkedHashSet<ClassNode>()));
+        List<ClassNode> interfaces = new ArrayList<>(Traits.collectAllInterfacesReverseOrder(targetNode, new LinkedHashSet<>()));
         String name = forwarder.getName();
         Parameter[] forwarderParameters = forwarder.getParameters();
-        LinkedHashSet<ClassNode> traits = new LinkedHashSet<ClassNode>();
-        List<MethodNode> superForwarders = new LinkedList<MethodNode>();
+        LinkedHashSet<ClassNode> traits = new LinkedHashSet<>();
+        List<MethodNode> superForwarders = new LinkedList<>();
         for (ClassNode node : interfaces) {
             if (Traits.isTrait(node)) {
                 MethodNode method = node.getDeclaredMethod(name, forwarderParameters);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/util/LazyReference.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/util/LazyReference.java b/src/main/java/org/codehaus/groovy/util/LazyReference.java
index a8abc15..fc8677c 100644
--- a/src/main/java/org/codehaus/groovy/util/LazyReference.java
+++ b/src/main/java/org/codehaus/groovy/util/LazyReference.java
@@ -51,7 +51,7 @@ public abstract class LazyReference<T> extends LockableObject {
             if (res == null) {
                 reference = NULL_REFERENCE;
             } else {
-                reference = new ManagedReference<T>(bundle,res);
+                reference = new ManagedReference<>(bundle, res);
             }
             return res;
         } finally {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/util/ListHashMap.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/util/ListHashMap.java b/src/main/java/org/codehaus/groovy/util/ListHashMap.java
index b1a141b..12a9a9a 100644
--- a/src/main/java/org/codehaus/groovy/util/ListHashMap.java
+++ b/src/main/java/org/codehaus/groovy/util/ListHashMap.java
@@ -207,7 +207,7 @@ public class ListHashMap<K,V> implements Map<K,V> {
 
     public Collection<V> values() {
         if (innerMap == null) {
-            List<V> list = new ArrayList<V>(size);
+            List<V> list = new ArrayList<>(size);
             for (int i = 0; i < size; i++) {
                 list.add((V) listValues[i]);
             }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/util/ManagedConcurrentLinkedQueue.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/util/ManagedConcurrentLinkedQueue.java b/src/main/java/org/codehaus/groovy/util/ManagedConcurrentLinkedQueue.java
index ab98f72..c507cff 100644
--- a/src/main/java/org/codehaus/groovy/util/ManagedConcurrentLinkedQueue.java
+++ b/src/main/java/org/codehaus/groovy/util/ManagedConcurrentLinkedQueue.java
@@ -50,7 +50,7 @@ public class ManagedConcurrentLinkedQueue<T> implements Iterable<T> {
      */
     public ManagedConcurrentLinkedQueue(ReferenceBundle bundle) {
         this.bundle = bundle;
-        this.queue = new ConcurrentLinkedQueue<Element<T>>();
+        this.queue = new ConcurrentLinkedQueue<>();
     }
 
     /**
@@ -59,7 +59,7 @@ public class ManagedConcurrentLinkedQueue<T> implements Iterable<T> {
      * @param value the value to add
      */
     public void add(T value) {
-        Element<T> e = new Element<T>(value);
+        Element<T> e = new Element<>(value);
         queue.offer(e);
     }
 
@@ -90,7 +90,7 @@ public class ManagedConcurrentLinkedQueue<T> implements Iterable<T> {
      * sequence they were added.
      */
     public List<T> values() {
-        List<T> result = new ArrayList<T>();
+        List<T> result = new ArrayList<>();
         for (Iterator<T> itr = iterator(); itr.hasNext(); ) {
             result.add(itr.next());
         }


[4/8] groovy git commit: Minor refactoring: Explicit type can be replaced with <>

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index d54e405..6b1aab4 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -212,7 +212,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
 //            NioGroovyMethods.class
     };
     private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-    private static final NumberAwareComparator<Comparable> COMPARABLE_NUMBER_AWARE_COMPARATOR = new NumberAwareComparator<Comparable>();
+    private static final NumberAwareComparator<Comparable> COMPARABLE_NUMBER_AWARE_COMPARATOR = new NumberAwareComparator<>();
 
     /**
      * Identity check. Since == is overridden in Groovy with the meaning of equality
@@ -510,7 +510,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     public static List<PropertyValue> getMetaPropertyValues(Object self) {
         MetaClass metaClass = InvokerHelper.getMetaClass(self);
         List<MetaProperty> mps = metaClass.getProperties();
-        List<PropertyValue> props = new ArrayList<PropertyValue>(mps.size());
+        List<PropertyValue> props = new ArrayList<>(mps.size());
         for (MetaProperty mp : mps) {
             props.add(new PropertyValue(self, mp));
         }
@@ -528,7 +528,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static Map getProperties(Object self) {
         List<PropertyValue> metaProps = getMetaPropertyValues(self);
-        Map<String, Object> props = new LinkedHashMap<String, Object>(metaProps.size());
+        Map<String, Object> props = new LinkedHashMap<>(metaProps.size());
 
         for (PropertyValue mp : metaProps) {
             try {
@@ -679,7 +679,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         } catch (ClassCastException e) {
             throw new IllegalArgumentException("Expecting a Closure to be the last argument");
         }
-        List<Class> list = new ArrayList<Class>(array.length - 1);
+        List<Class> list = new ArrayList<>(array.length - 1);
         for (int i = 0; i < array.length - 1; ++i) {
             Class categoryClass;
             try {
@@ -1172,7 +1172,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.5
      */
     public static <T> Iterator<T> unique(Iterator<T> self) {
-        return uniqueItems(new IteratorIterableAdapter<T>(self)).listIterator();
+        return uniqueItems(new IteratorIterableAdapter<>(self)).listIterator();
     }
 
     /**
@@ -1232,7 +1232,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     }
 
     private static <T> List<T> uniqueItems(Iterable<T> self) {
-        List<T> answer = new ArrayList<T>();
+        List<T> answer = new ArrayList<>();
         for (T t : self) {
             boolean duplicated = false;
             for (T t2 : answer) {
@@ -1302,8 +1302,8 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> Iterator<T> unique(Iterator<T> self, @ClosureParams(value=FromString.class, options={"T","T,T"}) Closure condition) {
         Comparator<T> comparator = condition.getMaximumNumberOfParameters() == 1
-                ? new OrderBy<T>(condition, true)
-                : new ClosureComparator<T>(condition);
+                ? new OrderBy<>(condition, true)
+                : new ClosureComparator<>(condition);
         return unique(self, comparator);
     }
 
@@ -1386,9 +1386,9 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         // use a comparator of one item or two
         int params = closure.getMaximumNumberOfParameters();
         if (params == 1) {
-            self = unique(self, mutate, new OrderBy<T>(closure, true));
+            self = unique(self, mutate, new OrderBy<>(closure, true));
         } else {
-            self = unique(self, mutate, new ClosureComparator<T>(closure));
+            self = unique(self, mutate, new ClosureComparator<>(closure));
         }
         return self;
     }
@@ -1435,7 +1435,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.5
      */
     public static <T> Iterator<T> unique(Iterator<T> self, Comparator<T> comparator) {
-        return uniqueItems(new IteratorIterableAdapter<T>(self), comparator).listIterator();
+        return uniqueItems(new IteratorIterableAdapter<>(self), comparator).listIterator();
     }
 
     private static final class IteratorIterableAdapter<T> implements Iterable<T> {
@@ -1610,7 +1610,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     }
 
     private static <T> List<T> uniqueItems(Iterable<T> self, Comparator<T> comparator) {
-        List<T> answer = new ArrayList<T>();
+        List<T> answer = new ArrayList<>();
         for (T t : self) {
             boolean duplicated = false;
             for (T t2 : answer) {
@@ -1702,8 +1702,8 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> Iterator<T> toUnique(Iterator<T> self, @ClosureParams(value=FromString.class, options={"T","T,T"}) Closure condition) {
         return toUnique(self, condition.getMaximumNumberOfParameters() == 1
-                ? new OrderBy<T>(condition, true)
-                : new ClosureComparator<T>(condition));
+                ? new OrderBy<>(condition, true)
+                : new ClosureComparator<>(condition));
     }
 
     private static final class ToUniqueIterator<E> implements Iterator<E> {
@@ -1714,7 +1714,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
 
         private ToUniqueIterator(Iterator<E> delegate, Comparator<E> comparator) {
             this.delegate = delegate;
-            seen = new TreeSet<E>(comparator);
+            seen = new TreeSet<>(comparator);
             advance();
         }
 
@@ -1757,7 +1757,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <T> Iterator<T> toUnique(Iterator<T> self, Comparator<T> comparator) {
-        return new ToUniqueIterator<T>(self, comparator);
+        return new ToUniqueIterator<>(self, comparator);
     }
 
     /**
@@ -1947,8 +1947,8 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> Collection<T> toUnique(Iterable<T> self, @ClosureParams(value = FromString.class, options = {"T", "T,T"}) Closure condition) {
         Comparator<T> comparator = condition.getMaximumNumberOfParameters() == 1
-                ? new OrderBy<T>(condition, true)
-                : new ClosureComparator<T>(condition);
+                ? new OrderBy<>(condition, true)
+                : new ClosureComparator<>(condition);
         return toUnique(self, comparator);
     }
 
@@ -2056,8 +2056,8 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     @SuppressWarnings("unchecked")
     public static <T> T[] toUnique(T[] self, @ClosureParams(value=FromString.class, options={"T","T,T"}) Closure condition) {
         Comparator<T> comparator = condition.getMaximumNumberOfParameters() == 1
-                ? new OrderBy<T>(condition, true)
-                : new ClosureComparator<T>(condition);
+                ? new OrderBy<>(condition, true)
+                : new ClosureComparator<>(condition);
         return toUnique(self, comparator);
     }
 
@@ -2413,7 +2413,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.0
      */
     public static <T> List<T> reverseEach(List<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure closure) {
-        each(new ReverseListIterator<T>(self), closure);
+        each(new ReverseListIterator<>(self), closure);
         return self;
     }
 
@@ -2426,7 +2426,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.2
      */
     public static <T> T[] reverseEach(T[] self, @ClosureParams(FirstParam.Component.class) Closure closure) {
-        each(new ReverseListIterator<T>(Arrays.asList(self)), closure);
+        each(new ReverseListIterator<>(Arrays.asList(self)), closure);
         return self;
     }
 
@@ -2480,7 +2480,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T> boolean every(T[] self, @ClosureParams(FirstParam.Component.class) Closure predicate) {
-        return every(new ArrayIterator<T>(self), predicate);
+        return every(new ArrayIterator<>(self), predicate);
     }
 
     /**
@@ -2614,7 +2614,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T> boolean any(T[] self, @ClosureParams(FirstParam.Component.class) Closure predicate) {
-        return any(new ArrayIterator<T>(self), predicate);
+        return any(new ArrayIterator<>(self), predicate);
     }
 
     /**
@@ -2794,7 +2794,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.0
      */
     public static <T> Collection<T> grep(T[] self, Object filter) {
-        Collection<T> answer = new ArrayList<T>();
+        Collection<T> answer = new ArrayList<>();
         BooleanReturningMethodInvoker bmi = new BooleanReturningMethodInvoker("isCase");
         for (T element : self) {
             if (bmi.invoke(filter, element)) {
@@ -3171,7 +3171,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     @Deprecated
     public static <T> List<T> toList(Collection<T> self) {
-        List<T> answer = new ArrayList<T>(self.size());
+        List<T> answer = new ArrayList<>(self.size());
         answer.addAll(self);
         return answer;
     }
@@ -3185,7 +3185,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.0
      */
     public static <T> List<T> toList(Iterator<T> self) {
-        List<T> answer = new ArrayList<T>();
+        List<T> answer = new ArrayList<>();
         while (self.hasNext()) {
             answer.add(self.next());
         }
@@ -3217,7 +3217,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.0
      */
     public static <T> List<T> toList(Enumeration<T> self) {
-        List<T> answer = new ArrayList<T>();
+        List<T> answer = new ArrayList<>();
         while (self.hasMoreElements()) {
             answer.add(self.nextElement());
         }
@@ -3369,7 +3369,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> List<List<T>> collate(Iterable<T> self, int size, int step, boolean keepRemainder) {
         List<T> selfList = asList(self);
-        List<List<T>> answer = new ArrayList<List<T>>();
+        List<List<T>> answer = new ArrayList<>();
         if (size <= 0) {
             answer.add(selfList);
         } else {
@@ -3378,7 +3378,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
                 if (!keepRemainder && pos > selfList.size() - size) {
                     break ;
                 }
-                List<T> element = new ArrayList<T>() ;
+                List<T> element = new ArrayList<>() ;
                 for (int offs = pos; offs < pos + size && offs < selfList.size(); offs++) {
                     element.add(selfList.get(offs));
                 }
@@ -3440,7 +3440,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <T> List<T> collect(Object self, Closure<T> transform) {
-        return (List<T>) collect(self, new ArrayList<T>(), transform);
+        return (List<T>) collect(self, new ArrayList<>(), transform);
     }
 
     /**
@@ -3467,7 +3467,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <S,T> List<T> collect(S[] self, @ClosureParams(FirstParam.Component.class) Closure<T> transform) {
-        return collect(new ArrayIterator<S>(self), transform);
+        return collect(new ArrayIterator<>(self), transform);
     }
 
     /**
@@ -3487,7 +3487,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <S,T> Collection<T> collect(S[] self, Collection<T> collector, @ClosureParams(FirstParam.Component.class) Closure<? extends T> transform) {
-        return collect(new ArrayIterator<S>(self), collector, transform);
+        return collect(new ArrayIterator<>(self), collector, transform);
     }
 
     /**
@@ -3500,7 +3500,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <S,T> List<T> collect(Iterator<S> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<T> transform) {
-        return (List<T>) collect(self, new ArrayList<T>(), transform);
+        return (List<T>) collect(self, new ArrayList<>(), transform);
     }
 
     /**
@@ -3548,7 +3548,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     @Deprecated
     public static <S,T> List<T> collect(Collection<S> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<T> transform) {
-        return (List<T>) collect(self, new ArrayList<T>(self.size()), transform);
+        return (List<T>) collect(self, new ArrayList<>(self.size()), transform);
     }
 
     /**
@@ -3766,7 +3766,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.2.0
      */
     public static <T,E> List<T> collectMany(Iterable<E> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<Collection<? extends T>> projection) {
-        return (List<T>) collectMany(self, new ArrayList<T>(), projection);
+        return (List<T>) collectMany(self, new ArrayList<>(), projection);
     }
 
     /**
@@ -3835,7 +3835,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.8
      */
     public static <T,K,V> Collection<T> collectMany(Map<K, V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure<Collection<? extends T>> projection) {
-        return collectMany(self, new ArrayList<T>(), projection);
+        return collectMany(self, new ArrayList<>(), projection);
     }
 
     /**
@@ -3909,7 +3909,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <T,K,V> List<T> collect(Map<K,V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure<T> transform) {
-        return (List<T>) collect(self, new ArrayList<T>(self.size()), transform);
+        return (List<T>) collect(self, new ArrayList<>(self.size()), transform);
     }
 
     /**
@@ -3985,7 +3985,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.7
      */
     public static <K, V, E> Map<K, V> collectEntries(Iterator<E> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<?> transform) {
-        return collectEntries(self, new LinkedHashMap<K, V>(), transform);
+        return collectEntries(self, new LinkedHashMap<>(), transform);
     }
 
     /**
@@ -4524,7 +4524,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <S, T, U extends T, V extends T> T findResult(S[] self, U defaultResult, @ClosureParams(FirstParam.Component.class) Closure<V> condition) {
-        return findResult(new ArrayIterator<S>(self), defaultResult, condition);
+        return findResult(new ArrayIterator<>(self), defaultResult, condition);
     }
 
     /**
@@ -4537,7 +4537,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <S, T> T findResult(S[] self, @ClosureParams(FirstParam.Component.class) Closure<T> condition) {
-        return findResult(new ArrayIterator<S>(self), condition);
+        return findResult(new ArrayIterator<>(self), condition);
     }
 
     /**
@@ -4627,7 +4627,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T, U> Collection<T> findResults(Iterator<U> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<T> filteringTransform) {
-        List<T> result = new ArrayList<T>();
+        List<T> result = new ArrayList<>();
         while (self.hasNext()) {
             U value = self.next();
             T transformed = filteringTransform.call(value);
@@ -4648,7 +4648,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T, U> Collection<T> findResults(U[] self, @ClosureParams(FirstParam.Component.class) Closure<T> filteringTransform) {
-        return findResults(new ArrayIterator<U>(self), filteringTransform);
+        return findResults(new ArrayIterator<>(self), filteringTransform);
     }
 
     /**
@@ -4670,7 +4670,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.1
      */
     public static <T, K, V> Collection<T> findResults(Map<K, V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure<T> filteringTransform) {
-        List<T> result = new ArrayList<T>();
+        List<T> result = new ArrayList<>();
         for (Map.Entry<K, V> entry : self.entrySet()) {
             T transformed = callClosureForMapEntry(filteringTransform, entry);
             if (transformed != null) {
@@ -4755,8 +4755,8 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.0
      */
     public static <T> Collection<T> findAll(T[] self, @ClosureParams(FirstParam.Component.class) Closure condition) {
-        Collection<T> answer = new ArrayList<T>();
-        return findAll(condition, answer, new ArrayIterator<T>(self));
+        Collection<T> answer = new ArrayList<>();
+        return findAll(condition, answer, new ArrayIterator<>(self));
     }
 
     /**
@@ -5173,14 +5173,14 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T> Collection<Collection<T>> split(T[] self, @ClosureParams(FirstParam.Component.class) Closure closure) {
-        List<T> accept = new ArrayList<T>();
-        List<T> reject = new ArrayList<T>();
-        Iterator<T> iter = new ArrayIterator<T>(self);
+        List<T> accept = new ArrayList<>();
+        List<T> reject = new ArrayList<>();
+        Iterator<T> iter = new ArrayIterator<>(self);
         return split(closure, accept, reject, iter);
     }
 
     private static <T> Collection<Collection<T>> split(Closure closure, Collection<T> accept, Collection<T> reject, Iterator<T> iter) {
-        List<Collection<T>> answer = new ArrayList<Collection<T>>();
+        List<Collection<T>> answer = new ArrayList<>();
         BooleanClosureWrapper bcw = new BooleanClosureWrapper(closure);
         while (iter.hasNext()) {
             T value = iter.next();
@@ -5317,8 +5317,8 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static <T> Set<List<T>> permutations(Iterable<T> self) {
-        Set<List<T>> ans = new HashSet<List<T>>();
-        PermutationGenerator<T> generator = new PermutationGenerator<T>(self);
+        Set<List<T>> ans = new HashSet<>();
+        PermutationGenerator<T> generator = new PermutationGenerator<>(self);
         while (generator.hasNext()) {
             ans.add(generator.next());
         }
@@ -5386,7 +5386,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static <T> Iterator<List<T>> eachPermutation(Iterable<T> self, Closure closure) {
-        Iterator<List<T>> generator = new PermutationGenerator<T>(self);
+        Iterator<List<T>> generator = new PermutationGenerator<>(self);
         while (generator.hasNext()) {
             closure.call(generator.next());
         }
@@ -5475,7 +5475,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.2.0
      */
     public static <K, T> Map<K, List<T>> groupBy(Iterable<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<K> closure) {
-        Map<K, List<T>> answer = new LinkedHashMap<K, List<T>>();
+        Map<K, List<T>> answer = new LinkedHashMap<>();
         for (T element : self) {
             K value = closure.call(element);
             groupAnswer(answer, element, value);
@@ -5557,7 +5557,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         System.arraycopy(closures, 1, tail, 0, closures.length - 1); // Arrays.copyOfRange only since JDK 1.6
 
         // inject([:]) { a,e -> a << [(e.key): e.value.groupBy(tail)] }
-        Map<Object, Map> acc = new LinkedHashMap<Object, Map>();
+        Map<Object, Map> acc = new LinkedHashMap<>();
         for (Map.Entry<Object, List> item : first.entrySet()) {
             acc.put(item.getKey(), groupBy((Iterable)item.getValue(), tail));
         }
@@ -5709,7 +5709,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.0
      */
     public static <K,E> Map<K, Integer> countBy(Iterator<E> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<K> closure) {
-        Map<K, Integer> answer = new LinkedHashMap<K, Integer>();
+        Map<K, Integer> answer = new LinkedHashMap<>();
         while (self.hasNext()) {
             K value = closure.call(self.next());
             countAnswer(answer, value);
@@ -5736,7 +5736,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.2
      */
     public static <G, K, V> Map<G, List<Map.Entry<K, V>>> groupEntriesBy(Map<K, V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure<G> closure) {
-        final Map<G, List<Map.Entry<K, V>>> answer = new LinkedHashMap<G, List<Map.Entry<K, V>>>();
+        final Map<G, List<Map.Entry<K, V>>> answer = new LinkedHashMap<>();
         for (Map.Entry<K, V> entry : self.entrySet()) {
             G value = callClosureForMapEntry(closure, entry);
             groupAnswer(answer, entry, value);
@@ -5767,7 +5767,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <G, K, V> Map<G, Map<K, V>> groupBy(Map<K, V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure<G> closure) {
         final Map<G, List<Map.Entry<K, V>>> initial = groupEntriesBy(self, closure);
-        final Map<G, Map<K, V>> answer = new LinkedHashMap<G, Map<K, V>>();
+        final Map<G, Map<K, V>> answer = new LinkedHashMap<>();
         for (Map.Entry<G, List<Map.Entry<K, V>>> outer : initial.entrySet()) {
             G key = outer.getKey();
             List<Map.Entry<K, V>> entries = outer.getValue();
@@ -5813,7 +5813,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         final Object[] tail = new Object[closures.length - 1];
         System.arraycopy(closures, 1, tail, 0, closures.length - 1); // Arrays.copyOfRange only since JDK 1.6
 
-        Map<Object, Map> acc = new LinkedHashMap<Object, Map>();
+        Map<Object, Map> acc = new LinkedHashMap<>();
         for (Map.Entry<Object, Map> item: first.entrySet()) {
             acc.put(item.getKey(), groupBy(item.getValue(), tail));
         }
@@ -5866,7 +5866,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.0
      */
     public static <K,U,V> Map<K, Integer> countBy(Map<U,V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure<K> closure) {
-        Map<K, Integer> answer = new LinkedHashMap<K, Integer>();
+        Map<K, Integer> answer = new LinkedHashMap<>();
         for (Map.Entry<U,V> entry : self.entrySet()) {
             countAnswer(answer, callClosureForMapEntry(closure, entry));
         }
@@ -5885,7 +5885,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         if (answer.containsKey(value)) {
             answer.get(value).add(element);
         } else {
-            List<T> groupedElements = new ArrayList<T>();
+            List<T> groupedElements = new ArrayList<>();
             groupedElements.add(element);
             answer.put(value, groupedElements);
         }
@@ -6504,7 +6504,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.1
      */
     public static <T> Object sum(T[] self, @ClosureParams(FirstParam.Component.class) Closure closure) {
-        return sum(new ArrayIterator<T>(self), null, closure, true);
+        return sum(new ArrayIterator<>(self), null, closure, true);
     }
 
     /**
@@ -6563,7 +6563,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.1
      */
     public static <T> Object sum(T[] self, Object initialValue, @ClosureParams(FirstParam.Component.class) Closure closure) {
-        return sum(new ArrayIterator<T>(self), initialValue, closure, false);
+        return sum(new ArrayIterator<>(self), initialValue, closure, false);
     }
 
     /**
@@ -7048,7 +7048,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     public static <T> T min(Iterable<T> self, @ClosureParams(value=FromString.class, options={"T","T,T"}) Closure closure) {
         int params = closure.getMaximumNumberOfParameters();
         if (params != 1) {
-            return min(self, new ClosureComparator<T>(closure));
+            return min(self, new ClosureComparator<>(closure));
         }
         boolean first = true;
         T answer = null;
@@ -7281,7 +7281,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     public static <T> T max(Iterable<T> self, @ClosureParams(value=FromString.class, options={"T","T,T"}) Closure closure) {
         int params = closure.getMaximumNumberOfParameters();
         if (params != 1) {
-            return max(self, new ClosureComparator<T>(closure));
+            return max(self, new ClosureComparator<>(closure));
         }
         boolean first = true;
         T answer = null;
@@ -7541,7 +7541,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @return a new eager or lazy list of the values at the given indices
      */
     public static <T> List<T> getAt(ListWithDefault<T> self, Collection indices) {
-        List<T> answer = ListWithDefault.newInstance(new ArrayList<T>(indices.size()), self.isLazyDefaultValues(), self.getInitClosure());
+        List<T> answer = ListWithDefault.newInstance(new ArrayList<>(indices.size()), self.isLazyDefaultValues(), self.getInitClosure());
         for (Object value : indices) {
             if (value instanceof Range || value instanceof Collection) {
                 answer.addAll((List<T>) InvokerHelper.invokeMethod(self, "getAt", value));
@@ -7577,7 +7577,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             answer =  ListWithDefault.newInstance(reverse(answer), self.isLazyDefaultValues(), self.getInitClosure());
         } else {
             // instead of using the SubList backed by the parent list, a new ArrayList instance is used
-            answer =  ListWithDefault.newInstance(new ArrayList<T>(answer), self.isLazyDefaultValues(), self.getInitClosure());
+            answer =  ListWithDefault.newInstance(new ArrayList<>(answer), self.isLazyDefaultValues(), self.getInitClosure());
         }
 
         return answer;
@@ -7595,7 +7595,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      *
      */
     public static <T> List<T> getAt(ListWithDefault<T> self, EmptyRange range) {
-        return ListWithDefault.newInstance(new ArrayList<T>(), self.isLazyDefaultValues(), self.getInitClosure());
+        return ListWithDefault.newInstance(new ArrayList<>(), self.isLazyDefaultValues(), self.getInitClosure());
     }
 
     /**
@@ -7625,7 +7625,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <T> List<T> getAt(List<T> self, Collection indices) {
-        List<T> answer = new ArrayList<T>(indices.size());
+        List<T> answer = new ArrayList<>(indices.size());
         for (Object value : indices) {
             if (value instanceof Range || value instanceof Collection) {
                 answer.addAll((List<T>)InvokerHelper.invokeMethod(self, "getAt", value));
@@ -7647,7 +7647,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <T> List<T> getAt(T[] self, Collection indices) {
-        List<T> answer = new ArrayList<T>(indices.size());
+        List<T> answer = new ArrayList<>(indices.size());
         for (Object value : indices) {
             if (value instanceof Range) {
                 answer.addAll(getAt(self, (Range) value));
@@ -7672,7 +7672,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <K, V> Map<K, V> subMap(Map<K, V> map, Collection<K> keys) {
-        Map<K, V> answer = new LinkedHashMap<K, V>(keys.size());
+        Map<K, V> answer = new LinkedHashMap<>(keys.size());
         for (K key : keys) {
             if (map.containsKey(key)) {
                 answer.put(key, map.get(key));
@@ -7698,7 +7698,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.1.0
      */
     public static <K, V> Map<K, V> subMap(Map<K, V> map, K[] keys) {
-        Map<K, V> answer = new LinkedHashMap<K, V>(keys.length);
+        Map<K, V> answer = new LinkedHashMap<>(keys.length);
         for (K key : keys) {
             if (map.containsKey(key)) {
                 answer.put(key, map.get(key));
@@ -7765,7 +7765,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.0
      */
     public static <T> List<T> getAt(T[] array, EmptyRange range) {
-        return new ArrayList<T>();
+        return new ArrayList<>();
     }
 
     /**
@@ -7793,7 +7793,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <T> List<T> toList(T[] array) {
-        return new ArrayList<T>(Arrays.asList(array));
+        return new ArrayList<>(Arrays.asList(array));
     }
 
     /**
@@ -8160,7 +8160,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static List getAt(Collection coll, String property) {
-        List<Object> answer = new ArrayList<Object>(coll.size());
+        List<Object> answer = new ArrayList<>(coll.size());
         return getAtIterable(coll, property, answer);
     }
 
@@ -8190,7 +8190,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <K, V> Map<K, V> asImmutable(Map<K, V> self) {
-        return asUnmodifiable(new LinkedHashMap<K, V>(self));
+        return asUnmodifiable(new LinkedHashMap<>(self));
     }
 
     /**
@@ -8203,7 +8203,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <K, V> SortedMap<K, V> asImmutable(SortedMap<K, V> self) {
-        return asUnmodifiable(new TreeMap<K, V>(self));
+        return asUnmodifiable(new TreeMap<>(self));
     }
 
     /**
@@ -8228,7 +8228,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <T> List<T> asImmutable(List<T> self) {
-        return asUnmodifiable(new ArrayList<T>(self));
+        return asUnmodifiable(new ArrayList<>(self));
     }
 
     /**
@@ -8241,7 +8241,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <T> Set<T> asImmutable(Set<T> self) {
-        return asUnmodifiable(new LinkedHashSet<T>(self));
+        return asUnmodifiable(new LinkedHashSet<>(self));
     }
 
     /**
@@ -8254,7 +8254,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static <T> SortedSet<T> asImmutable(SortedSet<T> self) {
-        return asUnmodifiable(new TreeSet<T>(self));
+        return asUnmodifiable(new TreeSet<>(self));
     }
 
     /**
@@ -8267,7 +8267,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.0
      */
     public static <T> Collection<T> asImmutable(Collection<T> self) {
-        return asUnmodifiable((Collection<T>) new ArrayList<T>(self));
+        return asUnmodifiable((Collection<T>) new ArrayList<>(self));
     }
 
     /**
@@ -8733,7 +8733,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <E> Map<Integer, E> indexed(Iterable<E> self, int offset) {
-        Map<Integer, E> result = new LinkedHashMap<Integer, E>();
+        Map<Integer, E> result = new LinkedHashMap<>();
         Iterator<Tuple2<Integer, E>> indexed = indexed(self.iterator(), offset);
         while (indexed.hasNext()) {
             Tuple2<Integer, E> next = indexed.next();
@@ -8794,7 +8794,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <E> Iterator<Tuple2<E, Integer>> withIndex(Iterator<E> self, int offset) {
-        return new ZipPostIterator<E>(self, offset);
+        return new ZipPostIterator<>(self, offset);
     }
 
     /**
@@ -8813,7 +8813,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <E> Iterator<Tuple2<Integer, E>> indexed(Iterator<E> self, int offset) {
-        return new ZipPreIterator<E>(self, offset);
+        return new ZipPreIterator<>(self, offset);
     }
 
     private static final class ZipPostIterator<E> implements Iterator<Tuple2<E, Integer>> {
@@ -8831,7 +8831,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
 
         public Tuple2<E, Integer> next() {
             if (!hasNext()) throw new NoSuchElementException();
-            return new Tuple2<E, Integer>(delegate.next(), index++);
+            return new Tuple2<>(delegate.next(), index++);
         }
 
         public void remove() {
@@ -8854,7 +8854,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
 
         public Tuple2<Integer, E> next() {
             if (!hasNext()) throw new NoSuchElementException();
-            return new Tuple2<Integer, E>(index++, delegate.next());
+            return new Tuple2<>(index++, delegate.next());
         }
 
         public void remove() {
@@ -8920,7 +8920,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> List<T> sort(Iterable<T> self, boolean mutate) {
         List<T> answer = mutate ? asList(self) : toList(self);
-        Collections.sort(answer, new NumberAwareComparator<T>());
+        Collections.sort(answer, new NumberAwareComparator<>());
         return answer;
     }
 
@@ -8937,7 +8937,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.6.0
      */
     public static <K, V> Map<K, V> sort(Map<K, V> self, @ClosureParams(value=FromString.class, options={"Map.Entry<K,V>","Map.Entry<K,V>,Map.Entry<K,V>"}) Closure closure) {
-        Map<K, V> result = new LinkedHashMap<K, V>();
+        Map<K, V> result = new LinkedHashMap<>();
         List<Map.Entry<K, V>> entries = asList((Iterable<Map.Entry<K, V>>) self.entrySet());
         sort((Iterable<Map.Entry<K, V>>) entries, closure);
         for (Map.Entry<K, V> entry : entries) {
@@ -8959,7 +8959,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.2
      */
     public static <K, V> Map<K, V> sort(Map<K, V> self, Comparator<? super K> comparator) {
-        Map<K, V> result = new TreeMap<K, V>(comparator);
+        Map<K, V> result = new TreeMap<>(comparator);
         result.putAll(self);
         return result;
     }
@@ -8977,7 +8977,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.2
      */
     public static <K, V> Map<K, V> sort(Map<K, V> self) {
-        return new TreeMap<K, V>(self);
+        return new TreeMap<>(self);
     }
 
     /**
@@ -8989,7 +8989,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.5
      */
     public static <T> T[] sort(T[] self) {
-        Arrays.sort(self, new NumberAwareComparator<T>());
+        Arrays.sort(self, new NumberAwareComparator<>());
         return self;
     }
 
@@ -9014,7 +9014,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> T[] sort(T[] self, boolean mutate) {
         T[] answer = mutate ? self : self.clone();
-        Arrays.sort(answer, new NumberAwareComparator<T>());
+        Arrays.sort(answer, new NumberAwareComparator<>());
         return answer;
     }
 
@@ -9282,9 +9282,9 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         // use a comparator of one item or two
         int params = closure.getMaximumNumberOfParameters();
         if (params == 1) {
-            Collections.sort(list, new OrderBy<T>(closure));
+            Collections.sort(list, new OrderBy<>(closure));
         } else {
-            Collections.sort(list, new ClosureComparator<T>(closure));
+            Collections.sort(list, new ClosureComparator<>(closure));
         }
         return list;
     }
@@ -9330,7 +9330,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <T> List<T> toSorted(Iterable<T> self) {
-        return toSorted(self, new NumberAwareComparator<T>());
+        return toSorted(self, new NumberAwareComparator<>());
     }
 
     /**
@@ -9376,7 +9376,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <T> List<T> toSorted(Iterable<T> self, @ClosureParams(value=FromString.class, options={"T","T,T"}) Closure closure) {
-        Comparator<T> comparator = (closure.getMaximumNumberOfParameters() == 1) ? new OrderBy<T>(closure) : new ClosureComparator<T>(closure);
+        Comparator<T> comparator = (closure.getMaximumNumberOfParameters() == 1) ? new OrderBy<>(closure) : new ClosureComparator<>(closure);
         return toSorted(self, comparator);
     }
 
@@ -9393,7 +9393,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <T> Iterator<T> toSorted(Iterator<T> self) {
-        return toSorted(self, new NumberAwareComparator<T>());
+        return toSorted(self, new NumberAwareComparator<>());
     }
 
     /**
@@ -9428,7 +9428,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <T> Iterator<T> toSorted(Iterator<T> self, @ClosureParams(value=FromString.class, options={"T","T,T"}) Closure closure) {
-        Comparator<T> comparator = (closure.getMaximumNumberOfParameters() == 1) ? new OrderBy<T>(closure) : new ClosureComparator<T>(closure);
+        Comparator<T> comparator = (closure.getMaximumNumberOfParameters() == 1) ? new OrderBy<>(closure) : new ClosureComparator<>(closure);
         return toSorted(self, comparator);
     }
 
@@ -9441,7 +9441,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <T> T[] toSorted(T[] self) {
-        return toSorted(self, new NumberAwareComparator<T>());
+        return toSorted(self, new NumberAwareComparator<>());
     }
 
     /**
@@ -9482,7 +9482,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <T> T[] toSorted(T[] self, @ClosureParams(value=FromString.class, options={"T","T,T"}) Closure condition) {
-        Comparator<T> comparator = (condition.getMaximumNumberOfParameters() == 1) ? new OrderBy<T>(condition) : new ClosureComparator<T>(condition);
+        Comparator<T> comparator = (condition.getMaximumNumberOfParameters() == 1) ? new OrderBy<>(condition) : new ClosureComparator<>(condition);
         return toSorted(self, comparator);
     }
 
@@ -9501,11 +9501,11 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <K, V> Map<K, V> toSorted(Map<K, V> self) {
-        return toSorted(self, new NumberAwareValueComparator<K, V>());
+        return toSorted(self, new NumberAwareValueComparator<>());
     }
 
     private static class NumberAwareValueComparator<K, V> implements Comparator<Map.Entry<K, V>> {
-        private final Comparator<V> delegate = new NumberAwareComparator<V>();
+        private final Comparator<V> delegate = new NumberAwareComparator<>();
 
         @Override
         public int compare(Map.Entry<K, V> e1, Map.Entry<K, V> e2) {
@@ -9532,7 +9532,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <K, V> Map<K, V> toSorted(Map<K, V> self, Comparator<Map.Entry<K, V>> comparator) {
         List<Map.Entry<K, V>> sortedEntries = toSorted(self.entrySet(), comparator);
-        Map<K, V> result = new LinkedHashMap<K, V>();
+        Map<K, V> result = new LinkedHashMap<>();
         for (Map.Entry<K, V> entry : sortedEntries) {
             result.put(entry.getKey(), entry.getValue());
         }
@@ -9559,7 +9559,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <K, V> Map<K, V> toSorted(Map<K, V> self, @ClosureParams(value=FromString.class, options={"Map.Entry<K,V>","Map.Entry<K,V>,Map.Entry<K,V>"}) Closure condition) {
-        Comparator<Map.Entry<K,V>> comparator = (condition.getMaximumNumberOfParameters() == 1) ? new OrderBy<Map.Entry<K,V>>(condition) : new ClosureComparator<Map.Entry<K,V>>(condition);
+        Comparator<Map.Entry<K,V>> comparator = (condition.getMaximumNumberOfParameters() == 1) ? new OrderBy<>(condition) : new ClosureComparator<>(condition);
         return toSorted(self, comparator);
     }
 
@@ -9571,7 +9571,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <T> Set<T> toSorted(SortedSet<T> self) {
-        return new LinkedHashSet<T>(self);
+        return new LinkedHashSet<>(self);
     }
 
     /**
@@ -9582,7 +9582,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.0
      */
     public static <K, V> Map<K, V> toSorted(SortedMap<K, V> self) {
-        return new LinkedHashMap<K, V>(self);
+        return new LinkedHashMap<>(self);
     }
 
     /**
@@ -10026,7 +10026,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             Collection<T> selfCol = (Collection<T>) self;
             result = createSimilarCollection(selfCol, selfCol.size() - 1);
         } else {
-            result = new ArrayList<T>();
+            result = new ArrayList<>();
         }
         addAll(result, init(self.iterator()));
         return result;
@@ -10083,7 +10083,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         if (!self.hasNext()) {
             throw new NoSuchElementException("Cannot access init() for an empty Iterator");
         }
-        return new InitIterator<T>(self);
+        return new InitIterator<>(self);
     }
 
     private static final class InitIterator<E> implements Iterator<E> {
@@ -10235,7 +10235,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.7
      */
     public static <T> Collection<T> take(Iterable<T> self, int num) {
-        Collection<T> result = self instanceof Collection ? createSimilarCollection((Collection<T>) self, num < 0 ? 0 : num) : new ArrayList<T>();
+        Collection<T> result = self instanceof Collection ? createSimilarCollection((Collection<T>) self, num < 0 ? 0 : num) : new ArrayList<>();
         addAll(result, take(self.iterator(), num));
         return result;
     }
@@ -10325,7 +10325,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.1
      */
     public static <T> Iterator<T> take(Iterator<T> self, int num) {
-        return new TakeIterator<T>(self, num);
+        return new TakeIterator<>(self, num);
     }
 
     private static final class TakeIterator<E> implements Iterator<E> {
@@ -10414,7 +10414,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> Collection<T> takeRight(Iterable<T> self, int num) {
         if (num <= 0 || !self.iterator().hasNext()) {
-            return self instanceof Collection ? createSimilarCollection((Collection<T>) self, 0) : new ArrayList<T>();
+            return self instanceof Collection ? createSimilarCollection((Collection<T>) self, 0) : new ArrayList<>();
         }
         Collection<T> selfCol = self instanceof Collection ? (Collection<T>) self : toList(self);
         if (selfCol.size() <= num) {
@@ -10729,7 +10729,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         if (num <= 0) {
             return self;
         }
-        return new DropRightIterator<T>(self, num);
+        return new DropRightIterator<>(self, num);
     }
 
     private static final class DropRightIterator<E> implements Iterator<E> {
@@ -10741,7 +10741,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         private DropRightIterator(Iterator<E> delegate, int num) {
             this.delegate = delegate;
             this.num = num;
-            discards = new LinkedList<E>();
+            discards = new LinkedList<>();
             advance();
         }
 
@@ -10967,7 +10967,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.7
      */
     public static <T> Iterator<T> takeWhile(Iterator<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure condition) {
-        return new TakeWhileIterator<T>(self, condition);
+        return new TakeWhileIterator<>(self, condition);
     }
 
     private static final class TakeWhileIterator<E> implements Iterator<E> {
@@ -11175,7 +11175,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.7
      */
     public static <T> Iterator<T> dropWhile(Iterator<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<?> condition) {
-        return new DropWhileIterator<T>(self, condition);
+        return new DropWhileIterator<>(self, condition);
     }
 
     private static final class DropWhileIterator<E> implements Iterator<E> {
@@ -11806,7 +11806,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             return self;
         }
         int size = self.size();
-        List<T> answer = new ArrayList<T>(size);
+        List<T> answer = new ArrayList<>(size);
         ListIterator<T> iter = self.listIterator(size);
         while (iter.hasPrevious()) {
             answer.add(iter.previous());
@@ -11839,7 +11839,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     @SuppressWarnings("unchecked")
     public static <T> T[] reverse(T[] self, boolean mutate) {
         if (!mutate) {
-            return (T[]) toList(new ReverseListIterator<T>(Arrays.asList(self))).toArray();
+            return (T[]) toList(new ReverseListIterator<>(Arrays.asList(self))).toArray();
         }
         List<T> items = Arrays.asList(self);
         Collections.reverse(items);
@@ -11857,7 +11857,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.5
      */
     public static <T> Iterator<T> reverse(Iterator<T> self) {
-        return new ReverseListIterator<T>(toList(self));
+        return new ReverseListIterator<>(toList(self));
     }
 
     /**
@@ -12134,7 +12134,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.1
      */
     public static <T> List<T> plus(List<T> self, int index, List<T> additions) {
-        final List<T> answer = new ArrayList<T>(self);
+        final List<T> answer = new ArrayList<>(self);
         answer.addAll(index, additions);
         return answer;
     }
@@ -12332,7 +12332,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
 
         Collection<T> result = createSimilarCollection(left, Math.min(left.size(), right.size()));
         //creates the collection to look for values.
-        Collection<T> pickFrom = new TreeSet<T>(comparator);
+        Collection<T> pickFrom = new TreeSet<>(comparator);
         pickFrom.addAll(left);
 
         for (final T t : right) {
@@ -12586,10 +12586,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.2
      */
     public static <T> List<List<T>> chop(Iterator<T> self, int... chopSizes) {
-        List<List<T>> result = new ArrayList<List<T>>();
+        List<List<T>> result = new ArrayList<>();
         for (Integer nextSize : chopSizes) {
             int size = nextSize;
-            List<T> next = new ArrayList<T>();
+            List<T> next = new ArrayList<>();
             while (size-- != 0 && self.hasNext()) {
                 next.add(self.next());
             }
@@ -12767,7 +12767,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             return false;
         }
         final Iterator<T> it1 = self.iterator();
-        Collection<T> otherItems = new HashSet<T>(other);
+        Collection<T> otherItems = new HashSet<>(other);
         while (it1.hasNext()) {
             final Object o1 = it1.next();
             final Iterator<T> it2 = otherItems.iterator();
@@ -12984,13 +12984,13 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         // since AbstractCollection only does a remove on the first
         // element it encounters.
 
-        Comparator<T> numberComparator = new NumberAwareComparator<T>();
+        Comparator<T> numberComparator = new NumberAwareComparator<>();
 
         if (nlgnSort && (head instanceof Comparable)) {
             //n*LOG(n) version
             Set<T> answer;
             if (Number.class.isInstance(head)) {
-                answer = new TreeSet<T>(numberComparator);
+                answer = new TreeSet<>(numberComparator);
                 answer.addAll(self);
                 for (T t : self) {
                     if (Number.class.isInstance(t)) {
@@ -13006,7 +13006,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
                     }
                 }
             } else {
-                answer = new TreeSet<T>(numberComparator);
+                answer = new TreeSet<>(numberComparator);
                 answer.addAll(self);
                 answer.removeAll(removeMe);
             }
@@ -13017,7 +13017,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             }
         } else {
             //n*n version
-            List<T> tmpAnswer = new LinkedList<T>(self);
+            List<T> tmpAnswer = new LinkedList<>(self);
             for (Iterator<T> iter = tmpAnswer.iterator(); iter.hasNext();) {
                 T element = iter.next();
                 boolean elementRemoved = false;
@@ -14418,7 +14418,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.0
      */
     public static <T> Set<T> toSet(Collection<T> self) {
-        Set<T> answer = new HashSet<T>(self.size());
+        Set<T> answer = new HashSet<>(self.size());
         answer.addAll(self);
         return answer;
     }
@@ -14451,7 +14451,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.0
      */
     public static <T> Set<T> toSet(Iterator<T> self) {
-        Set<T> answer = new HashSet<T>();
+        Set<T> answer = new HashSet<>();
         while (self.hasNext()) {
             answer.add(self.next());
         }
@@ -14466,7 +14466,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.0
      */
     public static <T> Set<T> toSet(Enumeration<T> self) {
-        Set<T> answer = new HashSet<T>();
+        Set<T> answer = new HashSet<>();
         while (self.hasMoreElements()) {
             answer.add(self.nextElement());
         }
@@ -16740,7 +16740,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T> int findIndexOf(T[] self, int startIndex, @ClosureParams(FirstParam.Component.class) Closure condition) {
-        return findIndexOf(new ArrayIterator<T>(self), startIndex, condition);
+        return findIndexOf(new ArrayIterator<>(self), startIndex, condition);
     }
 
     /**
@@ -16849,7 +16849,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T> int findLastIndexOf(T[] self, @ClosureParams(FirstParam.Component.class) Closure condition) {
-        return findLastIndexOf(new ArrayIterator<T>(self), 0, condition);
+        return findLastIndexOf(new ArrayIterator<>(self), 0, condition);
     }
 
     /**
@@ -16865,7 +16865,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> int findLastIndexOf(T[] self, int startIndex, @ClosureParams(FirstParam.Component.class) Closure condition) {
         // TODO could be made more efficient by using a reverse index
-        return findLastIndexOf(new ArrayIterator<T>(self), startIndex, condition);
+        return findLastIndexOf(new ArrayIterator<>(self), startIndex, condition);
     }
 
     /**
@@ -16921,7 +16921,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T> List<Number> findIndexValues(Iterator<T> self, Number startIndex, @ClosureParams(FirstParam.FirstGenericType.class) Closure condition) {
-        List<Number> result = new ArrayList<Number>();
+        List<Number> result = new ArrayList<>();
         long count = 0;
         long startCount = startIndex.longValue();
         BooleanClosureWrapper bcw = new BooleanClosureWrapper(condition);
@@ -16990,7 +16990,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T> List<Number> findIndexValues(T[] self, Number startIndex, @ClosureParams(FirstParam.Component.class) Closure condition) {
-        return findIndexValues(new ArrayIterator<T>(self), startIndex, condition);
+        return findIndexValues(new ArrayIterator<>(self), startIndex, condition);
     }
 
     /**
@@ -17053,7 +17053,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             }
             if (type.isInterface()) {
                 try {
-                    List<Class> interfaces = new ArrayList<Class>();
+                    List<Class> interfaces = new ArrayList<>();
                     interfaces.add(type);
                     return (T) ProxyGenerator.INSTANCE.instantiateDelegate(interfaces, obj);
                 } catch (GroovyRuntimeException cause) {
@@ -17449,7 +17449,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
         if (self instanceof BufferedIterator) {
             return (BufferedIterator<T>) self;
         } else {
-            return new IteratorBufferedIterator<T>(self);
+            return new IteratorBufferedIterator<>(self);
         }
     }
 
@@ -17465,7 +17465,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T> BufferedIterator<T> bufferedIterator(Iterable<T> self) {
-        return new IteratorBufferedIterator<T>(self.iterator());
+        return new IteratorBufferedIterator<>(self.iterator());
     }
 
     /**
@@ -17480,7 +17480,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <T> BufferedIterator<T> bufferedIterator(List<T> self) {
-        return new ListBufferedIterator<T>(self);
+        return new ListBufferedIterator<>(self);
     }
 
     /**
@@ -17548,7 +17548,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @return a proxy implementing the trait interfaces
      */
     public static Object withTraits(Object self, Class<?>... traits) {
-        List<Class> interfaces = new ArrayList<Class>();
+        List<Class> interfaces = new ArrayList<>();
         Collections.addAll(interfaces, traits);
         return ProxyGenerator.INSTANCE.instantiateDelegate(interfaces, self);
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport.java
index 3838fdc..76aa1a3 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport.java
@@ -192,7 +192,7 @@ public class DefaultGroovyMethodsSupport {
         if (iterable instanceof Collection) {
             return createSimilarCollection((Collection<T>) iterable);
         } else {
-            return new ArrayList<T>();
+            return new ArrayList<>();
         }
     }
 
@@ -210,23 +210,23 @@ public class DefaultGroovyMethodsSupport {
         if (orig instanceof Queue) {
             return createSimilarQueue((Queue<T>) orig);
         }
-        return new ArrayList<T>(newCapacity);
+        return new ArrayList<>(newCapacity);
     }
 
     protected static <T> List<T> createSimilarList(List<T> orig, int newCapacity) {
         if (orig instanceof LinkedList)
-            return new LinkedList<T>();
+            return new LinkedList<>();
 
         if (orig instanceof Stack)
-            return new Stack<T>();
+            return new Stack<>();
 
         if (orig instanceof Vector)
-            return new Vector<T>();
+            return new Vector<>();
 
         if (orig instanceof CopyOnWriteArrayList)
-            return new CopyOnWriteArrayList<T>();
+            return new CopyOnWriteArrayList<>();
 
-        return new ArrayList<T>(newCapacity);
+        return new ArrayList<>(newCapacity);
     }
 
     @SuppressWarnings("unchecked")
@@ -246,10 +246,10 @@ public class DefaultGroovyMethodsSupport {
             }
         } else {
             if (orig instanceof CopyOnWriteArraySet) {
-                return new CopyOnWriteArraySet<T>();
+                return new CopyOnWriteArraySet<>();
             } else {
                 // Do not use HashSet
-                return new LinkedHashSet<T>();
+                return new LinkedHashSet<>();
             }
         }
     }
@@ -258,25 +258,25 @@ public class DefaultGroovyMethodsSupport {
     protected static <T> Queue<T> createSimilarQueue(Queue<T> orig) {
         if (orig instanceof ArrayBlockingQueue) {
             ArrayBlockingQueue queue = (ArrayBlockingQueue) orig;
-            return new ArrayBlockingQueue<T>(queue.size() + queue.remainingCapacity());
+            return new ArrayBlockingQueue<>(queue.size() + queue.remainingCapacity());
         } else if (orig instanceof ArrayDeque) {
-            return new ArrayDeque<T>();
+            return new ArrayDeque<>();
         } else if (orig instanceof ConcurrentLinkedQueue) {
-            return new ConcurrentLinkedQueue<T>();
+            return new ConcurrentLinkedQueue<>();
         } else if (orig instanceof DelayQueue) {
             return new DelayQueue();
         } else if (orig instanceof LinkedBlockingDeque) {
-            return new LinkedBlockingDeque<T>();
+            return new LinkedBlockingDeque<>();
         } else if (orig instanceof LinkedBlockingQueue) {
-            return new LinkedBlockingQueue<T>();
+            return new LinkedBlockingQueue<>();
         } else if (orig instanceof PriorityBlockingQueue) {
-            return new PriorityBlockingQueue<T>();
+            return new PriorityBlockingQueue<>();
         } else if (orig instanceof PriorityQueue) {
             return new PriorityQueue<T>(11, ((PriorityQueue) orig).comparator());
         } else if (orig instanceof SynchronousQueue) {
-            return new SynchronousQueue<T>();
+            return new SynchronousQueue<>();
         } else {
-            return new LinkedList<T>();
+            return new LinkedList<>();
         }
     }
 
@@ -291,20 +291,20 @@ public class DefaultGroovyMethodsSupport {
             }
         } else {
             if (orig instanceof ConcurrentHashMap) {
-                return new ConcurrentHashMap<K, V>();
+                return new ConcurrentHashMap<>();
             } else if (orig instanceof Hashtable) {
                 if (orig instanceof Properties) {
                     return (Map<K, V>) new Properties();
                 } else {
-                    return new Hashtable<K, V>();
+                    return new Hashtable<>();
                 }
             } else if (orig instanceof IdentityHashMap) {
-                return new IdentityHashMap<K, V>();
+                return new IdentityHashMap<>();
             } else if (orig instanceof WeakHashMap) {
-                return new WeakHashMap<K, V>();
+                return new WeakHashMap<>();
             } else {
                 // Do not use HashMap
-                return new LinkedHashMap<K, V>();
+                return new LinkedHashMap<>();
             }
         }
     }
@@ -317,28 +317,28 @@ public class DefaultGroovyMethodsSupport {
         // fall back to some defaults
         if (orig instanceof SortedMap) {
             if (orig instanceof ConcurrentSkipListMap) {
-                return new ConcurrentSkipListMap<K, V>(orig);
+                return new ConcurrentSkipListMap<>(orig);
             } else {
-                return new TreeMap<K, V>(orig);
+                return new TreeMap<>(orig);
             }
         } else {
             if (orig instanceof ConcurrentHashMap) {
-                return new ConcurrentHashMap<K, V>(orig);
+                return new ConcurrentHashMap<>(orig);
             } else if (orig instanceof Hashtable) {
                 if (orig instanceof Properties) {
                     Map<K, V> map = (Map<K, V>) new Properties();
                     map.putAll(orig);
                     return map;
                 } else {
-                    return new Hashtable<K, V>(orig);
+                    return new Hashtable<>(orig);
                 }
             } else if (orig instanceof IdentityHashMap) {
-                return new IdentityHashMap<K, V>(orig);
+                return new IdentityHashMap<>(orig);
             } else if (orig instanceof WeakHashMap) {
-                return new WeakHashMap<K, V>(orig);
+                return new WeakHashMap<>(orig);
             } else {
                 // Do not use HashMap
-                return new LinkedHashMap<K, V>(orig);
+                return new LinkedHashMap<>(orig);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/GroovyCategorySupport.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/GroovyCategorySupport.java b/src/main/java/org/codehaus/groovy/runtime/GroovyCategorySupport.java
index 8843f11..6bcbfd6 100644
--- a/src/main/java/org/codehaus/groovy/runtime/GroovyCategorySupport.java
+++ b/src/main/java/org/codehaus/groovy/runtime/GroovyCategorySupport.java
@@ -174,7 +174,7 @@ public class GroovyCategorySupport {
         // Precondition: accessorName.length() > prefixLength
         private Map<String, String> putPropertyAccessor(int prefixLength, String accessorName, Map<String, String> map) {
             if (map == null) {
-              map = new HashMap<String, String>();
+              map = new HashMap<>();
             }
             String property = accessorName.substring(prefixLength, prefixLength+1).toLowerCase() + accessorName.substring(prefixLength+1);
             map.put(property, accessorName);
@@ -183,7 +183,7 @@ public class GroovyCategorySupport {
 
         private void use(Class categoryClass) {
             CachedClass cachedClass = ReflectionCache.getCachedClass(categoryClass);
-            LinkedList<CachedClass> classStack = new LinkedList<CachedClass>();
+            LinkedList<CachedClass> classStack = new LinkedList<>();
             for (CachedClass superClass = cachedClass; superClass.getTheClass()!=Object.class; superClass = superClass.getCachedSuperClass()) {
                 classStack.add(superClass);
             }
@@ -327,7 +327,7 @@ public class GroovyCategorySupport {
 
     private static class MyThreadLocal extends ThreadLocal<SoftReference> {
 
-        final ConcurrentHashMap<String,AtomicInteger> usage = new ConcurrentHashMap<String,AtomicInteger> ();
+        final ConcurrentHashMap<String,AtomicInteger> usage = new ConcurrentHashMap<>();
 
         public ThreadCategoryInfo getInfo() {
             final SoftReference reference = get();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
index f65c85f..6bf3280 100644
--- a/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
@@ -800,7 +800,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static List<String> readLines(Reader reader) throws IOException {
-        IteratorClosureAdapter<String> closure = new IteratorClosureAdapter<String>(reader);
+        IteratorClosureAdapter<String> closure = new IteratorClosureAdapter<>(reader);
         eachLine(reader, closure);
         return closure.asList();
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
index c876f43..05e8837 100644
--- a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
@@ -784,8 +784,8 @@ public class InvokerHelper {
         return argBuf.toString();
     }
 
-    private static Set<String> DEFAULT_IMPORT_PKGS = new HashSet<String>();
-    private static Set<String> DEFAULT_IMPORT_CLASSES = new HashSet<String>();
+    private static Set<String> DEFAULT_IMPORT_PKGS = new HashSet<>();
+    private static Set<String> DEFAULT_IMPORT_CLASSES = new HashSet<>();
     static {
         for (String pkgName : ResolveVisitor.DEFAULT_IMPORTS) {
             DEFAULT_IMPORT_PKGS.add(pkgName.substring(0, pkgName.length() - 1));

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/IteratorClosureAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/IteratorClosureAdapter.java b/src/main/java/org/codehaus/groovy/runtime/IteratorClosureAdapter.java
index ea08d2f..77b1d60 100644
--- a/src/main/java/org/codehaus/groovy/runtime/IteratorClosureAdapter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/IteratorClosureAdapter.java
@@ -31,7 +31,7 @@ import java.util.List;
 public class IteratorClosureAdapter<T> extends Closure {
 
     private static final long serialVersionUID = -7485077849389539770L;
-    private final List<T> list = new ArrayList<T>();
+    private final List<T> list = new ArrayList<>();
     private MetaClass metaClass = InvokerHelper.getMetaClass(getClass());
     
     public IteratorClosureAdapter(Object delegate) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
index f2ae80a..fb4a5ba 100644
--- a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
@@ -650,7 +650,7 @@ public class MetaClassHelper {
             for (int i = offset; i < arguments.length; i++) {
                 if (arguments[i] != null) {
                     Class tmpClass;
-                    Set<Class> intfs = new HashSet<Class>();
+                    Set<Class> intfs = new HashSet<>();
                     tmpClass = arguments[i].getClass();
                     for (; tmpClass != Object.class; tmpClass = tmpClass.getSuperclass()) {
                         intfs.addAll(Arrays.asList(tmpClass.getInterfaces()));

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/MethodRankHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/MethodRankHelper.java b/src/main/java/org/codehaus/groovy/runtime/MethodRankHelper.java
index 689245c..9baedaf 100644
--- a/src/main/java/org/codehaus/groovy/runtime/MethodRankHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/MethodRankHelper.java
@@ -73,7 +73,7 @@ public class MethodRankHelper{
      */
     public static String getMethodSuggestionString(String methodName, Class type, Object[] arguments){
         ClassInfo ci = ClassInfo.getClassInfo(type);
-        List<MetaMethod> methods = new ArrayList<MetaMethod>(ci.getMetaClass().getMethods());
+        List<MetaMethod> methods = new ArrayList<>(ci.getMetaClass().getMethods());
         methods.addAll(ci.getMetaClass().getMetaMethods());
         List<MetaMethod> sugg = rankMethods(methodName,arguments,methods);
         StringBuilder sb = new StringBuilder();
@@ -111,8 +111,8 @@ public class MethodRankHelper{
     }
     
     private static List<Pair<Class,Class>> getConflictClasses(List<MetaMethod> sugg, Class[] argumentClasses) {
-        List<Pair<Class,Class>> ret = new LinkedList<Pair<Class,Class>>();
-        Set<Class> recordedClasses = new HashSet<Class>();
+        List<Pair<Class,Class>> ret = new LinkedList<>();
+        Set<Class> recordedClasses = new HashSet<>();
         for (MetaMethod method : sugg) {
             Class[] para = method.getNativeParameterTypes();
             for (Class aPara : para) {
@@ -121,7 +121,7 @@ public class MethodRankHelper{
                     if (argumentClass == null) continue;
                     if (argumentClass == aPara) continue;
                     if (argumentClass.getName().equals(aPara.getName())) {
-                        ret.add(new Pair<Class, Class>(argumentClass, aPara));
+                        ret.add(new Pair<>(argumentClass, aPara));
                     }
                 }
                 recordedClasses.add(aPara);
@@ -176,7 +176,7 @@ public class MethodRankHelper{
     public static String getPropertySuggestionString(String fieldName, Class type){
         ClassInfo ci = ClassInfo.getClassInfo(type);
         List<MetaProperty>  fi = ci.getMetaClass().getProperties();
-        List<RankableField> rf = new ArrayList<RankableField>(fi.size());
+        List<RankableField> rf = new ArrayList<>(fi.size());
         StringBuilder sb = new StringBuilder();
         sb.append("\nPossible solutions: ");
         
@@ -229,7 +229,7 @@ public class MethodRankHelper{
      * @return a sorted lists of Methods
      */
     private static List<MetaMethod> rankMethods(String name, Object[] original, List<MetaMethod> methods) {
-        List<RankableMethod> rm = new ArrayList<RankableMethod>(methods.size());
+        List<RankableMethod> rm = new ArrayList<>(methods.size());
         if (original==null) original = EMPTY_OBJECT_ARRAY;
         Class[] ta = new Class[original.length];
     
@@ -244,7 +244,7 @@ public class MethodRankHelper{
         }
         Collections.sort(rm);
         
-        List<MetaMethod> l =  new ArrayList<MetaMethod>(rm.size());
+        List<MetaMethod> l = new ArrayList<>(rm.size());
         for (RankableMethod m : rm) {
             if (l.size() > MAX_RECOMENDATIONS) break;
             if (m.score > MAX_METHOD_SCORE) break;
@@ -304,7 +304,7 @@ public class MethodRankHelper{
             rc[i] = new RankableConstructor(ta, candidates[i]);
         }
         Arrays.sort(rc);
-        List<Constructor> l = new ArrayList<Constructor>();
+        List<Constructor> l = new ArrayList<>();
         int index = 0;
         while (l.size() < MAX_RECOMENDATIONS && index < rc.length && rc[index].score < MAX_CONSTRUCTOR_SCORE) {
             l.add(rc[index].c);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java b/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
index 3c709d5..c554cab 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
@@ -90,19 +90,19 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
 
     private static final String CLOSURES_MAP_FIELD = "$closures$delegate$map";
     private static final String DELEGATE_OBJECT_FIELD = "$delegate";
-    private static List<Method> OBJECT_METHODS = getInheritedMethods(Object.class, new ArrayList<Method>());
-    private static List<Method> GROOVYOBJECT_METHODS = getInheritedMethods(GroovyObject.class, new ArrayList<Method>());
+    private static List<Method> OBJECT_METHODS = getInheritedMethods(Object.class, new ArrayList<>());
+    private static List<Method> GROOVYOBJECT_METHODS = getInheritedMethods(GroovyObject.class, new ArrayList<>());
 
     private static final AtomicLong pxyCounter = new AtomicLong();
     private static final Set<String> GROOVYOBJECT_METHOD_NAMESS;
     private static final Object[] EMPTY_ARGS = new Object[0];
 
     static {
-        List<String> names = new ArrayList<String>();
+        List<String> names = new ArrayList<>();
         for (Method method : GroovyObject.class.getMethods()) {
             names.add(method.getName());
         }
-        GROOVYOBJECT_METHOD_NAMESS = new HashSet<String>(names);
+        GROOVYOBJECT_METHOD_NAMESS = new HashSet<>(names);
     }
 
     private final Class superClass;
@@ -145,8 +145,8 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
             final Class delegateClass) {
         super(CompilerConfiguration.ASM_API_VERSION, new ClassWriter(0));
         this.loader = proxyLoader != null ? createInnerLoader(proxyLoader, interfaces) : findClassLoader(superClass, interfaces);
-        this.visitedMethods = new LinkedHashSet<Object>();
-        this.delegatedClosures = closureMap.isEmpty() ? EMPTY_DELEGATECLOSURE_MAP : new HashMap<String, Boolean>();
+        this.visitedMethods = new LinkedHashSet<>();
+        this.delegatedClosures = closureMap.isEmpty() ? EMPTY_DELEGATECLOSURE_MAP : new HashMap<>();
         boolean wildcard = false;
         for (Map.Entry<Object, Object> entry : closureMap.entrySet()) {
             String name = entry.getKey().toString();
@@ -170,7 +170,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
         this.superClass = fixedSuperClass;
 
         // create the base list of classes which have possible methods to be overloaded
-        this.classList = new LinkedHashSet<Class>();
+        this.classList = new LinkedHashSet<>();
         this.classList.add(superClass);
         if (generateDelegateField) {
             classList.add(delegateClass);
@@ -205,7 +205,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
             return superClass;
         }
         Class result = Object.class;
-        Set<ClassNode> traits = new LinkedHashSet<ClassNode>();
+        Set<ClassNode> traits = new LinkedHashSet<>();
         // check if it's a trait
         collectTraits(superClass, traits);
         if (interfaces != null) {
@@ -239,7 +239,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
         if (annotation != null) {
             ClassNode trait = ClassHelper.make(clazz);
             traits.add(trait.getPlainNodeReference());
-            LinkedHashSet<ClassNode> selfTypes = new LinkedHashSet<ClassNode>();
+            LinkedHashSet<ClassNode> selfTypes = new LinkedHashSet<>();
             Traits.collectSelfTypes(trait, selfTypes, true, true);
             for (ClassNode selfType : selfTypes) {
                 if (Traits.isTrait(selfType)) {
@@ -264,9 +264,9 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
     }
 
     private static Set<String> createDelegateMethodList(Class superClass, Class delegateClass, Class[] interfaces) {
-        Set<String> selectedMethods = new HashSet<String>();
-        List<Method> interfaceMethods = new ArrayList<Method>();
-        List<Method> superClassMethods = new ArrayList<Method>();
+        Set<String> selectedMethods = new HashSet<>();
+        List<Method> interfaceMethods = new ArrayList<>();
+        List<Method> superClassMethods = new ArrayList<>();
         Collections.addAll(superClassMethods, superClass.getDeclaredMethods());
         if (interfaces != null) {
             for (Class thisInterface : interfaces) {
@@ -278,7 +278,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
                 }
             }
         }
-        List<Method> additionalMethods = getInheritedMethods(delegateClass, new ArrayList<Method>());
+        List<Method> additionalMethods = getInheritedMethods(delegateClass, new ArrayList<>());
         for (Method method : additionalMethods) {
             if (method.getName().indexOf('$') != -1)
                 continue;
@@ -330,7 +330,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
 
     @Override
     public void visit(final int version, final int access, final String name, final String signature, final String superName, final String[] interfaces) {
-        Set<String> interfacesSet = new LinkedHashSet<String>();
+        Set<String> interfacesSet = new LinkedHashSet<>();
         if (interfaces != null) Collections.addAll(interfacesSet, interfaces);
         for (Class extraInterface : classList) {
             if (extraInterface.isInterface()) interfacesSet.add(BytecodeHelper.getClassInternalName(extraInterface));
@@ -889,7 +889,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
                 for (Class c : interfaces) {
                     if (c.getClassLoader() != parent) {
                         if (internalClassLoaders == null)
-                            internalClassLoaders = new ArrayList<ClassLoader>(interfaces.length);
+                            internalClassLoaders = new ArrayList<>(interfaces.length);
                         if (!internalClassLoaders.contains(c.getClassLoader())) {
                             internalClassLoaders.add(c.getClassLoader());
                         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
index a47adab..f262889 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
@@ -1423,7 +1423,7 @@ public class ResourceGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static void traverse(final File self, @ClosureParams(value=SimpleType.class, options="java.io.File") final Closure closure)
             throws FileNotFoundException, IllegalArgumentException {
-        traverse(self, new HashMap<String, Object>(), closure);
+        traverse(self, new HashMap<>(), closure);
     }
 
     /**
@@ -1709,7 +1709,7 @@ public class ResourceGroovyMethods extends DefaultGroovyMethodsSupport {
             same++;
         }
 
-        List<String> relativePathStack = new ArrayList<String>();
+        List<String> relativePathStack = new ArrayList<>();
 
         // if "from" part is longer, fill it up with ".."
         // to reach path which is equal to both paths

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/StackTraceUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/StackTraceUtils.java b/src/main/java/org/codehaus/groovy/runtime/StackTraceUtils.java
index fc34ccd..13556c0 100644
--- a/src/main/java/org/codehaus/groovy/runtime/StackTraceUtils.java
+++ b/src/main/java/org/codehaus/groovy/runtime/StackTraceUtils.java
@@ -68,7 +68,7 @@ public class StackTraceUtils {
                             "gjdk.groovy.,"
             ).split("(\\s|,)+");
 
-    private static final List<Closure> tests = new ArrayList<Closure>();
+    private static final List<Closure> tests = new ArrayList<>();
 
     /**
      * Adds a groovy.lang.Closure to test whether the stack trace
@@ -103,7 +103,7 @@ public class StackTraceUtils {
         // Note that this getBoolean access may well be synced...
         if (!SystemUtil.getBooleanSafe("groovy.full.stacktrace")) {
             StackTraceElement[] trace = t.getStackTrace();
-            List<StackTraceElement> newTrace = new ArrayList<StackTraceElement>();
+            List<StackTraceElement> newTrace = new ArrayList<>();
             for (StackTraceElement stackTraceElement : trace) {
                 if (isApplicationClass(stackTraceElement.getClassName())) {
                     newTrace.add(stackTraceElement);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
index 35d9ab6..194de39 100644
--- a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
@@ -1151,7 +1151,7 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
     public static List<String> findAll(CharSequence self, Pattern pattern) {
         Matcher matcher = pattern.matcher(self.toString());
         boolean hasGroup = hasGroup(matcher);
-        List<String> list = new ArrayList<String>();
+        List<String> list = new ArrayList<>();
         for (Iterator iter = iterator(matcher); iter.hasNext();) {
             if (hasGroup) {
                 list.add((String) ((List) iter.next()).get(0));
@@ -1159,7 +1159,7 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
                 list.add((String) iter.next());
             }
         }
-        return new ArrayList<String>(list);
+        return new ArrayList<>(list);
     }
 
     /**
@@ -1596,7 +1596,7 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
         }
 
         int count = matcher.groupCount();
-        List<String> groups = new ArrayList<String>();
+        List<String> groups = new ArrayList<>();
         for (int i = 0; i <= count; i++) {
             groups.add(matcher.group(i));
         }
@@ -1933,7 +1933,7 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
                 if (hasGroup(matcher)) {
                     // are we using groups?
                     // yes, so return the specified group as list
-                    List<String> list = new ArrayList<String>(matcher.groupCount());
+                    List<String> list = new ArrayList<>(matcher.groupCount());
                     for (int i = 0; i <= matcher.groupCount(); i++) {
                        list.add(matcher.group(i));
                     }
@@ -3588,7 +3588,7 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
     public static List<String> toList(CharSequence self) {
         String s = self.toString();
         int size = s.length();
-        List<String> answer = new ArrayList<String>(size);
+        List<String> answer = new ArrayList<>(size);
         for (int i = 0; i < size; i++) {
             answer.add(s.substring(i, i + 1));
         }
@@ -3634,7 +3634,7 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.2
      */
     public static Set<String> toSet(CharSequence self) {
-        return new HashSet<String>(toList(self));
+        return new HashSet<>(toList(self));
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java
index ad62e5f..ed090c2 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java
@@ -26,7 +26,7 @@ import java.util.Set;
 
 public class CallSiteClassLoader extends ClassLoaderForClassArtifacts {
 
-    private static final Set<String> KNOWN_CLASSES = new HashSet<String>();
+    private static final Set<String> KNOWN_CLASSES = new HashSet<>();
     static {
         Collections.addAll(KNOWN_CLASSES
                 , "org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite"

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java b/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java
index 01161ce..5bcedec 100644
--- a/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java
+++ b/src/main/java/org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry.java
@@ -33,7 +33,7 @@ import java.util.List;
  * @since 2.0.0
  */
 public class ExtensionModuleRegistry {
-    private final List<ExtensionModule> modules = new LinkedList<ExtensionModule>();
+    private final List<ExtensionModule> modules = new LinkedList<>();
 
     public ExtensionModuleRegistry() {
     }
@@ -47,7 +47,7 @@ public class ExtensionModuleRegistry {
     }
 
     public List<ExtensionModule> getModules() {
-        return new ArrayList<ExtensionModule>(modules);
+        return new ArrayList<>(modules);
     }
 
     public boolean hasModule(final String moduleName) {


[3/8] groovy git commit: Minor refactoring: Explicit type can be replaced with <>

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java b/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java
index 10c1fd3..d8bcdb6 100644
--- a/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java
+++ b/src/main/java/org/codehaus/groovy/runtime/m12n/MetaInfExtensionModule.java
@@ -68,9 +68,9 @@ public class MetaInfExtensionModule extends SimpleExtensionModule {
             throw new GroovyRuntimeException("Module file hasn't set the module version using key [" + PropertiesModuleFactory.MODULE_VERSION_KEY + "]");
         String[] extensionClasses = properties.getProperty(MODULE_INSTANCE_CLASSES_KEY, "").trim().split("[,; ]");
         String[] staticExtensionClasses = properties.getProperty(MODULE_STATIC_CLASSES_KEY, "").trim().split("[,; ]");
-        List<Class> instanceClasses = new ArrayList<Class>(extensionClasses.length);
-        List<Class> staticClasses = new ArrayList<Class>(staticExtensionClasses.length);
-        List<String> errors = new LinkedList<String>();
+        List<Class> instanceClasses = new ArrayList<>(extensionClasses.length);
+        List<Class> staticClasses = new ArrayList<>(staticExtensionClasses.length);
+        List<String> errors = new LinkedList<>();
         loadExtensionClass(loader, extensionClasses, instanceClasses, errors);
         loadExtensionClass(loader, staticExtensionClasses, staticClasses, errors);
         if (!errors.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/m12n/SimpleExtensionModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/m12n/SimpleExtensionModule.java b/src/main/java/org/codehaus/groovy/runtime/m12n/SimpleExtensionModule.java
index af5df54..09432ab 100644
--- a/src/main/java/org/codehaus/groovy/runtime/m12n/SimpleExtensionModule.java
+++ b/src/main/java/org/codehaus/groovy/runtime/m12n/SimpleExtensionModule.java
@@ -95,7 +95,7 @@ public abstract class SimpleExtensionModule extends ExtensionModule {
 
     @Override
     public List<MetaMethod> getMetaMethods() {
-        List<MetaMethod> metaMethods = new LinkedList<MetaMethod>();
+        List<MetaMethod> metaMethods = new LinkedList<>();
         List<Class> extensionClasses = getInstanceMethodsExtensionClasses();
         for (Class extensionClass : extensionClasses) {
             try {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/memoize/CommonCache.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/memoize/CommonCache.java b/src/main/java/org/codehaus/groovy/runtime/memoize/CommonCache.java
index 0f7fb75..868f104 100644
--- a/src/main/java/org/codehaus/groovy/runtime/memoize/CommonCache.java
+++ b/src/main/java/org/codehaus/groovy/runtime/memoize/CommonCache.java
@@ -53,7 +53,7 @@ public class CommonCache<K, V> implements EvictableCache<K, V>, ValueConvertable
      * Constructs a cache with unlimited size
      */
     public CommonCache() {
-        this(new LinkedHashMap<K, V>());
+        this(new LinkedHashMap<>());
     }
 
     /**
@@ -212,7 +212,7 @@ public class CommonCache<K, V> implements EvictableCache<K, V>, ValueConvertable
      */
     @Override
     public Map<K, V> clearAll() {
-        Map<K, V> result = new LinkedHashMap<K, V>(map);
+        Map<K, V> result = new LinkedHashMap<>(map);
         map.clear();
         return result;
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCache.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCache.java b/src/main/java/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCache.java
index 7032889..bcb5ea5 100644
--- a/src/main/java/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCache.java
+++ b/src/main/java/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCache.java
@@ -45,7 +45,7 @@ public class ConcurrentCommonCache<K, V> implements EvictableCache<K, V>, ValueC
      * Constructs a cache with unlimited size
      */
     public ConcurrentCommonCache() {
-        commonCache = new CommonCache<K, V>();
+        commonCache = new CommonCache<>();
     }
 
     /**
@@ -56,7 +56,7 @@ public class ConcurrentCommonCache<K, V> implements EvictableCache<K, V>, ValueC
      * @param evictionStrategy LRU or FIFO, see {@link org.codehaus.groovy.runtime.memoize.EvictableCache.EvictionStrategy}
      */
     public ConcurrentCommonCache(int initialCapacity, int maxSize, EvictionStrategy evictionStrategy) {
-        commonCache = new CommonCache<K, V>(initialCapacity, maxSize, evictionStrategy);
+        commonCache = new CommonCache<>(initialCapacity, maxSize, evictionStrategy);
     }
 
     /**
@@ -67,7 +67,7 @@ public class ConcurrentCommonCache<K, V> implements EvictableCache<K, V>, ValueC
      * @param maxSize         max size of the LRU cache
      */
     public ConcurrentCommonCache(int initialCapacity, int maxSize) {
-        commonCache = new CommonCache<K, V>(initialCapacity, maxSize);
+        commonCache = new CommonCache<>(initialCapacity, maxSize);
     }
 
     /**
@@ -77,7 +77,7 @@ public class ConcurrentCommonCache<K, V> implements EvictableCache<K, V>, ValueC
      * @see #ConcurrentCommonCache(int, int)
      */
     public ConcurrentCommonCache(int maxSize) {
-        commonCache = new CommonCache<K, V>(maxSize);
+        commonCache = new CommonCache<>(maxSize);
     }
 
     /**
@@ -86,7 +86,7 @@ public class ConcurrentCommonCache<K, V> implements EvictableCache<K, V>, ValueC
      * @param map the {@link java.util.Map} instance
      */
     public ConcurrentCommonCache(Map<K, V> map) {
-        commonCache = new CommonCache<K, V>(map);
+        commonCache = new CommonCache<>(map);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/memoize/Memoize.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/memoize/Memoize.java b/src/main/java/org/codehaus/groovy/runtime/memoize/Memoize.java
index 21608df..0faaf80 100644
--- a/src/main/java/org/codehaus/groovy/runtime/memoize/Memoize.java
+++ b/src/main/java/org/codehaus/groovy/runtime/memoize/Memoize.java
@@ -52,7 +52,7 @@ public abstract class Memoize {
      * @return A new memoized closure
      */
     public static <V> Closure<V> buildMemoizeFunction(final MemoizeCache<Object, Object> cache, final Closure<V> closure) {
-        return new MemoizeFunction<V>(cache, closure);
+        return new MemoizeFunction<>(cache, closure);
     }
 
     /**
@@ -81,7 +81,7 @@ public abstract class Memoize {
 
         final ReferenceQueue queue = new ReferenceQueue();
 
-        return new SoftReferenceMemoizeFunction<V>(cache, closure, lruProtectionStorage, queue);
+        return new SoftReferenceMemoizeFunction<>(cache, closure, lruProtectionStorage, queue);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/memoize/StampedCommonCache.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/memoize/StampedCommonCache.java b/src/main/java/org/codehaus/groovy/runtime/memoize/StampedCommonCache.java
index f465248..a830bf2 100644
--- a/src/main/java/org/codehaus/groovy/runtime/memoize/StampedCommonCache.java
+++ b/src/main/java/org/codehaus/groovy/runtime/memoize/StampedCommonCache.java
@@ -46,7 +46,7 @@ public class StampedCommonCache<K, V> implements EvictableCache<K, V>, ValueConv
      * Constructs a cache with unlimited size
      */
     public StampedCommonCache() {
-        commonCache = new CommonCache<K, V>();
+        commonCache = new CommonCache<>();
     }
 
     /**
@@ -57,7 +57,7 @@ public class StampedCommonCache<K, V> implements EvictableCache<K, V>, ValueConv
      * @param evictionStrategy LRU or FIFO, see {@link EvictionStrategy}
      */
     public StampedCommonCache(int initialCapacity, int maxSize, EvictionStrategy evictionStrategy) {
-        commonCache = new CommonCache<K, V>(initialCapacity, maxSize, evictionStrategy);
+        commonCache = new CommonCache<>(initialCapacity, maxSize, evictionStrategy);
     }
 
     /**
@@ -68,7 +68,7 @@ public class StampedCommonCache<K, V> implements EvictableCache<K, V>, ValueConv
      * @param maxSize         max size of the LRU cache
      */
     public StampedCommonCache(int initialCapacity, int maxSize) {
-        commonCache = new CommonCache<K, V>(initialCapacity, maxSize);
+        commonCache = new CommonCache<>(initialCapacity, maxSize);
     }
 
     /**
@@ -78,7 +78,7 @@ public class StampedCommonCache<K, V> implements EvictableCache<K, V>, ValueConv
      * @see #StampedCommonCache(int, int)
      */
     public StampedCommonCache(int maxSize) {
-        commonCache = new CommonCache<K, V>(maxSize);
+        commonCache = new CommonCache<>(maxSize);
     }
 
     /**
@@ -87,7 +87,7 @@ public class StampedCommonCache<K, V> implements EvictableCache<K, V>, ValueConv
      * @param map the {@link Map} instance
      */
     public StampedCommonCache(Map<K, V> map) {
-        commonCache = new CommonCache<K, V>(map);
+        commonCache = new CommonCache<>(map);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java b/src/main/java/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java
index cfefb08..f7d14a7 100644
--- a/src/main/java/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java
+++ b/src/main/java/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java
@@ -39,7 +39,7 @@ public final class UnlimitedConcurrentCache<K, V> implements EvictableCache<K, V
      * Constructs a cache with unlimited size
      */
     public UnlimitedConcurrentCache() {
-        map = new ConcurrentHashMap<K, V>();
+        map = new ConcurrentHashMap<>();
     }
 
     /**
@@ -47,7 +47,7 @@ public final class UnlimitedConcurrentCache<K, V> implements EvictableCache<K, V
      * @param initialCapacity the initial capacity
      */
     public UnlimitedConcurrentCache(int initialCapacity) {
-        map = new ConcurrentHashMap<K, V>(initialCapacity);
+        map = new ConcurrentHashMap<>(initialCapacity);
     }
 
     /**
@@ -87,7 +87,7 @@ public final class UnlimitedConcurrentCache<K, V> implements EvictableCache<K, V
      */
     @Override
     public Map<K, V> clearAll() {
-        Map<K, V> result = new LinkedHashMap<K, V>(map.size());
+        Map<K, V> result = new LinkedHashMap<>(map.size());
 
         for (Map.Entry<K, V> entry : map.entrySet()) {
             K key = entry.getKey();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java
index 1a59c0b..5b77b27 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java
@@ -73,7 +73,7 @@ import java.util.Map;
 public final class ClosureMetaClass extends MetaClassImpl {
     private volatile boolean initialized;
     private final FastArray closureMethods = new FastArray(3);
-    private Map<String, CachedField> attributes = new HashMap<String, CachedField>();
+    private Map<String, CachedField> attributes = new HashMap<>();
     private MethodChooser chooser;
     private volatile boolean attributeInitDone = false;
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaMethod.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaMethod.java
index e747ab6..d3cff53 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaMethod.java
@@ -94,7 +94,7 @@ public class ClosureMetaMethod extends MetaMethod implements ClosureInvokingMeth
     }
 
     public static List<MetaMethod> createMethodList(final String name, final Class declaringClass, final Closure closure) {
-        List<MetaMethod> res = new ArrayList<MetaMethod>();
+        List<MetaMethod> res = new ArrayList<>();
         if (closure instanceof MethodClosure) {
             MethodClosure methodClosure = (MethodClosure) closure;
             Object owner = closure.getOwner();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
index eda5f06..4e69b34 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
@@ -69,9 +69,9 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
     private final FastArray instanceMethods = new FastArray();
     private final FastArray staticMethods = new FastArray();
 
-    private final LinkedList<MetaClassRegistryChangeEventListener> changeListenerList = new LinkedList<MetaClassRegistryChangeEventListener>();
-    private final LinkedList<MetaClassRegistryChangeEventListener> nonRemoveableChangeListenerList = new LinkedList<MetaClassRegistryChangeEventListener>();
-    private final ManagedConcurrentLinkedQueue<MetaClass> metaClassInfo = new ManagedConcurrentLinkedQueue<MetaClass>(ReferenceBundle.getWeakBundle());
+    private final LinkedList<MetaClassRegistryChangeEventListener> changeListenerList = new LinkedList<>();
+    private final LinkedList<MetaClassRegistryChangeEventListener> nonRemoveableChangeListenerList = new LinkedList<>();
+    private final ManagedConcurrentLinkedQueue<MetaClass> metaClassInfo = new ManagedConcurrentLinkedQueue<>(ReferenceBundle.getWeakBundle());
     private final ExtensionModuleRegistry moduleRegistry = new ExtensionModuleRegistry();
 
     public static final int LOAD_DEFAULT = 0;
@@ -99,7 +99,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
         this.useAccessible = useAccessible;
 
         if (loadDefault == LOAD_DEFAULT) {
-            final Map<CachedClass, List<MetaMethod>> map = new HashMap<CachedClass, List<MetaMethod>>();
+            final Map<CachedClass, List<MetaMethod>> map = new HashMap<>();
 
             // let's register the default methods
             registerMethods(null, true, true, map);
@@ -211,7 +211,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
                     final CachedClass declClass = method.getDeclaringClass();
                     List<MetaMethod> arr = map.get(declClass);
                     if (arr == null) {
-                        arr = new ArrayList<MetaMethod>(4);
+                        arr = new ArrayList<>(4);
                         map.put(declClass, arr);
                     }
                     arr.add(method);
@@ -232,7 +232,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
                     if (paramTypes.length > 0) {
                         List<MetaMethod> arr = map.get(paramTypes[0]);
                         if (arr == null) {
-                            arr = new ArrayList<MetaMethod>(4);
+                            arr = new ArrayList<>(4);
                             map.put(paramTypes[0], arr);
                         }
                         if (useInstanceMethods) {
@@ -256,7 +256,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
             final CachedClass declClass = method.getDeclaringClass();
             List<MetaMethod> arr = map.get(declClass);
             if (arr == null) {
-                arr = new ArrayList<MetaMethod>(4);
+                arr = new ArrayList<>(4);
                 map.put(declClass, arr);
             }
             arr.add(method);
@@ -411,7 +411,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
     public MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners() {
         synchronized (changeListenerList) {
             ArrayList<MetaClassRegistryChangeEventListener> ret =
-                    new ArrayList<MetaClassRegistryChangeEventListener>(changeListenerList.size()+nonRemoveableChangeListenerList.size());
+                    new ArrayList<>(changeListenerList.size() + nonRemoveableChangeListenerList.size());
             ret.addAll(nonRemoveableChangeListenerList);
             ret.addAll(changeListenerList);
             return ret.toArray(new MetaClassRegistryChangeEventListener[0]);
@@ -528,7 +528,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
                 CachedClass cachedClass = metaMethod.getDeclaringClass();
                 List<MetaMethod> methods = map.get(cachedClass);
                 if (methods == null) {
-                    methods = new ArrayList<MetaMethod>(4);
+                    methods = new ArrayList<>(4);
                     map.put(cachedClass, methods);
                 }
                 methods.add(metaMethod);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/metaclass/ThreadManagedMetaBeanProperty.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/ThreadManagedMetaBeanProperty.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/ThreadManagedMetaBeanProperty.java
index 8cce40e..e73b9f5 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/ThreadManagedMetaBeanProperty.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/ThreadManagedMetaBeanProperty.java
@@ -41,7 +41,7 @@ import java.util.concurrent.ConcurrentHashMap;
  * @since 1.5
  */
 public class ThreadManagedMetaBeanProperty extends MetaBeanProperty {
-    private static final ConcurrentHashMap<String,ManagedConcurrentMap> PROPNAME_TO_MAP = new ConcurrentHashMap<String, ManagedConcurrentMap>();
+    private static final ConcurrentHashMap<String,ManagedConcurrentMap> PROPNAME_TO_MAP = new ConcurrentHashMap<>();
 
     private final ManagedConcurrentMap instance2Prop;
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/powerassert/AssertionRenderer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/powerassert/AssertionRenderer.java b/src/main/java/org/codehaus/groovy/runtime/powerassert/AssertionRenderer.java
index 792b144..eb1d736 100644
--- a/src/main/java/org/codehaus/groovy/runtime/powerassert/AssertionRenderer.java
+++ b/src/main/java/org/codehaus/groovy/runtime/powerassert/AssertionRenderer.java
@@ -33,9 +33,9 @@ import java.util.List;
 public final class AssertionRenderer {
     private final String text;
     private final ValueRecorder recorder;
-    private final List<StringBuilder> lines = new ArrayList<StringBuilder>();
+    private final List<StringBuilder> lines = new ArrayList<>();
     // startColumns.get(i) is the first non-empty column of lines.get(i)
-    private final List<Integer> startColumns = new ArrayList<Integer>();
+    private final List<Integer> startColumns = new ArrayList<>();
 
     private AssertionRenderer(String text, ValueRecorder recorder) {
         if (text.contains("\n"))

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/powerassert/SourceText.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/powerassert/SourceText.java b/src/main/java/org/codehaus/groovy/runtime/powerassert/SourceText.java
index 6a9f96d..0f969c0 100644
--- a/src/main/java/org/codehaus/groovy/runtime/powerassert/SourceText.java
+++ b/src/main/java/org/codehaus/groovy/runtime/powerassert/SourceText.java
@@ -37,8 +37,8 @@ public class SourceText {
     private final int firstLine;
     private String normalizedText;
 
-    private final List<Integer> lineOffsets = new ArrayList<Integer>();
-    private final List<Integer> textOffsets = new ArrayList<Integer>();
+    private final List<Integer> lineOffsets = new ArrayList<>();
+    private final List<Integer> textOffsets = new ArrayList<>();
 
     /**
      * Constructs a <tt>SourceText</tt> by reading the given assertion's source

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/powerassert/ValueRecorder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/powerassert/ValueRecorder.java b/src/main/java/org/codehaus/groovy/runtime/powerassert/ValueRecorder.java
index 4cc675a..c074335 100644
--- a/src/main/java/org/codehaus/groovy/runtime/powerassert/ValueRecorder.java
+++ b/src/main/java/org/codehaus/groovy/runtime/powerassert/ValueRecorder.java
@@ -28,7 +28,7 @@ import java.util.List;
  * @author Peter Niederwieser
  */
 public class ValueRecorder {
-    private final List<Value> values = new ArrayList<Value>();
+    private final List<Value> values = new ArrayList<>();
 
     public void clear() {
         values.clear();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/typehandling/NumberMathModificationInfo.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/typehandling/NumberMathModificationInfo.java b/src/main/java/org/codehaus/groovy/runtime/typehandling/NumberMathModificationInfo.java
index adc9c76..2a8f1af 100644
--- a/src/main/java/org/codehaus/groovy/runtime/typehandling/NumberMathModificationInfo.java
+++ b/src/main/java/org/codehaus/groovy/runtime/typehandling/NumberMathModificationInfo.java
@@ -30,7 +30,7 @@ public class NumberMathModificationInfo {
 
     public static final NumberMathModificationInfo instance = new NumberMathModificationInfo();
 
-    private static final HashSet<String> NAMES = new HashSet<String>();
+    private static final HashSet<String> NAMES = new HashSet<>();
 
     static {
         Collections.addAll(NAMES, "plus", "minus", "multiply", "div", "compareTo", "or", "and", "xor", "intdiv", "mod", "leftShift", "rightShift", "rightShiftUnsigned");

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/syntax/ASTHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/syntax/ASTHelper.java b/src/main/java/org/codehaus/groovy/syntax/ASTHelper.java
index 9929a64..d267fa8 100644
--- a/src/main/java/org/codehaus/groovy/syntax/ASTHelper.java
+++ b/src/main/java/org/codehaus/groovy/syntax/ASTHelper.java
@@ -68,7 +68,7 @@ public class ASTHelper {
     }
 
     public void setPackageName(String packageName) {
-        setPackage(packageName, new ArrayList<AnnotationNode>());
+        setPackage(packageName, new ArrayList<>());
     }
 
     public PackageNode setPackage(String packageName, List<AnnotationNode> annotations) {
@@ -127,7 +127,7 @@ public class ASTHelper {
     }
 
     protected void addImport(ClassNode type, String name, String aliasName) {
-        addImport(type, name, aliasName, new ArrayList<AnnotationNode>());
+        addImport(type, name, aliasName, new ArrayList<>());
     }
 
     protected void addImport(ClassNode type, String name, String aliasName, List<AnnotationNode> annotations) {
@@ -136,7 +136,7 @@ public class ASTHelper {
     }
 
     protected void addStaticImport(ClassNode type, String name, String alias) {
-        addStaticImport(type, name, alias, new ArrayList<AnnotationNode>());
+        addStaticImport(type, name, alias, new ArrayList<>());
     }
 
     protected void addStaticImport(ClassNode type, String name, String alias, List<AnnotationNode> annotations) {
@@ -145,7 +145,7 @@ public class ASTHelper {
     }
 
     protected void addStaticStarImport(ClassNode type, String importClass) {
-        addStaticStarImport(type, importClass, new ArrayList<AnnotationNode>());
+        addStaticStarImport(type, importClass, new ArrayList<>());
     }
 
     protected void addStaticStarImport(ClassNode type, String importClass, List<AnnotationNode> annotations) {
@@ -153,7 +153,7 @@ public class ASTHelper {
     }
 
     protected void addStarImport(String importPackage) {
-        addStarImport(importPackage, new ArrayList<AnnotationNode>());
+        addStarImport(importPackage, new ArrayList<>());
     }
 
     protected void addStarImport(String importPackage, List<AnnotationNode> annotations) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/syntax/Types.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/syntax/Types.java b/src/main/java/org/codehaus/groovy/syntax/Types.java
index 6feeed5..b7d45242 100644
--- a/src/main/java/org/codehaus/groovy/syntax/Types.java
+++ b/src/main/java/org/codehaus/groovy/syntax/Types.java
@@ -1097,9 +1097,9 @@ public class Types
   //---------------------------------------------------------------------------
   // TEXTS
 
-    private static final Map<Integer,String> TEXTS  = new HashMap<Integer,String>();  // symbol/keyword type -> text
-    private static final Map<String,Integer> LOOKUP = new HashMap<String,Integer>();  // text -> symbol/keyword type
-    private static final Set<String> KEYWORDS = new HashSet<String>();  // valid keywords
+    private static final Map<Integer,String> TEXTS  = new HashMap<>();  // symbol/keyword type -> text
+    private static final Map<String,Integer> LOOKUP = new HashMap<>();  // text -> symbol/keyword type
+    private static final Set<String> KEYWORDS = new HashSet<>();  // valid keywords
 
     public static Collection<String> getKeywords() {
         return Collections.unmodifiableSet(KEYWORDS);
@@ -1338,7 +1338,7 @@ public class Types
   // DESCRIPTIONS
 
 
-    private static final Map<Integer,String> DESCRIPTIONS = new HashMap<Integer,String>();
+    private static final Map<Integer,String> DESCRIPTIONS = new HashMap<>();
 
 
    /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/DgmConverter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/DgmConverter.java b/src/main/java/org/codehaus/groovy/tools/DgmConverter.java
index b8adfd3..444ae6f 100644
--- a/src/main/java/org/codehaus/groovy/tools/DgmConverter.java
+++ b/src/main/java/org/codehaus/groovy/tools/DgmConverter.java
@@ -46,13 +46,13 @@ public class DgmConverter implements Opcodes {
             targetDirectory = args[1];
             if (!targetDirectory.endsWith("/")) targetDirectory += "/";
         }
-        List<CachedMethod> cachedMethodsList = new ArrayList<CachedMethod>();
+        List<CachedMethod> cachedMethodsList = new ArrayList<>();
         for (Class aClass : DefaultGroovyMethods.DGM_LIKE_CLASSES) {
             Collections.addAll(cachedMethodsList, ReflectionCache.getCachedClass(aClass).getMethods());
         }
         final CachedMethod[] cachedMethods = cachedMethodsList.toArray(CachedMethod.EMPTY_ARRAY);
 
-        List<GeneratedMetaMethod.DgmMethodRecord> records = new ArrayList<GeneratedMetaMethod.DgmMethodRecord>();
+        List<GeneratedMetaMethod.DgmMethodRecord> records = new ArrayList<>();
 
         int cur = 0;
         for (CachedMethod method : cachedMethods) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java b/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
index 545478c..958080d 100644
--- a/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
@@ -251,7 +251,7 @@ public class FileSystemCompiler {
         if (filenames == null) {
             return new String[0];
         }
-        List<String> fileList = new ArrayList<String>(filenames.size());
+        List<String> fileList = new ArrayList<>(filenames.size());
         boolean errors = false;
         for (String filename : filenames) {
             if (filename.startsWith("@")) {
@@ -377,7 +377,7 @@ public class FileSystemCompiler {
 
             // joint compilation parameters
             if (jointCompilation) {
-                Map<String, Object> compilerOptions = new HashMap<String, Object>();
+                Map<String, Object> compilerOptions = new HashMap<>();
                 compilerOptions.put("namedValues", javacOptionsList());
                 compilerOptions.put("flags", flagsWithParameterMetaData());
                 configuration.setJointCompilationOptions(compilerOptions);
@@ -390,7 +390,7 @@ public class FileSystemCompiler {
 
             String configScripts = System.getProperty("groovy.starter.configscripts", null);
             if (configScript != null || (configScripts != null && !configScripts.isEmpty())) {
-                List<String> scripts = new ArrayList<String>();
+                List<String> scripts = new ArrayList<>();
                 if (configScript != null) {
                     scripts.add(configScript);
                 }
@@ -411,7 +411,7 @@ public class FileSystemCompiler {
             if (javacOptionsMap == null) {
                 return null;
             }
-            List<String> result = new ArrayList<String>();
+            List<String> result = new ArrayList<>();
             for (Map.Entry<String, String> entry : javacOptionsMap.entrySet()) {
                 result.add(entry.getKey());
                 result.add(entry.getValue());

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/GrapeUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/GrapeUtil.java b/src/main/java/org/codehaus/groovy/tools/GrapeUtil.java
index 86707cc..c2750c9 100644
--- a/src/main/java/org/codehaus/groovy/tools/GrapeUtil.java
+++ b/src/main/java/org/codehaus/groovy/tools/GrapeUtil.java
@@ -23,7 +23,7 @@ import java.util.Map;
 
 public class GrapeUtil {
     public static Map<String, Object> getIvyParts(String allstr) {
-        Map<String, Object> result = new LinkedHashMap<String, Object>();
+        Map<String, Object> result = new LinkedHashMap<>();
         String ext = "";
         String[] parts;
         if (allstr.contains("@")) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/LoaderConfiguration.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/LoaderConfiguration.java b/src/main/java/org/codehaus/groovy/tools/LoaderConfiguration.java
index dcd1aa6..8a785e7 100644
--- a/src/main/java/org/codehaus/groovy/tools/LoaderConfiguration.java
+++ b/src/main/java/org/codehaus/groovy/tools/LoaderConfiguration.java
@@ -80,15 +80,15 @@ import java.util.regex.Pattern;
 public class LoaderConfiguration {
 
     private static final String MAIN_PREFIX = "main is", LOAD_PREFIX = "load", GRAB_PREFIX = "grab", PROP_PREFIX = "property", CONFIGSCRIPT_PREFIX = "configscript";
-    private final List<URL> classPath = new ArrayList<URL>();
+    private final List<URL> classPath = new ArrayList<>();
     private String main;
     private boolean requireMain;
     private static final char WILDCARD = '*';
     private static final String ALL_WILDCARD = "" + WILDCARD + WILDCARD;
     private static final String MATCH_FILE_NAME = "\\\\E[^/]+?\\\\Q";
     private static final String MATCH_ALL = "\\\\E.+?\\\\Q";
-    private final List<String> grabList = new ArrayList<String>();
-    private final List<String> configScripts = new ArrayList<String>();
+    private final List<String> grabList = new ArrayList<>();
+    private final List<String> configScripts = new ArrayList<>();
 
     /**
      * creates a new loader configuration

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/RootLoader.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/RootLoader.java b/src/main/java/org/codehaus/groovy/tools/RootLoader.java
index bfe2d66..d005e4e 100644
--- a/src/main/java/org/codehaus/groovy/tools/RootLoader.java
+++ b/src/main/java/org/codehaus/groovy/tools/RootLoader.java
@@ -75,7 +75,7 @@ import java.util.Map;
  */
 public class RootLoader extends URLClassLoader {
     private static final URL[] EMPTY_URL_ARRAY = new URL[0];
-    private final Map<String, Class> customClasses = new HashMap<String, Class>();
+    private final Map<String, Class> customClasses = new HashMap<>();
     private static final String ORG_W3C_DOM_NODE = "org.w3c.dom.Node";
 
     /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/Utilities.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/Utilities.java b/src/main/java/org/codehaus/groovy/tools/Utilities.java
index 522b5d3..63adcbd 100644
--- a/src/main/java/org/codehaus/groovy/tools/Utilities.java
+++ b/src/main/java/org/codehaus/groovy/tools/Utilities.java
@@ -28,11 +28,11 @@ import java.util.Set;
 
 public abstract class Utilities
 {
-    private static final Set<String> INVALID_JAVA_IDENTIFIERS = new HashSet<String>(Arrays.asList((
+    private static final Set<String> INVALID_JAVA_IDENTIFIERS = new HashSet<>(Arrays.asList((
             "abstract assert boolean break byte case catch char class const continue default do double else enum " +
-            "extends final finally float for goto if implements import instanceof int interface long native new " +
-            "package private protected public short static strictfp super switch synchronized this throw throws " +
-            "transient try void volatile while true false null").split(" ")));
+                    "extends final finally float for goto if implements import instanceof int interface long native new " +
+                    "package private protected public short static strictfp super switch synchronized this throw throws " +
+                    "transient try void volatile while true false null").split(" ")));
 
    /**
     *  Returns a string made up of repetitions of the specified string.

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/gse/StringSetMap.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/gse/StringSetMap.java b/src/main/java/org/codehaus/groovy/tools/gse/StringSetMap.java
index fe2b7ad..b99d81b 100644
--- a/src/main/java/org/codehaus/groovy/tools/gse/StringSetMap.java
+++ b/src/main/java/org/codehaus/groovy/tools/gse/StringSetMap.java
@@ -41,14 +41,14 @@ public class StringSetMap extends LinkedHashMap<String,Set<String>> {
         String name = (String) o;
         Set<String> set = super.get(name);
         if (set==null) {
-            set = new LinkedHashSet<String>();
+            set = new LinkedHashSet<>();
             put(name,set);
         }
         return set;
     }
 
     public void makeTransitiveHull() {
-        Set<String> nameSet = new TreeSet<String>(keySet());
+        Set<String> nameSet = new TreeSet<>(keySet());
         
         for (String k: nameSet) {
             StringSetMap delta = new StringSetMap();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/javac/JavaAwareCompilationUnit.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavaAwareCompilationUnit.java b/src/main/java/org/codehaus/groovy/tools/javac/JavaAwareCompilationUnit.java
index 5a26b4c..fe79139 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavaAwareCompilationUnit.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavaAwareCompilationUnit.java
@@ -60,7 +60,7 @@ public class JavaAwareCompilationUnit extends CompilationUnit {
     public JavaAwareCompilationUnit(CompilerConfiguration configuration, GroovyClassLoader groovyClassLoader,
                                     GroovyClassLoader transformClassLoader) {
         super(configuration, null, groovyClassLoader, transformClassLoader);
-        javaSources = new LinkedList<String>();
+        javaSources = new LinkedList<>();
         Map options = configuration.getJointCompilationOptions();
         generationGoal = (File) options.get("stubDir");
         boolean useJava5 = CompilerConfiguration.isPostJDK5(configuration.getTargetBytecode());

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
index 0c1acbd..7c98026 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
@@ -72,10 +72,10 @@ public class JavaStubGenerator {
     private final String encoding;
     private final boolean requireSuperResolved;
     private final File outputPath;
-    private final List<String> toCompile = new ArrayList<String>();
-    private final ArrayList<MethodNode> propertyMethods = new ArrayList<MethodNode>();
-    private final Map<String, MethodNode> propertyMethodsWithSigs = new HashMap<String, MethodNode>();
-    private final ArrayList<ConstructorNode> constructors = new ArrayList<ConstructorNode>();
+    private final List<String> toCompile = new ArrayList<>();
+    private final ArrayList<MethodNode> propertyMethods = new ArrayList<>();
+    private final Map<String, MethodNode> propertyMethodsWithSigs = new HashMap<>();
+    private final ArrayList<ConstructorNode> constructors = new ArrayList<>();
     private ModuleNode currentModule;
 
     public JavaStubGenerator(final File outputPath, final boolean requireSuperResolved, final boolean java5, String encoding) {
@@ -147,7 +147,7 @@ public class JavaStubGenerator {
             Verifier verifier = new Verifier() {
                 @Override
                 public void visitClass(final ClassNode node) {
-                    List<Statement> savedStatements = new ArrayList<Statement>(node.getObjectInitializerStatements());
+                    List<Statement> savedStatements = new ArrayList<>(node.getObjectInitializerStatements());
                     super.visitClass(node);
                     node.getObjectInitializerStatements().addAll(savedStatements);
                     for (ClassNode inode : node.getAllInterfaces()) {
@@ -377,8 +377,8 @@ public class JavaStubGenerator {
         boolean isInterface = isInterfaceOrTrait(classNode);
         List<FieldNode> fields = classNode.getFields();
         if (fields == null) return;
-        List<FieldNode> enumFields = new ArrayList<FieldNode>(fields.size());
-        List<FieldNode> normalFields = new ArrayList<FieldNode>(fields.size());
+        List<FieldNode> enumFields = new ArrayList<>(fields.size());
+        List<FieldNode> normalFields = new ArrayList<>(fields.size());
         for (FieldNode field : fields) {
             boolean isSynthetic = (field.getModifiers() & Opcodes.ACC_SYNTHETIC) != 0;
             if (field.isEnum()) {
@@ -938,7 +938,7 @@ public class JavaStubGenerator {
     }
 
     private static void printImports(PrintWriter out, ClassNode classNode) {
-        List<String> imports = new ArrayList<String>();
+        List<String> imports = new ArrayList<>();
 
         ModuleNode moduleNode = classNode.getModule();
         for (ImportNode importNode : moduleNode.getStarImports()) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
index e50da83..83da0bd 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
@@ -102,7 +102,7 @@ public class JavacJavaCompiler implements JavaCompiler {
 
     private String[] makeParameters(List<String> files, GroovyClassLoader parentClassLoader) {
         Map options = config.getJointCompilationOptions();
-        LinkedList<String> paras = new LinkedList<String>();
+        LinkedList<String> paras = new LinkedList<>();
 
         File target = config.getTargetDirectory();
         if (target == null) target = new File(".");
@@ -136,7 +136,7 @@ public class JavacJavaCompiler implements JavaCompiler {
         // append classpath if not already defined
         if (!hadClasspath) {
             // add all classpaths that compilation unit sees
-            List<String> paths = new ArrayList<String>(config.getClasspath());
+            List<String> paths = new ArrayList<>(config.getClasspath());
             ClassLoader cl = parentClassLoader;
             while (cl != null) {
                 if (cl instanceof URLClassLoader) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/ASTTransformationCollectorCodeVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/ASTTransformationCollectorCodeVisitor.java b/src/main/java/org/codehaus/groovy/transform/ASTTransformationCollectorCodeVisitor.java
index c827b04..b78b639 100644
--- a/src/main/java/org/codehaus/groovy/transform/ASTTransformationCollectorCodeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/ASTTransformationCollectorCodeVisitor.java
@@ -91,9 +91,9 @@ public class ASTTransformationCollectorCodeVisitor extends ClassCodeVisitorSuppo
     public void visitAnnotations(AnnotatedNode node) {
         super.visitAnnotations(node);
 
-        Map<Integer, List<AnnotationNode>> existing = new TreeMap<Integer, List<AnnotationNode>>();
-        Map<Integer, List<AnnotationNode>> replacements = new LinkedHashMap<Integer, List<AnnotationNode>>();
-        Map<Integer, AnnotationCollectorMode> modes = new LinkedHashMap<Integer, AnnotationCollectorMode>();
+        Map<Integer, List<AnnotationNode>> existing = new TreeMap<>();
+        Map<Integer, List<AnnotationNode>> replacements = new LinkedHashMap<>();
+        Map<Integer, AnnotationCollectorMode> modes = new LinkedHashMap<>();
         int index = 0;
         for (AnnotationNode annotation : node.getAnnotations()) {
             findCollectedAnnotations(annotation, node, index, modes, existing, replacements);
@@ -105,7 +105,7 @@ public class ASTTransformationCollectorCodeVisitor extends ClassCodeVisitorSuppo
             mergeCollectedAnnotations(modes.get(replacementIndex), existing, annotationNodeList);
             existing.put(replacementIndex, annotationNodeList);
         }
-        List<AnnotationNode> mergedList = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> mergedList = new ArrayList<>();
         for (List<AnnotationNode> next : existing.values()) {
             mergedList.addAll(next);
         }
@@ -146,7 +146,7 @@ public class ASTTransformationCollectorCodeVisitor extends ClassCodeVisitorSuppo
         for (AnnotationNode replacement : replacements) {
             for (Map.Entry<Integer, List<AnnotationNode>> entry : existingMap.entrySet()) {
                 Integer key = entry.getKey();
-                List<AnnotationNode> annotationNodes = new ArrayList<AnnotationNode>(entry.getValue());
+                List<AnnotationNode> annotationNodes = new ArrayList<>(entry.getValue());
                 Iterator<AnnotationNode> iterator = annotationNodes.iterator();
                 while (iterator.hasNext()) {
                     AnnotationNode existing = iterator.next();
@@ -340,7 +340,7 @@ public class ASTTransformationCollectorCodeVisitor extends ClassCodeVisitorSuppo
     }
 
     private List<String> getTransformClassNames(AnnotationNode annotation, Annotation transformClassAnnotation) {
-        List<String> result = new ArrayList<String>();
+        List<String> result = new ArrayList<>();
 
         try {
             Method valueMethod = transformClassAnnotation.getClass().getMethod("value");

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java b/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
index 1e6de12..25d10e8 100644
--- a/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
@@ -105,7 +105,7 @@ public final class ASTTransformationVisitor extends ClassCodeVisitorSupport {
         // only descend if we have annotations to look for
         Map<Class<? extends ASTTransformation>, Set<ASTNode>> baseTransforms = classNode.getTransforms(phase);
         if (!baseTransforms.isEmpty()) {
-            final Map<Class<? extends ASTTransformation>, ASTTransformation> transformInstances = new HashMap<Class<? extends ASTTransformation>, ASTTransformation>();
+            final Map<Class<? extends ASTTransformation>, ASTTransformation> transformInstances = new HashMap<>();
             for (Class<? extends ASTTransformation> transformClass : baseTransforms.keySet()) {
                 try {
                     transformInstances.put(transformClass, transformClass.newInstance());
@@ -121,19 +121,19 @@ public final class ASTTransformationVisitor extends ClassCodeVisitorSupport {
 
 
             // invert the map, is now one to many
-            transforms = new HashMap<ASTNode, List<ASTTransformation>>();
+            transforms = new HashMap<>();
             for (Map.Entry<Class<? extends ASTTransformation>, Set<ASTNode>> entry : baseTransforms.entrySet()) {
                 for (ASTNode node : entry.getValue()) {
                     List<ASTTransformation> list = transforms.get(node);
                     if (list == null)  {
-                        list = new ArrayList<ASTTransformation>();
+                        list = new ArrayList<>();
                         transforms.put(node, list);
                     }
                     list.add(transformInstances.get(entry.getKey()));
                 }
             }
 
-            targetNodes = new LinkedList<ASTNode[]>();
+            targetNodes = new LinkedList<>();
 
             // first pass, collect nodes
             super.visitClass(classNode);
@@ -208,7 +208,7 @@ public final class ASTTransformationVisitor extends ClassCodeVisitorSupport {
     private static void doAddGlobalTransforms(ASTTransformationsContext context, boolean isFirstScan) {
         final CompilationUnit compilationUnit = context.getCompilationUnit();
         GroovyClassLoader transformLoader = compilationUnit.getTransformLoader();
-        Map<String, URL> transformNames = new LinkedHashMap<String, URL>();
+        Map<String, URL> transformNames = new LinkedHashMap<>();
         try {
             Enumeration<URL> globalServices = transformLoader.getResources("META-INF/services/org.codehaus.groovy.transform.ASTTransformation");
             while (globalServices.hasMoreElements()) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/AbstractASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/AbstractASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/AbstractASTTransformation.java
index c13c8ef..9e27ce6 100644
--- a/src/main/java/org/codehaus/groovy/transform/AbstractASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/AbstractASTTransformation.java
@@ -67,8 +67,8 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
      * Annotations with {@link org.codehaus.groovy.runtime.GeneratedClosure} members are not supported for now.
      */
     protected List<AnnotationNode> copyAnnotatedNodeAnnotations(final AnnotatedNode annotatedNode, String myTypeName) {
-        final List<AnnotationNode> copiedAnnotations = new ArrayList<AnnotationNode>();
-        final List<AnnotationNode> notCopied = new ArrayList<AnnotationNode>();
+        final List<AnnotationNode> copiedAnnotations = new ArrayList<>();
+        final List<AnnotationNode> notCopied = new ArrayList<>();
         GeneralUtils.copyAnnotatedNodeAnnotations(annotatedNode, copiedAnnotations, notCopied);
         for (AnnotationNode annotation : notCopied) {
             addError(myTypeName + " does not support keeping Closure annotation members.", annotation);
@@ -188,7 +188,7 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
     }
 
     private static List<String> getValueStringList(ListExpression listExpression) {
-        List<String> list = new ArrayList<String>();
+        List<String> list = new ArrayList<>();
         for (Expression itemExpr : listExpression.getExpressions()) {
             if (itemExpr instanceof ConstantExpression) {
                 Object value = ((ConstantExpression) itemExpr).getValue();
@@ -200,7 +200,7 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
 
     @Deprecated
     public List<ClassNode> getClassList(AnnotationNode anno, String name) {
-        List<ClassNode> list = new ArrayList<ClassNode>();
+        List<ClassNode> list = new ArrayList<>();
         Expression expr = anno.getMember(name);
         if (expr instanceof ListExpression) {
             final ListExpression listExpression = (ListExpression) expr;
@@ -213,7 +213,7 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
     }
 
     public List<ClassNode> getMemberClassList(AnnotationNode anno, String name) {
-        List<ClassNode> list = new ArrayList<ClassNode>();
+        List<ClassNode> list = new ArrayList<>();
         Expression expr = anno.getMember(name);
         if (expr == null) {
             return null;
@@ -233,7 +233,7 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
     }
 
     private static List<ClassNode> getTypeList(ListExpression listExpression) {
-        List<ClassNode> list = new ArrayList<ClassNode>();
+        List<ClassNode> list = new ArrayList<>();
         for (Expression itemExpr : listExpression.getExpressions()) {
             if (itemExpr instanceof ClassExpression) {
                 ClassNode cn = itemExpr.getType();
@@ -265,7 +265,7 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
     }
 
     public static List<String> tokenize(String rawExcludes) {
-        return rawExcludes == null ? new ArrayList<String>() : StringGroovyMethods.tokenize(rawExcludes, ", ");
+        return rawExcludes == null ? new ArrayList<>() : StringGroovyMethods.tokenize(rawExcludes, ", ");
     }
 
     public static boolean deemedInternalName(String name) {
@@ -297,7 +297,7 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
         String descriptor = mNode.getTypeDescriptor();
         String descriptorNoReturn = MethodNodeUtils.methodDescriptorWithoutReturnType(mNode);
         for (ClassNode cn : excludeTypes) {
-            List<ClassNode> remaining = new LinkedList<ClassNode>();
+            List<ClassNode> remaining = new LinkedList<>();
             remaining.add(cn);
             Map updatedGenericsSpec = new HashMap(genericsSpec);
             while (!remaining.isEmpty()) {
@@ -320,7 +320,7 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
         }
         if (includeTypes.isEmpty()) return false;
         for (ClassNode cn : includeTypes) {
-            List<ClassNode> remaining = new LinkedList<ClassNode>();
+            List<ClassNode> remaining = new LinkedList<>();
             remaining.add(cn);
             Map updatedGenericsSpec = new HashMap(genericsSpec);
             while (!remaining.isEmpty()) {
@@ -349,7 +349,7 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
         String descriptorNoReturn = MethodNodeUtils.methodDescriptorWithoutReturnType(mNode);
         if (excludeTypes != null) {
             for (ClassNode cn : excludeTypes) {
-                List<ClassNode> remaining = new LinkedList<ClassNode>();
+                List<ClassNode> remaining = new LinkedList<>();
                 remaining.add(cn);
                 Map updatedGenericsSpec = new HashMap(genericsSpec);
                 while (!remaining.isEmpty()) {
@@ -373,7 +373,7 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
         }
         if (includeTypes == null) return false;
         for (ClassNode cn : includeTypes) {
-            List<ClassNode> remaining = new LinkedList<ClassNode>();
+            List<ClassNode> remaining = new LinkedList<>();
             remaining.add(cn);
             Map updatedGenericsSpec = new HashMap(genericsSpec);
             while (!remaining.isEmpty()) {
@@ -450,13 +450,13 @@ public abstract class AbstractASTTransformation implements Opcodes, ASTTransform
         if (propertyNameList == null || propertyNameList.isEmpty()) {
             return true;
         }
-        final List<String> pNames = new ArrayList<String>();
+        final List<String> pNames = new ArrayList<>();
         for (PropertyNode pNode : BeanUtils.getAllProperties(cNode, includeSuperProperties, includeStatic, allProperties)) {
             pNames.add(pNode.getField().getName());
         }
         boolean result = true;
         if (includeFields || includeSuperFields) {
-            final List<String> fNames = new ArrayList<String>();
+            final List<String> fNames = new ArrayList<>();
             if (includeFields) {
                 fNames.addAll(getInstanceNonPropertyFieldNames(cNode));
             }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java b/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
index 4d00531..59bece0 100644
--- a/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
+++ b/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
@@ -115,7 +115,7 @@ public class AnnotationCollectorTransform {
 
             // add static value():Object[][] method
             List<AnnotationNode> meta = getMeta(cn); 
-            List<Expression> outer = new ArrayList<Expression>(meta.size());
+            List<Expression> outer = new ArrayList<>(meta.size());
             for (AnnotationNode an : meta) {
                 Expression serialized = serialize(an);
                 outer.add(serialized);
@@ -146,7 +146,7 @@ public class AnnotationCollectorTransform {
                 boolean annotationConstant = false;
                 ListExpression le = (ListExpression) e;
                 List<Expression> list = le.getExpressions();
-                List<Expression> newList = new ArrayList<Expression>(list.size());
+                List<Expression> newList = new ArrayList<>(list.size());
                 for (Expression exp: list) {
                     annotationConstant = annotationConstant || exp instanceof AnnotationConstantExpression;
                     newList.add(serialize(exp));
@@ -163,7 +163,7 @@ public class AnnotationCollectorTransform {
             for (String key : an.getMembers().keySet()) {
                 map.addMapEntryExpression(new ConstantExpression(key), serialize(an.getMember(key)));
             }
-            List<Expression> l = new ArrayList<Expression>(2);
+            List<Expression> l = new ArrayList<>(2);
             l.add(new ClassExpression(an.getClassNode()));
             l.add(map);
             return new ArrayExpression(ClassHelper.OBJECT_TYPE, l);
@@ -197,7 +197,7 @@ public class AnnotationCollectorTransform {
         if (memberList.isEmpty()) {
             return Collections.emptyList();
         }
-        List<AnnotationNode> ret = new ArrayList<AnnotationNode>();
+        List<AnnotationNode> ret = new ArrayList<>();
         for (Expression e : memberList) {
             AnnotationNode toAdd = new AnnotationNode(e.getType());
             toAdd.setSourcePosition(aliasAnnotationUsage);
@@ -214,7 +214,7 @@ public class AnnotationCollectorTransform {
 
     private static List<AnnotationNode> copy(List<AnnotationNode> orig, AnnotationNode aliasAnnotationUsage) {
         if (orig.isEmpty()) return orig;
-        List<AnnotationNode> ret = new ArrayList<AnnotationNode>(orig.size());
+        List<AnnotationNode> ret = new ArrayList<>(orig.size());
         for (AnnotationNode an : orig) {
             AnnotationNode newAn = new AnnotationNode(an.getClassNode());
             copyMembers(an, newAn);
@@ -229,7 +229,7 @@ public class AnnotationCollectorTransform {
         if (annotations.size() < 2) {
             return Collections.emptyList();
         }
-        List<AnnotationNode> ret = new ArrayList<AnnotationNode>(annotations.size());
+        List<AnnotationNode> ret = new ArrayList<>(annotations.size());
         for (AnnotationNode an : annotations) {
             ClassNode type = an.getClassNode();
             if (type.getName().equals(AnnotationCollector.class.getName())) continue;
@@ -267,7 +267,7 @@ public class AnnotationCollectorTransform {
         if (data.length == 0) {
             return Collections.emptyList();
         }
-        List<AnnotationNode> ret = new ArrayList<AnnotationNode>(data.length);
+        List<AnnotationNode> ret = new ArrayList<>(data.length);
         for (Object[] inner : data) {
             Class<?> anno = (Class) inner[0];
             AnnotationNode toAdd = new AnnotationNode(ClassHelper.make(anno));
@@ -278,7 +278,7 @@ public class AnnotationCollectorTransform {
             if (member.isEmpty()) {
                 continue;
             }
-            Map<String, Expression> generated = new HashMap<String, Expression>(member.size());
+            Map<String, Expression> generated = new HashMap<>(member.size());
             for (Map.Entry<String, Object> entry : member.entrySet()) {
                 generated.put(entry.getKey(), makeExpression(entry.getValue()));
             }
@@ -325,7 +325,7 @@ public class AnnotationCollectorTransform {
         if (size == 0) {
             return Collections.emptyList();
         }
-        List<AnnotationNode> ret = new ArrayList<AnnotationNode>(size);
+        List<AnnotationNode> ret = new ArrayList<>(size);
         ret.addAll(stored);
         ret.addAll(targetList);
 
@@ -348,7 +348,7 @@ public class AnnotationCollectorTransform {
      */
     public List<AnnotationNode> visit(AnnotationNode collector, AnnotationNode aliasAnnotationUsage, AnnotatedNode aliasAnnotated, SourceUnit source) {
         List<AnnotationNode> ret =  getTargetAnnotationList(collector, aliasAnnotationUsage, source);
-        Set<String> unusedNames = new HashSet<String>(aliasAnnotationUsage.getMembers().keySet());
+        Set<String> unusedNames = new HashSet<>(aliasAnnotationUsage.getMembers().keySet());
         
         for (AnnotationNode an: ret) {
             for (String name : aliasAnnotationUsage.getMembers().keySet()) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/AutoImplementASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/AutoImplementASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/AutoImplementASTTransformation.java
index 0507116..cd5e3cd 100644
--- a/src/main/java/org/codehaus/groovy/transform/AutoImplementASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/AutoImplementASTTransformation.java
@@ -105,7 +105,7 @@ public class AutoImplementASTTransformation extends AbstractASTTransformation {
      * by a concrete declared/inherited method.
      */
     private static Map<String, MethodNode> getAllCorrectedMethodsMap(ClassNode cNode) {
-        Map<String, MethodNode> result = new HashMap<String, MethodNode>();
+        Map<String, MethodNode> result = new HashMap<>();
         for (MethodNode mn : cNode.getMethods()) {
             result.put(methodDescriptorWithoutReturnType(mn), mn);
         }
@@ -126,8 +126,8 @@ public class AutoImplementASTTransformation extends AbstractASTTransformation {
                     }
                 }
             }
-            List<ClassNode> interfaces = new ArrayList<ClassNode>(Arrays.asList(next.getInterfaces()));
-            Map<String, ClassNode> updatedGenericsSpec = new HashMap<String, ClassNode>(genericsSpec);
+            List<ClassNode> interfaces = new ArrayList<>(Arrays.asList(next.getInterfaces()));
+            Map<String, ClassNode> updatedGenericsSpec = new HashMap<>(genericsSpec);
             while (!interfaces.isEmpty()) {
                 ClassNode origInterface = interfaces.remove(0);
                 if (!origInterface.equals(ClassHelper.OBJECT_TYPE)) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/BuilderASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/BuilderASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/BuilderASTTransformation.java
index 3f4ea27..19e443f 100644
--- a/src/main/java/org/codehaus/groovy/transform/BuilderASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/BuilderASTTransformation.java
@@ -88,7 +88,7 @@ public class BuilderASTTransformation extends AbstractASTTransformation implemen
         }
 
         protected static List<PropertyInfo> getPropertyInfoFromClassNode(ClassNode cNode, List<String> includes, List<String> excludes, boolean allNames) {
-            List<PropertyInfo> props = new ArrayList<PropertyInfo>();
+            List<PropertyInfo> props = new ArrayList<>();
             for (FieldNode fNode : getInstancePropertyFields(cNode)) {
                 if (shouldSkip(fNode.getName(), excludes, includes, allNames)) continue;
                 props.add(new PropertyInfo(fNode.getName(), fNode.getType()));
@@ -97,7 +97,7 @@ public class BuilderASTTransformation extends AbstractASTTransformation implemen
         }
 
         protected static List<PropertyInfo> getPropertyInfoFromBeanInfo(ClassNode cNode, List<String> includes, List<String> excludes, boolean allNames) {
-            final List<PropertyInfo> result = new ArrayList<PropertyInfo>();
+            final List<PropertyInfo> result = new ArrayList<>();
             try {
                 BeanInfo beanInfo = Introspector.getBeanInfo(cNode.getTypeClass());
                 for (PropertyDescriptor descriptor : beanInfo.getPropertyDescriptors()) {
@@ -188,8 +188,8 @@ public class BuilderASTTransformation extends AbstractASTTransformation implemen
         }
 
         protected List<PropertyInfo> getPropertyInfoFromClassNode(BuilderASTTransformation transform, AnnotationNode anno, ClassNode cNode, List<String> includes, List<String> excludes, boolean allNames, boolean allProperties) {
-            List<PropertyInfo> props = new ArrayList<PropertyInfo>();
-            List<String> seen = new ArrayList<String>();
+            List<PropertyInfo> props = new ArrayList<>();
+            List<String> seen = new ArrayList<>();
             for (PropertyNode pNode : BeanUtils.getAllProperties(cNode, false, false, allProperties)) {
                 if (shouldSkip(pNode.getName(), excludes, includes, allNames)) continue;
                 props.add(new PropertyInfo(pNode.getName(), pNode.getType()));

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java
index 2e9831c..30736b1 100644
--- a/src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java
@@ -92,10 +92,10 @@ public class CategoryASTTransformation implements ASTTransformation, Opcodes {
         ClassNode targetClass = getTargetClass(source, annotation);
         thisExpression.setType(targetClass);
 
-        final LinkedList<Set<String>> varStack = new LinkedList<Set<String>>();
+        final LinkedList<Set<String>> varStack = new LinkedList<>();
         if (!ensureNoInstanceFieldOrProperty(source, parent)) return;
 
-        Set<String> names = new HashSet<String>();
+        Set<String> names = new HashSet<>();
         for (FieldNode field : parent.getFields()) {
             names.add(field.getName());
         }
@@ -111,7 +111,7 @@ public class CategoryASTTransformation implements ASTTransformation, Opcodes {
             }
 
             private void addVariablesToStack(Parameter[] params) {
-                Set<String> names = new HashSet<String>(varStack.getLast());
+                Set<String> names = new HashSet<>(varStack.getLast());
                 for (Parameter param : params) {
                     names.add(param.getName());
                 }
@@ -134,7 +134,7 @@ public class CategoryASTTransformation implements ASTTransformation, Opcodes {
 
             @Override
             public void visitBlockStatement(BlockStatement block) {
-                Set<String> names = new HashSet<String>(varStack.getLast());
+                Set<String> names = new HashSet<>(varStack.getLast());
                 varStack.add(names);
                 super.visitBlockStatement(block);
                 varStack.remove(names);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java
index 7195255..6d8aaeb 100644
--- a/src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java
@@ -223,8 +223,8 @@ public class DelegateASTTransformation extends AbstractASTTransformation {
             if (cNode.getGetterMethod("get" + suffix) != null && cNode.getGetterMethod("is" + suffix) == null)
                 willHaveIsAccessor = false;
         }
-        Reference<Boolean> ownerWillHaveGetAccessor = new Reference<Boolean>();
-        Reference<Boolean> ownerWillHaveIsAccessor = new Reference<Boolean>();
+        Reference<Boolean> ownerWillHaveGetAccessor = new Reference<>();
+        Reference<Boolean> ownerWillHaveIsAccessor = new Reference<>();
         extractAccessorInfo(delegate.owner, name, ownerWillHaveGetAccessor, ownerWillHaveIsAccessor);
 
         for (String prefix : new String[]{"get", "is"}) {
@@ -343,7 +343,7 @@ public class DelegateASTTransformation extends AbstractASTTransformation {
 
     private static List<String> genericPlaceholderNames(MethodNode candidate) {
         GenericsType[] candidateGenericsTypes = candidate.getGenericsTypes();
-        List<String> names = new ArrayList<String>();
+        List<String> names = new ArrayList<>();
         if (candidateGenericsTypes != null) {
             for (GenericsType gt : candidateGenericsTypes) {
                 names.add(gt.getName());

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
index a5068f2..2175b79 100644
--- a/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
@@ -154,9 +154,9 @@ public class EqualsAndHashCodeASTTransformation extends AbstractASTTransformatio
     }
 
     private static Statement calculateHashStatements(ClassNode cNode, Expression hash, boolean includeFields, boolean callSuper, List<String> excludes, List<String> includes, boolean allNames, boolean allProperties) {
-        final Set<String> names = new HashSet<String>();
+        final Set<String> names = new HashSet<>();
         final List<PropertyNode> pList = getAllProperties(names, cNode, true, false, allProperties, false, false, false);
-        final List<FieldNode> fList = new ArrayList<FieldNode>();
+        final List<FieldNode> fList = new ArrayList<>();
         if (includeFields) {
             fList.addAll(getInstanceNonPropertyFields(cNode));
         }
@@ -251,7 +251,7 @@ public class EqualsAndHashCodeASTTransformation extends AbstractASTTransformatio
             body.addStatement(ifS(notX(callX(otherTyped, "canEqual", varX("this"))), returnS(constX(Boolean.FALSE,true))));
         }
 
-        final Set<String> names = new HashSet<String>();
+        final Set<String> names = new HashSet<>();
         final List<PropertyNode> pList = getAllProperties(names, cNode, true, includeFields, allProperties, false, false, false);
         for (PropertyNode pNode : pList) {
             if (shouldSkipUndefinedAware(pNode.getName(), excludes, includes, allNames)) continue;
@@ -272,7 +272,7 @@ public class EqualsAndHashCodeASTTransformation extends AbstractASTTransformatio
                 );
             }
         }
-        List<FieldNode> fList = new ArrayList<FieldNode>();
+        List<FieldNode> fList = new ArrayList<>();
         if (includeFields) {
             fList.addAll(getInstanceNonPropertyFields(cNode));
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java
index 115a90d..7ffa2d1 100644
--- a/src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java
@@ -206,7 +206,7 @@ public class FieldASTTransformation extends ClassCodeExpressionTransformer imple
     }
 
     private Expression adjustedArgList(Expression skip, List<Expression> origArgs) {
-        List<Expression> newArgs = new ArrayList<Expression>(origArgs.size() - 1);
+        List<Expression> newArgs = new ArrayList<>(origArgs.size() - 1);
         for (Expression origArg : origArgs) {
             if (skip != origArg) {
                 newArgs.add(origArg);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java
index b8cc56c..05f66d7 100644
--- a/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java
@@ -116,7 +116,7 @@ public class ImmutableASTTransformation extends AbstractASTTransformation implem
     }
 
     private void doMakeImmutable(ClassNode cNode, AnnotationNode node, PropertyHandler handler) {
-        List<PropertyNode> newProperties = new ArrayList<PropertyNode>();
+        List<PropertyNode> newProperties = new ArrayList<>();
 
         String cName = cNode.getName();
         if (!checkNotInterface(cNode, MY_TYPE_NAME)) return;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java
index f7db6e4..6b1f6cf 100644
--- a/src/main/java/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java
@@ -104,7 +104,7 @@ public class InheritConstructorsASTTransformation extends AbstractASTTransformat
     }
 
     private List<Expression> buildParams(Parameter[] origParams, Parameter[] params, Map<String, ClassNode> genericsSpec, boolean copyParameterAnnotations) {
-        List<Expression> theArgs = new ArrayList<Expression>();
+        List<Expression> theArgs = new ArrayList<>();
         for (int i = 0; i < origParams.length; i++) {
             Parameter p = origParams[i];
             ClassNode newType = correctToGenericsSpecRecurse(genericsSpec, p.getType());

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/MapConstructorASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/MapConstructorASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/MapConstructorASTTransformation.java
index 709cdb4..4bc2118 100644
--- a/src/main/java/org/codehaus/groovy/transform/MapConstructorASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/MapConstructorASTTransformation.java
@@ -148,12 +148,12 @@ public class MapConstructorASTTransformation extends AbstractASTTransformation i
             if (next.getFirstStatement() == null) iterator.remove();
         }
 
-        Set<String> names = new HashSet<String>();
+        Set<String> names = new HashSet<>();
         List<PropertyNode> superList;
         if (includeSuperProperties || includeSuperFields) {
             superList = getAllProperties(names, cNode, cNode.getSuperClass(), includeSuperProperties, includeSuperFields, false, allProperties, true, false, false, allNames, includeStatic);
         } else {
-            superList = new ArrayList<PropertyNode>();
+            superList = new ArrayList<>();
         }
         List<PropertyNode> list = getAllProperties(names, cNode, cNode, includeProperties, includeFields, false, allProperties, false, false, false, allNames, includeStatic);
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/MemoizedASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/MemoizedASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/MemoizedASTTransformation.java
index c20c075..f577ce8 100644
--- a/src/main/java/org/codehaus/groovy/transform/MemoizedASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/MemoizedASTTransformation.java
@@ -136,7 +136,7 @@ public class MemoizedASTTransformation extends AbstractASTTransformation {
     }
 
     private static List<AnnotationNode> filterAnnotations(List<AnnotationNode> annotations) {
-        List<AnnotationNode> result = new ArrayList<AnnotationNode>(annotations.size());
+        List<AnnotationNode> result = new ArrayList<>(annotations.size());
         for (AnnotationNode annotation : annotations) {
             if (!OVERRIDE_CLASSNODE.equals(annotation.getClassNode())) {
                 result.add(annotation);
@@ -154,7 +154,7 @@ public class MemoizedASTTransformation extends AbstractASTTransformation {
                                                                    int protectedCacheSize, int maxCacheSize) {
         Parameter[] srcParams = privateMethod.getParameters();
         Parameter[] newParams = cloneParams(srcParams);
-        List<Expression> argList = new ArrayList<Expression>(newParams.length);
+        List<Expression> argList = new ArrayList<>(newParams.length);
         for (int i = 0; i < srcParams.length; i++) {
             argList.add(varX(newParams[i]));
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/NamedVariantASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/NamedVariantASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/NamedVariantASTTransformation.java
index b5e85e7..e855004 100644
--- a/src/main/java/org/codehaus/groovy/transform/NamedVariantASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/NamedVariantASTTransformation.java
@@ -90,12 +90,12 @@ public class NamedVariantASTTransformation extends AbstractASTTransformation {
         }
 
         Parameter mapParam = param(GenericsUtils.nonGeneric(ClassHelper.MAP_TYPE), "__namedArgs");
-        List<Parameter> genParams = new ArrayList<Parameter>();
+        List<Parameter> genParams = new ArrayList<>();
         genParams.add(mapParam);
         ClassNode cNode = mNode.getDeclaringClass();
         final BlockStatement inner = new BlockStatement();
         ArgumentListExpression args = new ArgumentListExpression();
-        final List<String> propNames = new ArrayList<String>();
+        final List<String> propNames = new ArrayList<>();
 
         // first pass, just check for absence of annotations of interest
         boolean annoFound = false;
@@ -194,12 +194,12 @@ public class NamedVariantASTTransformation extends AbstractASTTransformation {
             }
         }
 
-        Set<String> names = new HashSet<String>();
+        Set<String> names = new HashSet<>();
         List<PropertyNode> props = getAllProperties(names, fromParam.getType(), true, false, false, true, false, true);
         for (String next : names) {
             if (hasDuplicates(mNode, propNames, next)) return false;
         }
-        List<MapEntryExpression> entries = new ArrayList<MapEntryExpression>();
+        List<MapEntryExpression> entries = new ArrayList<>();
         for (PropertyNode pNode : props) {
             String name = pNode.getName();
             entries.add(new MapEntryExpression(constX(name), propX(varX(mapParam), name)));

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
index ae71b14..27187a8 100644
--- a/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
@@ -121,7 +121,7 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
     };
 
     static {
-        nameToGlobalClassesNodesMap = new ConcurrentHashMap<String, ClassNode>(16, 0.9f, 1);
+        nameToGlobalClassesNodesMap = new ConcurrentHashMap<>(16, 0.9f, 1);
         for (Class globalClass : globalClasses) {
             nameToGlobalClassesNodesMap.put(globalClass.getSimpleName(), ClassHelper.makeCached(globalClass));
         }
@@ -344,7 +344,7 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
 
 
     private void checkDuplicateNameClashes(ListExpression list) {
-        final Set<String> seen = new HashSet<String>();
+        final Set<String> seen = new HashSet<>();
         @SuppressWarnings("unchecked") final List<ClassExpression> classes = (List) list.getExpressions();
         for (ClassExpression ce : classes) {
             final String name = ce.getType().getNameWithoutPackage();
@@ -406,7 +406,7 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
                 final List<Expression> argExpList = argsListExp.getExpressions();
                 final VariableExpression thisVarExp = new VariableExpression("this");
 
-                final List<Expression> expressionsWithThis = new ArrayList<Expression>(argExpList.size() + 1);
+                final List<Expression> expressionsWithThis = new ArrayList<>(argExpList.size() + 1);
                 expressionsWithThis.add(thisVarExp);
                 expressionsWithThis.addAll(argExpList);
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
index 70851dd..eec0728 100644
--- a/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
@@ -116,8 +116,8 @@ public class PackageScopeASTTransformation extends AbstractASTTransformation {
         }
         if (value.contains(PackageScopeTarget.FIELDS)) {
             final List<PropertyNode> pList = cNode.getProperties();
-            List<PropertyNode> foundProps = new ArrayList<PropertyNode>();
-            List<String> foundNames = new ArrayList<String>();
+            List<PropertyNode> foundProps = new ArrayList<>();
+            List<String> foundNames = new ArrayList<>();
             for (PropertyNode pNode : pList) {
                 foundProps.add(pNode);
                 foundNames.add(pNode.getName());
@@ -163,7 +163,7 @@ public class PackageScopeASTTransformation extends AbstractASTTransformation {
     }
 
     private static List<groovy.transform.PackageScopeTarget> determineTargets(Expression expr) {
-        List<groovy.transform.PackageScopeTarget> list = new ArrayList<groovy.transform.PackageScopeTarget>();
+        List<groovy.transform.PackageScopeTarget> list = new ArrayList<>();
         if (expr instanceof PropertyExpression) {
             list.add(extractTarget((PropertyExpression) expr));
         } else if (expr instanceof ListExpression) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/SortableASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/SortableASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/SortableASTTransformation.java
index 68c0c72..332f726 100644
--- a/src/main/java/org/codehaus/groovy/transform/SortableASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/SortableASTTransformation.java
@@ -139,7 +139,7 @@ public class SortableASTTransformation extends AbstractASTTransformation {
     }
 
     private static Statement createCompareToMethodBody(List<PropertyNode> properties, boolean reversed) {
-        List<Statement> statements = new ArrayList<Statement>();
+        List<Statement> statements = new ArrayList<>();
 
         // if (this.is(other)) return 0;
         statements.add(ifS(callThisX("is", args(OTHER)), returnS(constX(0))));
@@ -220,10 +220,10 @@ public class SortableASTTransformation extends AbstractASTTransformation {
     private List<PropertyNode> findProperties(AnnotationNode annotation, final ClassNode classNode, final List<String> includes,
                                               final List<String> excludes, final boolean allProperties,
                                               final boolean includeSuperProperties, final boolean allNames) {
-        Set<String> names = new HashSet<String>();
+        Set<String> names = new HashSet<>();
         List<PropertyNode> props = getAllProperties(names, classNode, classNode, true, false, allProperties,
                 false, includeSuperProperties, false, false, allNames, false);
-        List<PropertyNode> properties = new ArrayList<PropertyNode>();
+        List<PropertyNode> properties = new ArrayList<>();
         for (PropertyNode property : props) {
             String propertyName = property.getName();
             if ((excludes != null && excludes.contains(propertyName)) ||

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
index 3a76685..702b65e 100644
--- a/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
@@ -177,7 +177,7 @@ public class ToStringASTTransformation extends AbstractASTTransformation {
         // def _result = new StringBuilder()
         final Expression result = varX("_result");
         body.addStatement(declS(result, ctorX(STRINGBUILDER_TYPE)));
-        List<ToStringElement> elements = new ArrayList<ToStringElement>();
+        List<ToStringElement> elements = new ArrayList<>();
 
         // def $toStringFirst = true
         final VariableExpression first = varX("$toStringFirst");
@@ -187,12 +187,12 @@ public class ToStringASTTransformation extends AbstractASTTransformation {
         String className = (includePackage) ? cNode.getName() : cNode.getNameWithoutPackage();
         body.addStatement(appendS(result, constX(className + "(")));
 
-        Set<String> names = new HashSet<String>();
+        Set<String> names = new HashSet<>();
         List<PropertyNode> superList;
         if (includeSuperProperties || includeSuperFields) {
             superList = getAllProperties(names, cNode, cNode.getSuperClass(), includeSuperProperties, includeSuperFields, allProperties, false, true, true, true, allNames, false);
         } else {
-            superList = new ArrayList<PropertyNode>();
+            superList = new ArrayList<>();
         }
         List<PropertyNode> list = getAllProperties(names, cNode, cNode,true, includeFields, allProperties, false, false, true, false, allNames, false);
         list.addAll(superList);


[7/8] groovy git commit: Minor refactoring: Explicit type can be replaced with <>

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/apache/groovy/util/Maps.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/groovy/util/Maps.java b/src/main/java/org/apache/groovy/util/Maps.java
index b560a4f..701ac55 100644
--- a/src/main/java/org/apache/groovy/util/Maps.java
+++ b/src/main/java/org/apache/groovy/util/Maps.java
@@ -29,7 +29,7 @@ import java.util.Map;
 public abstract class Maps {
 
     public static <K, V> Map<K, V> of(K k1, V v1) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
 
@@ -37,7 +37,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -46,7 +46,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -56,7 +56,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -67,7 +67,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -79,7 +79,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -92,7 +92,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -106,7 +106,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -121,7 +121,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -137,7 +137,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -154,7 +154,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -172,7 +172,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -191,7 +191,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -211,7 +211,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -232,7 +232,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -254,7 +254,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -277,7 +277,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -301,7 +301,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -326,7 +326,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -352,7 +352,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -379,7 +379,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -407,7 +407,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -436,7 +436,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -466,7 +466,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -497,7 +497,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -529,7 +529,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -562,7 +562,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -596,7 +596,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -631,7 +631,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -667,7 +667,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -704,7 +704,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -742,7 +742,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -781,7 +781,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -821,7 +821,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -862,7 +862,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -904,7 +904,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -947,7 +947,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -991,7 +991,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1036,7 +1036,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1082,7 +1082,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1129,7 +1129,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1177,7 +1177,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1226,7 +1226,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1276,7 +1276,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1327,7 +1327,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1379,7 +1379,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1432,7 +1432,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1486,7 +1486,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1541,7 +1541,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1597,7 +1597,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1654,7 +1654,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1712,7 +1712,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1771,7 +1771,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1831,7 +1831,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1892,7 +1892,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -1954,7 +1954,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2017,7 +2017,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2081,7 +2081,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2146,7 +2146,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2212,7 +2212,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2279,7 +2279,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2347,7 +2347,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2416,7 +2416,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2486,7 +2486,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2557,7 +2557,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2629,7 +2629,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2702,7 +2702,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2776,7 +2776,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2851,7 +2851,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -2927,7 +2927,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3004,7 +3004,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3082,7 +3082,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3161,7 +3161,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3241,7 +3241,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3322,7 +3322,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3404,7 +3404,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3487,7 +3487,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3571,7 +3571,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3656,7 +3656,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3742,7 +3742,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3829,7 +3829,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -3917,7 +3917,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4006,7 +4006,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4096,7 +4096,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4187,7 +4187,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4279,7 +4279,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4372,7 +4372,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4466,7 +4466,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4561,7 +4561,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4657,7 +4657,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4754,7 +4754,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4852,7 +4852,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -4951,7 +4951,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -5051,7 +5051,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -5152,7 +5152,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94, K k95, V v95) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -5254,7 +5254,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94, K k95, V v95, K k96, V v96) {
-        Map<K, V> map = new LinkedHashMap<K, V>();
+        Map<K, V> map = new LinkedHashMap<>();
 
         map.put(k1, v1);
         map.put(k2, v2);
@@ -5357,7 +5357,7 @@ public abstract class Maps {
     }
 
     public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v7
 0, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v

<TRUNCATED>

[5/8] groovy git commit: Minor refactoring: Explicit type can be replaced with <>

Posted by su...@apache.org.
http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/ClassGenerator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/ClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/ClassGenerator.java
index 2ed8661..4697f03 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ClassGenerator.java
@@ -33,7 +33,7 @@ import java.util.LinkedList;
  */
 public abstract class ClassGenerator extends ClassCodeVisitorSupport implements Opcodes {
     // inner classes created while generating bytecode
-    protected LinkedList<ClassNode> innerClasses = new LinkedList<ClassNode>();
+    protected LinkedList<ClassNode> innerClasses = new LinkedList<>();
 
     public LinkedList<ClassNode> getInnerClasses() {
         return innerClasses;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java b/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
index 8ef3a04..f9829ed 100644
--- a/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
@@ -81,7 +81,7 @@ public class EnumCompletionVisitor extends ClassCodeVisitorSupport {
     private static void addImplicitConstructors(ClassNode enumClass, boolean aic) {
         if (aic) {
             ClassNode sn = enumClass.getSuperClass();
-            List<ConstructorNode> sctors = new ArrayList<ConstructorNode>(sn.getDeclaredConstructors());
+            List<ConstructorNode> sctors = new ArrayList<>(sn.getDeclaredConstructors());
             if (sctors.isEmpty()) {
                 addMapConstructors(enumClass);
             } else {
@@ -127,7 +127,7 @@ public class EnumCompletionVisitor extends ClassCodeVisitorSupport {
             argsExprs.add(1, intVariable);
         } else {
             // add a super call
-            List<Expression> args = new ArrayList<Expression>();
+            List<Expression> args = new ArrayList<>();
             args.add(stringVariable);
             args.add(intVariable);
             if (isAic) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java b/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
index 743801f..c9b47e1 100644
--- a/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
@@ -317,10 +317,10 @@ public class EnumVisitor extends ClassCodeVisitorSupport {
 
         // static init
         List<FieldNode> fields = enumClass.getFields();
-        List<Expression> arrayInit = new ArrayList<Expression>();
+        List<Expression> arrayInit = new ArrayList<>();
         int value = -1;
         Token assign = Token.newSymbol(Types.ASSIGN, -1, -1);
-        List<Statement> block = new ArrayList<Statement>();
+        List<Statement> block = new ArrayList<>();
         FieldNode tempMin = null;
         FieldNode tempMax = null;
         for (FieldNode field : fields) {
@@ -340,7 +340,7 @@ public class EnumVisitor extends ClassCodeVisitorSupport {
                 }
             } else {
                 ListExpression oldArgs = (ListExpression) field.getInitialExpression();
-                List<MapEntryExpression> savedMapEntries = new ArrayList<MapEntryExpression>();
+                List<MapEntryExpression> savedMapEntries = new ArrayList<>();
                 for (Expression exp : oldArgs.getExpressions()) {
                     if (exp instanceof MapEntryExpression) {
                         savedMapEntries.add((MapEntryExpression) exp);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java b/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
index 8b7ed89..f58026c 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
@@ -152,14 +152,14 @@ public class ExtendedVerifier extends ClassCodeVisitorSupport {
             addError("Annotations are not supported in the current runtime. " + JVM_ERROR_MESSAGE, node);
             return;
         }
-        Map<String, List<AnnotationNode>> runtimeAnnotations = new LinkedHashMap<String, List<AnnotationNode>>();
+        Map<String, List<AnnotationNode>> runtimeAnnotations = new LinkedHashMap<>();
         for (AnnotationNode unvisited : node.getAnnotations()) {
             AnnotationNode visited = visitAnnotation(unvisited);
             String name = visited.getClassNode().getName();
             if (visited.hasRuntimeRetention()) {
                 List<AnnotationNode> seen = runtimeAnnotations.get(name);
                 if (seen == null) {
-                    seen = new ArrayList<AnnotationNode>();
+                    seen = new ArrayList<>();
                 }
                 seen.add(visited);
                 runtimeAnnotations.put(name, seen);
@@ -200,7 +200,7 @@ public class ExtendedVerifier extends ClassCodeVisitorSupport {
                 if (repeatable != null) {
                     AnnotationNode collector = new AnnotationNode(repeatable);
                     collector.setRuntimeRetention(true); // checked earlier
-                    List<Expression> annos = new ArrayList<Expression>();
+                    List<Expression> annos = new ArrayList<>();
                     for (AnnotationNode an : next.getValue()) {
                         annos.add(new AnnotationConstantExpression(an));
                     }
@@ -267,7 +267,7 @@ public class ExtendedVerifier extends ClassCodeVisitorSupport {
                 MethodNode found = getDeclaredMethodCorrected(genericsSpec, mn, correctedNext);
                 if (found != null) break;
             }
-            List<ClassNode> ifaces = new ArrayList<ClassNode>(Arrays.asList(next.getInterfaces()));
+            List<ClassNode> ifaces = new ArrayList<>(Arrays.asList(next.getInterfaces()));
             Map updatedGenericsSpec = new HashMap(genericsSpec);
             while (!ifaces.isEmpty()) {
                 ClassNode origInterface = ifaces.remove(0);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java b/src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java
index 84c9546..2d9ce61 100644
--- a/src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java
+++ b/src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java
@@ -88,7 +88,7 @@ public class FinalVariableAnalyzer extends ClassCodeVisitorSupport {
         }
     }
 
-    private final Deque<Map<Variable, VariableState>> assignmentTracker = new LinkedList<Map<Variable, VariableState>>();
+    private final Deque<Map<Variable, VariableState>> assignmentTracker = new LinkedList<>();
 
     public FinalVariableAnalyzer(final SourceUnit sourceUnit) {
         this(sourceUnit, null);
@@ -138,7 +138,7 @@ public class FinalVariableAnalyzer extends ClassCodeVisitorSupport {
     @Override
     public void visitBlockStatement(final BlockStatement block) {
         Set<Variable> old = declaredFinalVariables;
-        declaredFinalVariables = new HashSet<Variable>();
+        declaredFinalVariables = new HashSet<>();
         super.visitBlockStatement(block);
         declaredFinalVariables = old;
     }
@@ -283,7 +283,7 @@ public class FinalVariableAnalyzer extends ClassCodeVisitorSupport {
 
         // merge if/else branches
         Map<Variable, VariableState> curState = getState();
-        Set<Variable> allVars = new HashSet<Variable>();
+        Set<Variable> allVars = new HashSet<>();
         allVars.addAll(curState.keySet());
         allVars.addAll(ifState.keySet());
         allVars.addAll(elseState.keySet());
@@ -317,24 +317,24 @@ public class FinalVariableAnalyzer extends ClassCodeVisitorSupport {
     @Override
     public void visitTryCatchFinally(final TryCatchStatement statement) {
         visitStatement(statement);
-        Map<Variable, VariableState> beforeTryState = new HashMap<Variable, VariableState>(getState());
+        Map<Variable, VariableState> beforeTryState = new HashMap<>(getState());
         pushState();
         Statement tryStatement = statement.getTryStatement();
         tryStatement.visit(this);
-        Map<Variable, VariableState> afterTryState = new HashMap<Variable, VariableState>(getState());
+        Map<Variable, VariableState> afterTryState = new HashMap<>(getState());
         Statement finallyStatement = statement.getFinallyStatement();
         List<Map<Variable, VariableState>> afterStates = new ArrayList<>();
         // the try finally case
         visitPossiblyEmptyStatement(finallyStatement);
         if (!returningBlock(tryStatement)) {
-            afterStates.add(new HashMap<Variable, VariableState>(getState()));
+            afterStates.add(new HashMap<>(getState()));
         }
         popState();
         // now the finally only case but only if no catches
         if (statement.getCatchStatements().isEmpty()) {
             visitPossiblyEmptyStatement(finallyStatement);
             if (!returningBlock(tryStatement)) {
-                afterStates.add(new HashMap<Variable, VariableState>(getState()));
+                afterStates.add(new HashMap<>(getState()));
             }
         }
         for (CatchStatement catchStatement : statement.getCatchStatements()) {
@@ -376,7 +376,7 @@ public class FinalVariableAnalyzer extends ClassCodeVisitorSupport {
         catchStatement.visit(this);
         visitPossiblyEmptyStatement(finallyStatement);
         if (code == null || !returningBlock(code)) {
-            afterTryCatchStates.add(new HashMap<Variable, VariableState>(getState()));
+            afterTryCatchStates.add(new HashMap<>(getState()));
         }
         popState();
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java b/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
index d2d570f..8f9d4f6 100644
--- a/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
@@ -160,9 +160,9 @@ public class InnerClassVisitor extends InnerClassVisitorHelper implements Opcode
         BlockStatement block = new BlockStatement();
         // parameters = parameters of the constructor
         final int additionalParamCount = 1 + scope.getReferencedLocalVariablesCount();
-        List<Parameter> parameters = new ArrayList<Parameter>(expressions.size() + additionalParamCount);
+        List<Parameter> parameters = new ArrayList<>(expressions.size() + additionalParamCount);
         // superCallArguments = arguments for the super call == the constructor call arguments
-        List<Expression> superCallArguments = new ArrayList<Expression>(expressions.size());
+        List<Expression> superCallArguments = new ArrayList<>(expressions.size());
 
         // first we add a super() call for all expressions given in the 
         // constructor call expression

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitorHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitorHelper.java b/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitorHelper.java
index 7ed0629..c6a59aa 100644
--- a/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitorHelper.java
+++ b/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitorHelper.java
@@ -47,10 +47,10 @@ import java.util.List;
 
 public abstract class InnerClassVisitorHelper extends ClassCodeVisitorSupport {
     protected static void setPropertyGetterDispatcher(BlockStatement block, Expression thiz, Parameter[] parameters) {
-        List<ConstantExpression> gStringStrings = new ArrayList<ConstantExpression>();
+        List<ConstantExpression> gStringStrings = new ArrayList<>();
         gStringStrings.add(new ConstantExpression(""));
         gStringStrings.add(new ConstantExpression(""));
-        List<Expression> gStringValues = new ArrayList<Expression>();
+        List<Expression> gStringValues = new ArrayList<>();
         gStringValues.add(new VariableExpression(parameters[0]));
         block.addStatement(
                 new ReturnStatement(
@@ -63,10 +63,10 @@ public abstract class InnerClassVisitorHelper extends ClassCodeVisitorSupport {
     }
 
     protected static void setPropertySetterDispatcher(BlockStatement block, Expression thiz, Parameter[] parameters) {
-        List<ConstantExpression> gStringStrings = new ArrayList<ConstantExpression>();
+        List<ConstantExpression> gStringStrings = new ArrayList<>();
         gStringStrings.add(new ConstantExpression(""));
         gStringStrings.add(new ConstantExpression(""));
-        List<Expression> gStringValues = new ArrayList<Expression>();
+        List<Expression> gStringValues = new ArrayList<>();
         gStringValues.add(new VariableExpression(parameters[0]));
         block.addStatement(
                 new ExpressionStatement(
@@ -83,10 +83,10 @@ public abstract class InnerClassVisitorHelper extends ClassCodeVisitorSupport {
     }
 
     protected static void setMethodDispatcherCode(BlockStatement block, Expression thiz, Parameter[] parameters) {
-        List<ConstantExpression> gStringStrings = new ArrayList<ConstantExpression>();
+        List<ConstantExpression> gStringStrings = new ArrayList<>();
         gStringStrings.add(new ConstantExpression(""));
         gStringStrings.add(new ConstantExpression(""));
-        List<Expression> gStringValues = new ArrayList<Expression>();
+        List<Expression> gStringValues = new ArrayList<>();
         gStringValues.add(new VariableExpression(parameters[0]));
         block.addStatement(
                 new ReturnStatement(

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/Verifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/Verifier.java b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
index cd234f0..7b9bd32 100644
--- a/src/main/java/org/codehaus/groovy/classgen/Verifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
@@ -216,11 +216,11 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
         }
 
         ClassNode[] classNodes = classNode.getInterfaces();
-        List<String> interfaces = new ArrayList<String>();
+        List<String> interfaces = new ArrayList<>();
         for (ClassNode classNode : classNodes) {
             interfaces.add(classNode.getName());
         }
-        Set<String> interfaceSet = new HashSet<String>(interfaces);
+        Set<String> interfaceSet = new HashSet<>(interfaces);
         if (interfaceSet.size() != interfaces.size()) {
             throw new RuntimeParserException("Duplicate interfaces in implements list: " + interfaces, classNode);
         }
@@ -281,7 +281,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
     }
 
     private static void checkForDuplicateMethods(ClassNode cn) {
-        Set<String> descriptors = new HashSet<String>();
+        Set<String> descriptors = new HashSet<>();
         for (MethodNode mn : cn.getMethods()) {
             if (mn.isSynthetic()) continue;
             String mySig = methodDescriptorWithoutReturnType(mn);
@@ -970,7 +970,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
                         }
                     });
 
-            List<Statement> swapCall = new ArrayList<Statement>(1);
+            List<Statement> swapCall = new ArrayList<>(1);
             swapCall.add(seq);
             node.addStaticInitializerStatements(swapCall, true);
         }
@@ -987,11 +987,11 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
         // in case of this(...) let the other constructor do the init
         if (first != null && (first.isThisCall())) return;
 
-        List<Statement> statements = new ArrayList<Statement>();
-        List<Statement> staticStatements = new ArrayList<Statement>();
+        List<Statement> statements = new ArrayList<>();
+        List<Statement> staticStatements = new ArrayList<>();
         final boolean isEnum = node.isEnum();
-        List<Statement> initStmtsAfterEnumValuesInit = new ArrayList<Statement>();
-        Set<String> explicitStaticPropsInEnum = new HashSet<String>();
+        List<Statement> initStmtsAfterEnumValuesInit = new ArrayList<>();
+        Set<String> explicitStaticPropsInEnum = new HashSet<>();
         if (isEnum) {
             for (PropertyNode propNode : node.getProperties()) {
                 if (!propNode.isSynthetic() && propNode.getField().isStatic()) {
@@ -1223,10 +1223,10 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
 
         // unimplemented abstract methods from interfaces
         Map<String, MethodNode> abstractMethods = ClassNodeUtils.getDeclaredMethodsFromInterfaces(classNode);
-        Map<String, MethodNode> allInterfaceMethods = new HashMap<String, MethodNode>(abstractMethods);
+        Map<String, MethodNode> allInterfaceMethods = new HashMap<>(abstractMethods);
         ClassNodeUtils.addDeclaredMethodsFromAllInterfaces(classNode, allInterfaceMethods);
 
-        List<MethodNode> declaredMethods = new ArrayList<MethodNode>(classNode.getMethods());
+        List<MethodNode> declaredMethods = new ArrayList<>(classNode.getMethods());
         // remove all static, private and package private methods
         for (Iterator methodsIterator = declaredMethods.iterator(); methodsIterator.hasNext(); ) {
             MethodNode m = (MethodNode) methodsIterator.next();
@@ -1246,7 +1246,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
 
         addCovariantMethods(classNode, declaredMethods, abstractMethods, methodsToAdd, genericsSpec);
 
-        Map<String, MethodNode> declaredMethodsMap = new HashMap<String, MethodNode>();
+        Map<String, MethodNode> declaredMethodsMap = new HashMap<>();
         if (!methodsToAdd.isEmpty()) {
             for (MethodNode mn : declaredMethods) {
                 declaredMethodsMap.put(mn.getTypeDescriptor(), mn);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java
index 2200c30..b3fd0ca 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java
@@ -157,7 +157,7 @@ public class AssertionWriter {
         BooleanExpression booleanExpression = statement.getBooleanExpression();
         // push expression string onto stack
         String expressionText = booleanExpression.getText();
-        List<String> list = new ArrayList<String>();
+        List<String> list = new ArrayList<>();
         addVariableNames(booleanExpression, list);
         if (list.isEmpty()) {
             mv.visitLdcInsn(expressionText);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionMultiTypeDispatcher.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionMultiTypeDispatcher.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionMultiTypeDispatcher.java
index 640964f..0ec09a8 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionMultiTypeDispatcher.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionMultiTypeDispatcher.java
@@ -106,7 +106,7 @@ public class BinaryExpressionMultiTypeDispatcher extends BinaryExpressionHelper
         };
     }
 
-    public static final Map<ClassNode,Integer> typeMap = new HashMap<ClassNode,Integer>(14);
+    public static final Map<ClassNode,Integer> typeMap = new HashMap<>(14);
     static {
         typeMap.put(int_TYPE,       1); typeMap.put(long_TYPE,          2);
         typeMap.put(double_TYPE,    3); typeMap.put(char_TYPE,          4);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
index b99ffe5..24465f2 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
@@ -102,7 +102,7 @@ public class CallSiteWriter {
         METHOD_OO_DESC          = "(Ljava/lang/Object;)Ljava/lang/Object;",
         CREATE_CSA_METHOD       = "$createCallSiteArray";
     public static final String CONSTRUCTOR = "<$constructor$>";
-    private final List<String> callSites = new ArrayList<String>(32);
+    private final List<String> callSites = new ArrayList<>(32);
     private int callSiteArrayVarIndex = -1;
     private final WriterController controller;
 
@@ -163,7 +163,7 @@ public class CallSiteWriter {
     }
         
     private void generateCreateCallSiteArray() { 
-        List<String> callSiteInitMethods = new LinkedList<String>(); 
+        List<String> callSiteInitMethods = new LinkedList<>();
         int index = 0; 
         int methodIndex = 0; 
         final int size = callSites.size(); 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
index 6ca8574..3909294 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
@@ -76,7 +76,7 @@ public class ClosureWriter {
 
     public ClosureWriter(WriterController wc) {
         this.controller = wc;
-        closureClassMap = new HashMap<Expression,ClassNode>();
+        closureClassMap = new HashMap<>();
         factory = new WriterControllerFactory() {
             public WriterController makeController(final WriterController normalController) {
                 return controller;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java b/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
index 35133bb..4fb762b 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
@@ -100,8 +100,8 @@ public class CompileStack implements Opcodes {
     // list containing finally blocks
     // such a block is created by synchronized or finally and
     // must be called for break/continue/return
-    private LinkedList<BlockRecorder> finallyBlocks = new LinkedList<BlockRecorder>();
-    private final LinkedList<BlockRecorder> visitedBlocks = new LinkedList<BlockRecorder>();
+    private LinkedList<BlockRecorder> finallyBlocks = new LinkedList<>();
+    private final LinkedList<BlockRecorder> visitedBlocks = new LinkedList<>();
 
     private Label thisStartLabel, thisEndLabel;
 
@@ -111,9 +111,9 @@ public class CompileStack implements Opcodes {
     private final LinkedList stateStack = new LinkedList();
 
     // handle different states for the implicit "this"
-    private final LinkedList<Boolean> implicitThisStack = new LinkedList<Boolean>();
+    private final LinkedList<Boolean> implicitThisStack = new LinkedList<>();
     // handle different states for being on the left hand side
-    private final LinkedList<Boolean> lhsStack = new LinkedList<Boolean>();
+    private final LinkedList<Boolean> lhsStack = new LinkedList<>();
     {
         implicitThisStack.add(false);
         lhsStack.add(false);
@@ -129,8 +129,8 @@ public class CompileStack implements Opcodes {
     // in a loop where foo is a label.
     private final Map namedLoopContinueLabel = new HashMap();
     private String className;
-    private final LinkedList<ExceptionTableEntry> typedExceptions = new LinkedList<ExceptionTableEntry>();
-    private final LinkedList<ExceptionTableEntry> untypedExceptions = new LinkedList<ExceptionTableEntry>();
+    private final LinkedList<ExceptionTableEntry> typedExceptions = new LinkedList<>();
+    private final LinkedList<ExceptionTableEntry> untypedExceptions = new LinkedList<>();
     // stores if on left-hand-side during compilation
     private boolean lhs;
     // stores if implicit or explicit this is used.
@@ -148,7 +148,7 @@ public class CompileStack implements Opcodes {
         public Runnable excludedStatement;
         public final LinkedList<LabelRange> ranges;
         public BlockRecorder() {
-            ranges = new LinkedList<LabelRange>();
+            ranges = new LinkedList<>();
         }
         public BlockRecorder(Runnable excludedStatement) {
             this();
@@ -768,7 +768,7 @@ public class CompileStack implements Opcodes {
             blocksToRemove = result.finallyBlocks;
         }
 
-        List<BlockRecorder> blocks = new LinkedList<BlockRecorder>(finallyBlocks);
+        List<BlockRecorder> blocks = new LinkedList<>(finallyBlocks);
         blocks.removeAll(blocksToRemove);
         applyBlockRecorder(blocks);
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
index 899d5cb..576c06d 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
@@ -262,7 +262,7 @@ public class InvocationWriter {
                 operandStack.doGroovyCast(para[i].getType());
             }
             // last parameters wrapped in an array
-            List<Expression> lastParams = new LinkedList<Expression>();
+            List<Expression> lastParams = new LinkedList<>();
             for (int i=para.length-1; i<argumentList.size();i++) {
                 lastParams.add(argumentList.get(i));
             }
@@ -717,7 +717,7 @@ public class InvocationWriter {
 
     private static List<ConstructorNode> sortConstructors(ConstructorCallExpression call, ClassNode callNode) {
         // sort in a new list to prevent side effects
-        List<ConstructorNode> constructors = new ArrayList<ConstructorNode>(callNode.getDeclaredConstructors());
+        List<ConstructorNode> constructors = new ArrayList<>(callNode.getDeclaredConstructors());
         Comparator comp = new Comparator() {
             public int compare(Object arg0, Object arg1) {
                 ConstructorNode c0 = (ConstructorNode) arg0;
@@ -789,7 +789,7 @@ public class InvocationWriter {
             mv.visitTypeInsn(NEW, BytecodeHelper.getClassInternalName(callNode));
         }
         mv.visitInsn(SWAP);
-        TreeMap<Integer,ConstructorNode> sortedConstructors = new TreeMap<Integer, ConstructorNode>();
+        TreeMap<Integer,ConstructorNode> sortedConstructors = new TreeMap<>();
         for (ConstructorNode constructor : constructors) {
             String typeDescriptor = BytecodeHelper.getMethodDescriptor(ClassHelper.VOID_TYPE, constructor.getParameters());
             int hash = BytecodeHelper.hashCode(typeDescriptor);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/MopWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/MopWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/MopWriter.java
index 8d1c429..08bcab3 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/MopWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/MopWriter.java
@@ -96,7 +96,7 @@ public class MopWriter {
 
     private static Set<MopKey> buildCurrentClassSignatureSet(List<MethodNode> methods) {
         if (methods.isEmpty()) return Collections.EMPTY_SET;
-        Set<MopKey> result = new HashSet<MopKey>(methods.size());
+        Set<MopKey> result = new HashSet<>(methods.size());
         for (MethodNode mn : methods) {
             MopKey key = new MopKey(mn.getName(), mn.getParameters());
             result.add(key);
@@ -116,8 +116,8 @@ public class MopWriter {
      * @see #generateMopCalls(LinkedList, boolean)
      */
     private void visitMopMethodList(List<MethodNode> methods, boolean isThis, Set<MopKey> useOnlyIfDeclaredHereToo, List<String> orNameMentionedHere) {
-        Map<MopKey, MethodNode> mops = new HashMap<MopKey, MethodNode>();
-        LinkedList<MethodNode> mopCalls = new LinkedList<MethodNode>();
+        Map<MopKey, MethodNode> mops = new HashMap<>();
+        LinkedList<MethodNode> mopCalls = new LinkedList<>();
         for (MethodNode mn : methods) {
             // mop methods are helper for this and super calls and do direct calls
             // to the target methods. Such a method cannot be abstract or a bridge

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java b/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
index 5dc3743..7e1bbac 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
@@ -81,7 +81,7 @@ import static org.objectweb.asm.Opcodes.SWAP;
 public class OperandStack {
 
     private final WriterController controller;
-    private final List<ClassNode> stack = new ArrayList<ClassNode>();
+    private final List<ClassNode> stack = new ArrayList<>();
 
     public OperandStack(WriterController wc) {
         this.controller = wc;        

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
index fb07f94..f3fe4da 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
@@ -482,7 +482,7 @@ public class OptimizingStatementWriter extends StatementWriter {
             private boolean[] involvedTypes = new boolean[typeMapKeyNames.length];
         }
         private OptimizeFlagsEntry current = new OptimizeFlagsEntry();
-        private final LinkedList<OptimizeFlagsEntry> olderEntries = new LinkedList<OptimizeFlagsEntry>();
+        private final LinkedList<OptimizeFlagsEntry> olderEntries = new LinkedList<>();
         public void push() {
             olderEntries.addLast(current);
             current = new OptimizeFlagsEntry();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java b/src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java
index fe7a21e..0850de3 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java
@@ -75,7 +75,7 @@ public class WriterController {
     private int bytecodeVersion = Opcodes.V1_8;
     private int lineNumber = -1;
     private int helperMethodIndex = 0;
-    private List<String> superMethodNames = new ArrayList<String>();
+    private List<String> superMethodNames = new ArrayList<>();
 
     public void init(AsmClassGenerator asmClassGenerator, GeneratorContext gcon, ClassVisitor cv, ClassNode cn) {
         CompilerConfiguration config = cn.getCompileUnit().getConfig();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java
index 6f4d948..b2b2aaf 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java
@@ -278,7 +278,7 @@ public class StaticInvocationWriter extends InvocationWriter {
 
             MethodVisitor mv = controller.getMethodVisitor();
             int argumentsToRemove = 0;
-            List<Expression> argumentList = new LinkedList<Expression>(args.getExpressions());
+            List<Expression> argumentList = new LinkedList<>(args.getExpressions());
 
             if (emn.isStaticExtension()) {
                 // it's a static extension method
@@ -448,7 +448,7 @@ public class StaticInvocationWriter extends InvocationWriter {
                 }
             }
             // last parameters wrapped in an array
-            List<Expression> lastParams = new LinkedList<Expression>();
+            List<Expression> lastParams = new LinkedList<>();
             for (int i = para.length - 1; i < argumentListSize; i++) {
                 lastParams.add(argumentList.get(i));
             }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
index 45cc509..0c833e1 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
@@ -333,7 +333,7 @@ public class StaticTypesLambdaWriter extends LambdaWriter {
         Parameter[] localVariableParameters = getLambdaSharedVariables(expression);
         removeInitialValues(localVariableParameters);
 
-        List<Parameter> methodParameterList = new LinkedList<Parameter>(Arrays.asList(parametersWithExactType));
+        List<Parameter> methodParameterList = new LinkedList<>(Arrays.asList(parametersWithExactType));
         prependEnclosingThis(methodParameterList);
 
         MethodNode methodNode =

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeUtil.java b/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeUtil.java
index 9b79858..83157ab 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeUtil.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeUtil.java
@@ -142,7 +142,7 @@ public abstract class TypeUtil {
             dimension++;
         } while ((type = type.getComponentType()).isArray());
 
-        return new Tuple2<ClassNode, Integer>(type, dimension);
+        return new Tuple2<>(type, dimension);
     }
 
     private static final String REF_DESCRIPTION = "L";

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/ASTTransformationsContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/ASTTransformationsContext.java b/src/main/java/org/codehaus/groovy/control/ASTTransformationsContext.java
index ae95275..b5f7649 100644
--- a/src/main/java/org/codehaus/groovy/control/ASTTransformationsContext.java
+++ b/src/main/java/org/codehaus/groovy/control/ASTTransformationsContext.java
@@ -32,7 +32,7 @@ public class ASTTransformationsContext {
     protected final GroovyClassLoader transformLoader;  // Classloader for global and local transforms
 
     protected final CompilationUnit compilationUnit; // The compilation unit global AST transformations are applied on
-    protected final Set<String> globalTransformNames = new HashSet<String>(); // collected AST transformation names
+    protected final Set<String> globalTransformNames = new HashSet<>(); // collected AST transformation names
 
     public ASTTransformationsContext(final CompilationUnit compilationUnit, final GroovyClassLoader transformLoader) {
         this.compilationUnit = compilationUnit;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
index 4a4f0ff..5f357b8 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
@@ -160,15 +160,15 @@ public class CompilationUnit extends ProcessingUnit {
         super(configuration, loader, null);
 
         this.astTransformationsContext = new ASTTransformationsContext(this, transformLoader);
-        this.names = new ArrayList<String>();
-        this.queuedSources = new LinkedList<SourceUnit>();
-        this.sources = new HashMap<String, SourceUnit>();
+        this.names = new ArrayList<>();
+        this.queuedSources = new LinkedList<>();
+        this.sources = new HashMap<>();
         this.summariesBySourceName = new HashMap();
         this.summariesByPublicClassName = new HashMap();
         this.classSourcesByPublicClassName = new HashMap();
 
         this.ast = new CompileUnit(this.classLoader, security, this.configuration);
-        this.generatedClasses = new ArrayList<GroovyClass>();
+        this.generatedClasses = new ArrayList<>();
 
         this.verifier = new Verifier();
         this.resolveVisitor = new ResolveVisitor(this);
@@ -1011,7 +1011,7 @@ public class CompilationUnit extends ProcessingUnit {
     }
 
     private List<ClassNode> getPrimaryClassNodes(boolean sort) {
-        List<ClassNode> unsorted = new ArrayList<ClassNode>();
+        List<ClassNode> unsorted = new ArrayList<>();
         for (ModuleNode module : this.ast.getModules()) {
             unsorted.addAll(module.getClasses());
         }
@@ -1042,7 +1042,7 @@ public class CompilationUnit extends ProcessingUnit {
 
     private static List<ClassNode> getSorted(int[] index, List<ClassNode> unsorted) {
         int unsortedSize = unsorted.size();
-        List<ClassNode> sorted = new ArrayList<ClassNode>(unsortedSize);
+        List<ClassNode> sorted = new ArrayList<>(unsortedSize);
         for (int i = 0; i < unsortedSize; i++) {
             int min = -1;
             for (int j = 0; j < unsortedSize; j++) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
index 87402aa..1b398f8 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
@@ -165,7 +165,7 @@ public class CompilerConfiguration {
     /**
      * extensions used to find a groovy files
      */
-    private Set<String> scriptExtensions = new LinkedHashSet<String>();
+    private Set<String> scriptExtensions = new LinkedHashSet<>();
 
     /**
      * if set to true recompilation is enabled
@@ -192,7 +192,7 @@ public class CompilerConfiguration {
      */
     private Map<String, Boolean> optimizationOptions;
 
-    private final List<CompilationCustomizer> compilationCustomizers = new LinkedList<CompilationCustomizer>();
+    private final List<CompilationCustomizer> compilationCustomizers = new LinkedList<>();
 
     /**
      * Sets a list of global AST transformations which should not be loaded even if they are
@@ -294,7 +294,7 @@ public class CompilerConfiguration {
         setWarningLevel(configuration.getWarningLevel());
         setOutput(configuration.getOutput());
         setTargetDirectory(configuration.getTargetDirectory());
-        setClasspathList(new LinkedList<String>(configuration.getClasspath()));
+        setClasspathList(new LinkedList<>(configuration.getClasspath()));
         setVerbose(configuration.getVerbose());
         setDebug(configuration.getDebug());
         setParameters(configuration.getParameters());
@@ -308,12 +308,12 @@ public class CompilerConfiguration {
         setTargetDirectory(configuration.getTargetDirectory());
         Map<String, Object> jointCompilationOptions = configuration.getJointCompilationOptions();
         if (jointCompilationOptions != null) {
-            jointCompilationOptions = new HashMap<String, Object>(jointCompilationOptions);
+            jointCompilationOptions = new HashMap<>(jointCompilationOptions);
         }
         setJointCompilationOptions(jointCompilationOptions);
         setPluginFactory(configuration.getPluginFactory());
         setScriptExtensions(configuration.getScriptExtensions());
-        setOptimizationOptions(new HashMap<String, Boolean>(configuration.getOptimizationOptions()));
+        setOptimizationOptions(new HashMap<>(configuration.getOptimizationOptions()));
     }
 
     /**
@@ -532,7 +532,7 @@ public class CompilerConfiguration {
         text = configuration.getProperty("groovy.disabled.global.ast.transformations");
         if (text!=null) {
             String[] classNames = text.split(",\\s*}");
-            Set<String> blacklist = new HashSet<String>(Arrays.asList(classNames));
+            Set<String> blacklist = new HashSet<>(Arrays.asList(classNames));
             setDisabledGlobalASTTransformations(blacklist);
         }
     }
@@ -631,7 +631,7 @@ public class CompilerConfiguration {
      * Sets the classpath.
      */
     public void setClasspath(String classpath) {
-        this.classpath = new LinkedList<String>();
+        this.classpath = new LinkedList<>();
         StringTokenizer tokenizer = new StringTokenizer(classpath, File.pathSeparator);
         while (tokenizer.hasMoreTokens()) {
             this.classpath.add(tokenizer.nextToken());
@@ -643,7 +643,7 @@ public class CompilerConfiguration {
      * @param parts list of strings containing the classpath parts
      */
     public void setClasspathList(List<String> parts) {
-        this.classpath = new LinkedList<String>(parts);
+        this.classpath = new LinkedList<>(parts);
     }
 
     /**
@@ -734,7 +734,7 @@ public class CompilerConfiguration {
     }
 
     public void setScriptExtensions(Set<String> scriptExtensions) {
-        if(scriptExtensions == null) scriptExtensions = new LinkedHashSet<String>();
+        if(scriptExtensions == null) scriptExtensions = new LinkedHashSet<>();
         this.scriptExtensions = scriptExtensions;
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/LabelVerifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/LabelVerifier.java b/src/main/java/org/codehaus/groovy/control/LabelVerifier.java
index 1aea0be..db4498c 100644
--- a/src/main/java/org/codehaus/groovy/control/LabelVerifier.java
+++ b/src/main/java/org/codehaus/groovy/control/LabelVerifier.java
@@ -54,9 +54,9 @@ public class LabelVerifier extends ClassCodeVisitorSupport {
     }
 
     private void init() {
-        visitedLabels = new LinkedList<String>();
-        continueLabels = new LinkedList<ContinueStatement>();
-        breakLabels = new LinkedList<BreakStatement>();
+        visitedLabels = new LinkedList<>();
+        continueLabels = new LinkedList<>();
+        breakLabels = new LinkedList<>();
         inLoop = false;
         inSwitch = false;
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java b/src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java
index b7fa503..5e7c57b 100644
--- a/src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java
@@ -47,10 +47,10 @@ public class OptimizerVisitor extends ClassCodeExpressionTransformer {
     private SourceUnit source;
 
     // TODO make @CS lookup smarter so that we don't need both these maps
-    private final Map<Object, FieldNode> const2Objects = new HashMap<Object, FieldNode>();
-    private final Map<Object, FieldNode> const2Prims = new HashMap<Object, FieldNode>();
+    private final Map<Object, FieldNode> const2Objects = new HashMap<>();
+    private final Map<Object, FieldNode> const2Prims = new HashMap<>();
     private int index;
-    private final List<FieldNode> missingFields = new LinkedList<FieldNode>();
+    private final List<FieldNode> missingFields = new LinkedList<>();
 
     public OptimizerVisitor(CompilationUnit cu) {
     }
@@ -80,7 +80,7 @@ public class OptimizerVisitor extends ClassCodeExpressionTransformer {
                 }
             }
             if (needsFix) {
-                List<ClassNode> newInterfaces = new ArrayList<ClassNode>(interfaces.length);
+                List<ClassNode> newInterfaces = new ArrayList<>(interfaces.length);
                 for (ClassNode classNode : interfaces) {
                     if (!classNode.equals(ClassHelper.GROOVY_OBJECT_TYPE)) {
                         newInterfaces.add(classNode);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
index 99e9cd6..4c20884 100644
--- a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
@@ -106,8 +106,8 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
     private boolean inPropertyExpression = false;
     private boolean inClosure = false;
 
-    private Map<GenericsTypeName, GenericsType> genericParameterNames = new HashMap<GenericsTypeName, GenericsType>();
-    private final Set<FieldNode> fieldTypesChecked = new HashSet<FieldNode>();
+    private Map<GenericsTypeName, GenericsType> genericParameterNames = new HashMap<>();
+    private final Set<FieldNode> fieldTypesChecked = new HashSet<>();
     private boolean checkingVariableTypeInDeclaration = false;
     private ImportNode currImportNode = null;
     private MethodNode currentMethod;
@@ -230,8 +230,8 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
         currentScope = node.getVariableScope();
         Map<GenericsTypeName, GenericsType> oldPNames = genericParameterNames;
         genericParameterNames = node.isStatic()
-                ? new HashMap<GenericsTypeName, GenericsType>()
-                : new HashMap<GenericsTypeName, GenericsType>(genericParameterNames);
+                ? new HashMap<>()
+                : new HashMap<>(genericParameterNames);
 
         resolveGenericsHeader(node.getGenericsTypes());
 
@@ -267,7 +267,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
     public void visitProperty(PropertyNode node) {
         Map<GenericsTypeName, GenericsType> oldPNames = genericParameterNames;
         if (node.isStatic()) {
-            genericParameterNames = new HashMap<GenericsTypeName, GenericsType>();
+            genericParameterNames = new HashMap<>();
         }
 
         ClassNode t = node.getType();
@@ -400,7 +400,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
         // to access that class directly, so A becomes a valid
         // name in X.
         // GROOVY-4043: Do this check up the hierarchy, if needed
-        Map<String, ClassNode> hierClasses = new LinkedHashMap<String, ClassNode>();
+        Map<String, ClassNode> hierClasses = new LinkedHashMap<>();
         for(ClassNode classToCheck = currentClass; classToCheck != ClassHelper.OBJECT_TYPE;
             classToCheck = classToCheck.getSuperClass()) {
             if(classToCheck == null || hierClasses.containsKey(classToCheck.getName())) break;
@@ -428,7 +428,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
         // A.B.C.D.E.F and accessing E from F we test A$E=failed, 
         // A$B$E=failed, A$B$C$E=fail, A$B$C$D$E=success
         
-        LinkedList<ClassNode> outerClasses = new LinkedList<ClassNode>();
+        LinkedList<ClassNode> outerClasses = new LinkedList<>();
         ClassNode outer = currentClass.getOuterClass();
         while (outer!=null) {
             outerClasses.addFirst(outer);
@@ -866,7 +866,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
             name.insert(0, varName + ".");
         }
 
-        return new Tuple2<StringBuilder, Boolean>(name, doInitialClassTest);
+        return new Tuple2<>(name, doInitialClassTest);
     }
 
     // iterate from the inner most to the outer and check for classes
@@ -874,7 +874,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
     // a PropertyExpression with the ClassExpression of Integer as objectExpression
     // and class as property
     private static Expression correctClassClassChain(PropertyExpression pe) {
-        LinkedList<Expression> stack = new LinkedList<Expression>();
+        LinkedList<Expression> stack = new LinkedList<>();
         ClassExpression found = null;
         for (Expression it = pe; it != null; it = ((PropertyExpression) it).getObjectExpression()) {
             if (it instanceof ClassExpression) {
@@ -1234,7 +1234,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
     public void visitAnnotations(AnnotatedNode node) {
         List<AnnotationNode> annotations = node.getAnnotations();
         if (annotations.isEmpty()) return;
-        Map<String, AnnotationNode> tmpAnnotations = new HashMap<String, AnnotationNode>();
+        Map<String, AnnotationNode> tmpAnnotations = new HashMap<>();
         ClassNode annType;
         for (AnnotationNode an : annotations) {
             // skip built-in properties
@@ -1331,7 +1331,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
 
         if (node instanceof InnerClassNode) {
             if (Modifier.isStatic(node.getModifiers())) {
-                genericParameterNames = new HashMap<GenericsTypeName, GenericsType>();
+                genericParameterNames = new HashMap<>();
             }
 
             InnerClassNode innerClassNode = (InnerClassNode) node;
@@ -1342,7 +1342,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
                 }
             }
         } else {
-            genericParameterNames = new HashMap<GenericsTypeName, GenericsType>();
+            genericParameterNames = new HashMap<>();
         }
 
         resolveGenericsHeader(node.getGenericsTypes());

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/SourceExtensionHandler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/SourceExtensionHandler.java b/src/main/java/org/codehaus/groovy/control/SourceExtensionHandler.java
index 0ca38f5..ef31592 100644
--- a/src/main/java/org/codehaus/groovy/control/SourceExtensionHandler.java
+++ b/src/main/java/org/codehaus/groovy/control/SourceExtensionHandler.java
@@ -35,7 +35,7 @@ import java.util.Set;
 public class SourceExtensionHandler {
 
     public static Set<String> getRegisteredExtensions(ClassLoader loader) {
-        Set<String> extensions = new LinkedHashSet<String>();
+        Set<String> extensions = new LinkedHashSet<>();
         extensions.add("groovy");
         try {
             Enumeration<URL> globalServices = loader.getResources("META-INF/groovy/org.codehaus.groovy.source.Extensions");

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
index 93f5929..dca41dc 100644
--- a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
@@ -582,7 +582,7 @@ public class StaticImportVisitor extends ClassCodeExpressionTransformer {
 
     private static FieldNode getField(ClassNode classNode, String fieldName) {
         ClassNode node = classNode;
-        Set<String> visited = new HashSet<String>();
+        Set<String> visited = new HashSet<>();
         while (node != null) {
             FieldNode fn = node.getDeclaredField(fieldName);
             if (fn != null) return fn;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/StaticVerifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/StaticVerifier.java b/src/main/java/org/codehaus/groovy/control/StaticVerifier.java
index 6bf3908..fbc34c4 100644
--- a/src/main/java/org/codehaus/groovy/control/StaticVerifier.java
+++ b/src/main/java/org/codehaus/groovy/control/StaticVerifier.java
@@ -86,7 +86,7 @@ public class StaticVerifier extends ClassCodeVisitorSupport {
         currentMethod = node;
         super.visitConstructorOrMethod(node, isConstructor);
         if (isConstructor) {
-            final Set<String> exceptions = new HashSet<String>();
+            final Set<String> exceptions = new HashSet<>();
             for (final Parameter param : node.getParameters()) {
                 exceptions.add(param.getName());
                 if (param.hasInitialExpression()) {
@@ -189,7 +189,7 @@ public class StaticVerifier extends ClassCodeVisitorSupport {
         while (node != null) {
             FieldNode fn = node.getDeclaredField(fieldName);
             if (fn != null) return fn;
-            List<ClassNode> interfacesToCheck = new ArrayList<ClassNode>(Arrays.asList(node.getInterfaces()));
+            List<ClassNode> interfacesToCheck = new ArrayList<>(Arrays.asList(node.getInterfaces()));
             while (!interfacesToCheck.isEmpty()) {
                 ClassNode nextInterface = interfacesToCheck.remove(0);
                 fn = nextInterface.getDeclaredField(fieldName);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/customizers/ImportCustomizer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/ImportCustomizer.java b/src/main/java/org/codehaus/groovy/control/customizers/ImportCustomizer.java
index 780b554..760fae4 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/ImportCustomizer.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/ImportCustomizer.java
@@ -45,7 +45,7 @@ import java.util.List;
  */
 public class ImportCustomizer extends CompilationCustomizer {
 
-    private final List<Import> imports = new LinkedList<Import>();
+    private final List<Import> imports = new LinkedList<>();
 
     public ImportCustomizer() {
         super(CompilePhase.CONVERSION);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java b/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
index 9245ae5..52e62a3 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
@@ -211,12 +211,12 @@ public class SecureASTCustomizer extends CompilationCustomizer {
     // statements
     private List<Class<? extends Statement>> statementsWhitelist;
     private List<Class<? extends Statement>> statementsBlacklist;
-    private final List<StatementChecker> statementCheckers = new LinkedList<StatementChecker>();
+    private final List<StatementChecker> statementCheckers = new LinkedList<>();
 
     // expressions
     private List<Class<? extends Expression>> expressionsWhitelist;
     private List<Class<? extends Expression>> expressionsBlacklist;
-    private final List<ExpressionChecker> expressionCheckers = new LinkedList<ExpressionChecker>();
+    private final List<ExpressionChecker> expressionCheckers = new LinkedList<>();
 
     // tokens from Types
     private List<Integer> tokensWhitelist;
@@ -308,7 +308,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
      * Ensures that every star import ends with .* as this is the expected syntax in import checks.
      */
     private static List<String> normalizeStarImports(List<String> starImports) {
-        List<String> result = new ArrayList<String>(starImports.size());
+        List<String> result = new ArrayList<>(starImports.size());
         for (String starImport : starImports) {
             if (starImport.endsWith(".*")) {
                 result.add(starImport);
@@ -494,7 +494,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
      * @param constantTypesWhiteList a list of classes.
      */
     public void setConstantTypesClassesWhiteList(final List<Class> constantTypesWhiteList) {
-        List<String> values = new LinkedList<String>();
+        List<String> values = new LinkedList<>();
         for (Class aClass : constantTypesWhiteList) {
             values.add(aClass.getName());
         }
@@ -507,7 +507,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
      * @param constantTypesBlackList a list of classes.
      */
     public void setConstantTypesClassesBlackList(final List<Class> constantTypesBlackList) {
-        List<String> values = new LinkedList<String>();
+        List<String> values = new LinkedList<>();
         for (Class aClass : constantTypesBlackList) {
             values.add(aClass.getName());
         }
@@ -544,7 +544,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
      * @param receiversBlacklist a list of classes.
      */
     public void setReceiversClassesBlackList(final List<Class> receiversBlacklist) {
-        List<String> values = new LinkedList<String>();
+        List<String> values = new LinkedList<>();
         for (Class aClass : receiversBlacklist) {
             values.add(aClass.getName());
         }
@@ -573,7 +573,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
      * @param receiversWhitelist a list of classes.
      */
     public void setReceiversClassesWhiteList(final List<Class> receiversWhitelist) {
-        List<String> values = new LinkedList<String>();
+        List<String> values = new LinkedList<>();
         for (Class aClass : receiversWhitelist) {
             values.add(aClass.getName());
         }
@@ -640,7 +640,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
     }
     
     private static List<MethodNode> filterMethods(ClassNode owner) {
-        List<MethodNode> result = new LinkedList<MethodNode>();
+        List<MethodNode> result = new LinkedList<>();
         List<MethodNode> methods = owner.getMethods();
         for (MethodNode method : methods) {
             if (method.getDeclaringClass() == owner && !method.isSynthetic()) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/control/customizers/builder/SourceAwareCustomizerFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/builder/SourceAwareCustomizerFactory.java b/src/main/java/org/codehaus/groovy/control/customizers/builder/SourceAwareCustomizerFactory.java
index 1edf636..94c9fd0 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/builder/SourceAwareCustomizerFactory.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/builder/SourceAwareCustomizerFactory.java
@@ -110,7 +110,7 @@ public class SourceAwareCustomizerFactory extends AbstractFactory implements Pos
     }
 
     private static void addExtensionValidator(final SourceAwareCustomizer sourceAwareCustomizer, final SourceOptions data) {
-        final List<String> extensions = data.extensions!=null?data.extensions : new LinkedList<String>();
+        final List<String> extensions = data.extensions!=null?data.extensions : new LinkedList<>();
         if (data.extension!=null) extensions.add(data.extension);
         Closure<Boolean> extensionValidator = data.extensionValidator;
         if (extensionValidator==null && !extensions.isEmpty()) {
@@ -128,7 +128,7 @@ public class SourceAwareCustomizerFactory extends AbstractFactory implements Pos
     }
 
     private static void addBasenameValidator(final SourceAwareCustomizer sourceAwareCustomizer, final SourceOptions data) {
-        final List<String> basenames = data.basenames!=null?data.basenames : new LinkedList<String>();
+        final List<String> basenames = data.basenames!=null?data.basenames : new LinkedList<>();
         if (data.basename!=null) basenames.add(data.basename);
         Closure<Boolean> basenameValidator = data.basenameValidator;
         if (basenameValidator==null && !basenames.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/CachedClass.java b/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
index 7790930..db3e500 100644
--- a/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
@@ -133,8 +133,8 @@ public class CachedClass {
                        }
                    }
                });
-            List<CachedMethod> methods = new ArrayList<CachedMethod>(declaredMethods.length);
-            List<CachedMethod> mopMethods = new ArrayList<CachedMethod>(declaredMethods.length);
+            List<CachedMethod> methods = new ArrayList<>(declaredMethods.length);
+            List<CachedMethod> mopMethods = new ArrayList<>(declaredMethods.length);
             for (int i = 0; i != declaredMethods.length; ++i) {
                 final CachedMethod cachedMethod = new CachedMethod(CachedClass.this, declaredMethods[i]);
                 final String name = cachedMethod.getName();
@@ -198,7 +198,7 @@ public class CachedClass {
         private static final long serialVersionUID = 7166687623678851596L;
 
         public LinkedList<ClassInfo> initValue() {
-            Set<ClassInfo> res = new LinkedHashSet<ClassInfo> ();
+            Set<ClassInfo> res = new LinkedHashSet<>();
 
             res.add(classInfo);
 
@@ -212,7 +212,7 @@ public class CachedClass {
             if (isInterface)
               res.add(ReflectionCache.OBJECT_CLASS.classInfo);
 
-            return new LinkedList<ClassInfo> (res);
+            return new LinkedList<>(res);
         }
     };
 
@@ -227,7 +227,7 @@ public class CachedClass {
         private static final long serialVersionUID = 2139190436931329873L;
 
         public Set<CachedClass> initValue() {
-            Set<CachedClass> res = new HashSet<CachedClass> (0);
+            Set<CachedClass> res = new HashSet<>(0);
 
             Class[] classes = getTheClass().getInterfaces();
             for (Class cls : classes) {
@@ -241,7 +241,7 @@ public class CachedClass {
         private static final long serialVersionUID = 4060471819464086940L;
 
         public Set<CachedClass> initValue() {
-            Set<CachedClass> res = new HashSet<CachedClass> (0);
+            Set<CachedClass> res = new HashSet<>(0);
 
             if (getTheClass().isInterface())
               res.add(CachedClass.this);
@@ -377,7 +377,7 @@ public class CachedClass {
     }
 
     public MetaMethod[] getNewMetaMethods() {
-        List<MetaMethod> arr = new ArrayList<MetaMethod>(Arrays.asList(classInfo.newMetaMethods));
+        List<MetaMethod> arr = new ArrayList<>(Arrays.asList(classInfo.newMetaMethods));
 
         final MetaClass metaClass = classInfo.getStrongMetaClass();
         if (metaClass instanceof ExpandoMetaClass) {
@@ -465,7 +465,7 @@ public class CachedClass {
         if (metaClass != null) {
           if (metaClass.getClass() == MetaClassImpl.class) {
               classInfo.setStrongMetaClass(null);
-              List<MetaMethod> res = new ArrayList<MetaMethod>();
+              List<MetaMethod> res = new ArrayList<>();
               Collections.addAll(res, classInfo.newMetaMethods);
               res.addAll(arr);
               updateSetNewMopMethods(res);
@@ -497,7 +497,7 @@ public class CachedClass {
     }
 
     private void updateAddNewMopMethods(List<MetaMethod> arr) {
-        List<MetaMethod> res = new ArrayList<MetaMethod>();
+        List<MetaMethod> res = new ArrayList<>();
         res.addAll(Arrays.asList(classInfo.newMetaMethods));
         res.addAll(arr);
         classInfo.newMetaMethods = res.toArray(MetaMethod.EMPTY_ARRAY);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/reflection/CachedMethod.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/CachedMethod.java b/src/main/java/org/codehaus/groovy/reflection/CachedMethod.java
index 1c8f3b3..ae70f10 100644
--- a/src/main/java/org/codehaus/groovy/reflection/CachedMethod.java
+++ b/src/main/java/org/codehaus/groovy/reflection/CachedMethod.java
@@ -243,7 +243,7 @@ public class CachedMethod extends MetaMethod implements Comparable {
                   constr = CallSiteGenerator.compilePogoMethod(this);
                 }
                 if (constr != null) {
-                     pogoCallSiteConstructor = new SoftReference<Constructor> (constr);
+                     pogoCallSiteConstructor = new SoftReference<>(constr);
                 } else {
                     skipCompiled = true;
                 }
@@ -272,7 +272,7 @@ public class CachedMethod extends MetaMethod implements Comparable {
                   constr = CallSiteGenerator.compilePojoMethod(this);
                 }
                 if (constr != null) {
-                    pojoCallSiteConstructor = new SoftReference<Constructor> (constr);
+                    pojoCallSiteConstructor = new SoftReference<>(constr);
                 } else {
                     skipCompiled = true;
                 }
@@ -300,7 +300,7 @@ public class CachedMethod extends MetaMethod implements Comparable {
                   constr = CallSiteGenerator.compileStaticMethod(this);
                 }
                 if (constr != null) {
-                    staticCallSiteConstructor = new SoftReference<Constructor> (constr);
+                    staticCallSiteConstructor = new SoftReference<>(constr);
                 } else {
                     skipCompiled = true;
                 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java b/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java
index 1067e4b..0ba53d3 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java
@@ -104,7 +104,7 @@ public class ClassInfo implements Finalizable {
     private static final ReferenceBundle weakBundle = ReferenceBundle.getWeakBundle();
     
     private static final ManagedConcurrentLinkedQueue<ClassInfo> modifiedExpandos =
-            new ManagedConcurrentLinkedQueue<ClassInfo>(weakBundle);
+            new ManagedConcurrentLinkedQueue<>(weakBundle);
 
     private static final GroovyClassValue<ClassInfo> globalClassValue = GroovyClassValueFactory.createGroovyClassValue(new ComputeValue<ClassInfo>(){
 		@Override
@@ -246,7 +246,7 @@ public class ClassInfo implements Finalizable {
         strongMetaClass = null;
         ManagedReference<MetaClass> newRef = null;
         if (answer != null) {
-            newRef = new ManagedReference<MetaClass> (softBundle,answer);
+            newRef = new ManagedReference<>(softBundle, answer);
         }
         replaceWeakMetaClassRef(newRef);
     }
@@ -425,7 +425,7 @@ public class ClassInfo implements Finalizable {
 
         if (metaClass != null) {
             if (perInstanceMetaClassMap == null)
-              perInstanceMetaClassMap = new ManagedConcurrentMap<Object, MetaClass>(ReferenceBundle.getWeakBundle()); 
+              perInstanceMetaClassMap = new ManagedConcurrentMap<>(ReferenceBundle.getWeakBundle());
 
             perInstanceMetaClassMap.put(obj, metaClass);
         }
@@ -481,7 +481,7 @@ public class ClassInfo implements Finalizable {
 
     private static class GlobalClassSet {
     	
-    	private final ManagedConcurrentLinkedQueue<ClassInfo> items = new ManagedConcurrentLinkedQueue<ClassInfo>(weakBundle);
+    	private final ManagedConcurrentLinkedQueue<ClassInfo> items = new ManagedConcurrentLinkedQueue<>(weakBundle);
     	
     	public int size(){
 		    return values().size();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java b/src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java
index ba24a6d..7549824 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java
@@ -36,7 +36,7 @@ public class ClassLoaderForClassArtifacts extends ClassLoader {
 
     public ClassLoaderForClassArtifacts(Class klazz) {
         super(klazz.getClassLoader());
-        this.klazz = new SoftReference<Class> (klazz);
+        this.klazz = new SoftReference<>(klazz);
     }
 
     public Class define (String name, byte [] bytes) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java b/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java
index 23a0db7..552a6cb 100644
--- a/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java
@@ -130,7 +130,7 @@ public abstract class GeneratedMetaMethod extends MetaMethod {
                          new DataOutputStream(
                                  new BufferedOutputStream(
                                          new FileOutputStream(file)))) {
-                Map<String, Integer> classes = new LinkedHashMap<String, Integer>();
+                Map<String, Integer> classes = new LinkedHashMap<>();
 
                 int nextClassId = 0;
                 for (Class primitive : PRIMITIVE_CLASSES) {
@@ -184,7 +184,7 @@ public abstract class GeneratedMetaMethod extends MetaMethod {
                                  new BufferedInputStream(
                                          loader.getResourceAsStream("META-INF/dgminfo")))) {
 
-                Map<Integer, Class> classes = new HashMap<Integer, Class>();
+                Map<Integer, Class> classes = new HashMap<>();
                 for (int i = 0; i < PRIMITIVE_CLASSES.length; i++) {
                     classes.put(i, PRIMITIVE_CLASSES[i]);
                 }
@@ -212,7 +212,7 @@ public abstract class GeneratedMetaMethod extends MetaMethod {
                 }
 
                 int size = in.readInt();
-                List<DgmMethodRecord> res = new ArrayList<DgmMethodRecord>(size);
+                List<DgmMethodRecord> res = new ArrayList<>(size);
                 for (int i = 0; i != size; ++i) {
                     boolean skipRecord = false;
                     DgmMethodRecord record = new DgmMethodRecord();

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java b/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
index 4dfa083..97d1863 100644
--- a/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
@@ -110,7 +110,7 @@ public class MixinInMetaClass extends ManagedConcurrentMap {
 
         ExpandoMetaClass mc = (ExpandoMetaClass) self;
 
-        List<MetaMethod> arr = new ArrayList<MetaMethod>();
+        List<MetaMethod> arr = new ArrayList<>();
         for (Class categoryClass : categoryClasses) {
 
             final CachedClass cachedCategoryClass = ReflectionCache.getCachedClass(categoryClass);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java b/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
index e621729..5be7bc6 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
@@ -31,7 +31,7 @@ import java.util.Set;
 public class ReflectionUtils {
 
     // these are packages in the call stack that are only part of the groovy MOP
-    private static final Set<String> IGNORED_PACKAGES = new HashSet<String>();
+    private static final Set<String> IGNORED_PACKAGES = new HashSet<>();
 
     static {
         //IGNORED_PACKAGES.add("java.lang.reflect");

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/reflection/SunClassLoader.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/SunClassLoader.java b/src/main/java/org/codehaus/groovy/reflection/SunClassLoader.java
index 0a6a082..88c1ea1 100644
--- a/src/main/java/org/codehaus/groovy/reflection/SunClassLoader.java
+++ b/src/main/java/org/codehaus/groovy/reflection/SunClassLoader.java
@@ -34,7 +34,7 @@ import java.util.Map;
  * Special class loader, which when running on Sun VM allows to generate accessor classes for any method
  */
 public class SunClassLoader extends ClassLoader implements Opcodes {
-    protected final Map<String,Class> knownClasses = new HashMap<String,Class>();
+    protected final Map<String,Class> knownClasses = new HashMap<>();
 
     protected static final SunClassLoader sunVM;
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/reflection/stdclasses/CachedSAMClass.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/CachedSAMClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/CachedSAMClass.java
index 7c3291c..7f5460a 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/CachedSAMClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/CachedSAMClass.java
@@ -84,7 +84,7 @@ public class CachedSAMClass extends CachedClass {
                     new Class[]{clazz},
                     new ConvertedClosure(argument));
         } else {
-            Map<String, Object> m = new HashMap<String,Object>();
+            Map<String, Object> m = new HashMap<>();
             m.put(method.getName(), argument);
             return ProxyGenerator.INSTANCE.
                     instantiateAggregateFromBaseClass(m, clazz);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/ComposedClosure.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/ComposedClosure.java b/src/main/java/org/codehaus/groovy/runtime/ComposedClosure.java
index 52f52cb..e2767d4 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ComposedClosure.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ComposedClosure.java
@@ -87,7 +87,7 @@ public final class ComposedClosure<V> extends Closure<V> {
     }
 
     public Object clone() {
-        return new ComposedClosure<V>(first, second);
+        return new ComposedClosure<>(first, second);
     }
 
     public Class[] getParameterTypes() {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/ConversionHandler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/ConversionHandler.java b/src/main/java/org/codehaus/groovy/runtime/ConversionHandler.java
index 6ea07b2..09966cb 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ConversionHandler.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ConversionHandler.java
@@ -45,7 +45,7 @@ public abstract class ConversionHandler implements InvocationHandler, Serializab
     private final ConcurrentHashMap<Method, Object> handleCache;
     {
         if (VMPluginFactory.getPlugin().getVersion() >= 7) {
-            handleCache = new ConcurrentHashMap<Method, Object>(16, 0.9f, 2);
+            handleCache = new ConcurrentHashMap<>(16, 0.9f, 2);
         } else {
             handleCache = null;
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java b/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java
index e9365be..b9f245a 100644
--- a/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java
+++ b/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java
@@ -146,7 +146,7 @@ public final class CurriedClosure<V> extends Closure<V> {
     @SuppressWarnings("unchecked")
     public Object clone() {
         Closure<V> uncurriedClosure = (Closure<V>) ((Closure) getOwner()).clone();
-        return new CurriedClosure<V>(index, uncurriedClosure, curriedParams);
+        return new CurriedClosure<>(index, uncurriedClosure, curriedParams);
     }
 
     public Class[] getParameterTypes() {


[8/8] groovy git commit: Minor refactoring: Explicit type can be replaced with <>

Posted by su...@apache.org.
Minor refactoring: Explicit type can be replaced with <>


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/72fd4078
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/72fd4078
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/72fd4078

Branch: refs/heads/master
Commit: 72fd40785c0e83972a4daf2ee941fd0cdd1f7c96
Parents: 80a8b19
Author: Daniel Sun <su...@apache.org>
Authored: Sun Aug 26 00:43:55 2018 +0800
Committer: Daniel Sun <su...@apache.org>
Committed: Sun Aug 26 00:43:56 2018 +0800

----------------------------------------------------------------------
 .../grape/GrabAnnotationTransformation.java     |  42 +--
 src/main/groovy/groovy/lang/Closure.java        |  18 +-
 src/main/groovy/groovy/lang/EmptyRange.java     |   2 +-
 .../groovy/groovy/lang/ExpandoMetaClass.java    |  16 +-
 .../groovy/groovy/lang/GroovyClassLoader.java   |   6 +-
 src/main/groovy/groovy/lang/IntRange.java       |   4 +-
 .../groovy/groovy/lang/ListWithDefault.java     |   6 +-
 src/main/groovy/groovy/lang/MapWithDefault.java |   2 +-
 src/main/groovy/groovy/lang/MetaClassImpl.java  |  20 +-
 src/main/groovy/groovy/lang/NumberRange.java    |   2 +-
 src/main/groovy/groovy/lang/ObjectRange.java    |   2 +-
 .../groovy/groovy/lang/TrampolineClosure.java   |   2 +-
 .../transform/builder/DefaultStrategy.java      |   4 +-
 .../transform/builder/ExternalStrategy.java     |   4 +-
 .../transform/builder/InitializerStrategy.java  |  14 +-
 .../transform/builder/SimpleStrategy.java       |   4 +-
 .../transform/stc/FromAbstractTypeMethods.java  |   2 +-
 .../groovy/groovy/transform/stc/FromString.java |   2 +-
 src/main/groovy/groovy/ui/GroovyMain.java       |   8 +-
 .../groovy/util/FactoryBuilderSupport.java      |  34 +--
 .../groovy/groovy/util/GroovyCollections.java   |  12 +-
 .../groovy/groovy/util/GroovyScriptEngine.java  |  16 +-
 src/main/groovy/groovy/util/Node.java           |  10 +-
 .../groovy/groovy/util/ObjectGraphBuilder.java  |   4 +-
 src/main/groovy/groovy/util/ObservableMap.java  |   2 +-
 src/main/groovy/groovy/util/ObservableSet.java  |  14 +-
 src/main/groovy/groovy/util/OrderBy.java        |   8 +-
 .../groovy/util/PermutationGenerator.java       |   4 +-
 src/main/groovy/groovy/util/ProxyGenerator.java |   6 +-
 .../apache/groovy/ast/tools/ClassNodeUtils.java |   4 +-
 .../ast/tools/ImmutablePropertyUtils.java       |   6 +-
 src/main/java/org/apache/groovy/util/Maps.java  | 200 ++++++-------
 .../ConcurrentLinkedHashMap.java                |  52 ++--
 .../util/concurrentlinkedhashmap/Weighers.java  |   2 +-
 .../groovy/antlr/AntlrParserPlugin.java         |  56 ++--
 .../codehaus/groovy/antlr/GroovySourceAST.java  |   2 +-
 .../org/codehaus/groovy/antlr/SourceBuffer.java |   2 +-
 .../antlr/treewalker/SourceCodeTraversal.java   |   2 +-
 .../antlr/treewalker/TraversalHelper.java       |   2 +-
 .../org/codehaus/groovy/ast/AnnotatedNode.java  |   4 +-
 .../org/codehaus/groovy/ast/AnnotationNode.java |   2 +-
 .../org/codehaus/groovy/ast/ClassHelper.java    |   4 +-
 .../java/org/codehaus/groovy/ast/ClassNode.java |  36 +--
 .../org/codehaus/groovy/ast/CompileUnit.java    |  10 +-
 .../org/codehaus/groovy/ast/GenericsType.java   |   4 +-
 .../org/codehaus/groovy/ast/InnerClassNode.java |   2 +-
 .../org/codehaus/groovy/ast/ModuleNode.java     |  24 +-
 .../org/codehaus/groovy/ast/VariableScope.java  |  12 +-
 .../ast/builder/AstBuilderTransformation.java   |   4 +-
 .../groovy/ast/decompiled/AsmDecompiler.java    |  14 +-
 .../ast/decompiled/ClassSignatureParser.java    |   2 +-
 .../groovy/ast/decompiled/ClassStub.java        |   4 +-
 .../ast/decompiled/FormalParameterParser.java   |   4 +-
 .../ast/decompiled/TypeSignatureParser.java     |   2 +-
 .../groovy/ast/expr/ClosureListExpression.java  |   2 +-
 .../codehaus/groovy/ast/expr/Expression.java    |   4 +-
 .../groovy/ast/expr/GStringExpression.java      |   4 +-
 .../groovy/ast/expr/ListExpression.java         |   2 +-
 .../codehaus/groovy/ast/expr/MapExpression.java |   2 +-
 .../groovy/ast/expr/TupleExpression.java        |   2 +-
 .../groovy/ast/stmt/BlockStatement.java         |   4 +-
 .../org/codehaus/groovy/ast/stmt/Statement.java |   4 +-
 .../groovy/ast/stmt/SwitchStatement.java        |   2 +-
 .../groovy/ast/stmt/TryCatchStatement.java      |   4 +-
 .../codehaus/groovy/ast/tools/BeanUtils.java    |   6 +-
 .../codehaus/groovy/ast/tools/GeneralUtils.java |  26 +-
 .../groovy/ast/tools/GenericsUtils.java         |  12 +-
 .../groovy/ast/tools/WideningCategories.java    |  22 +-
 .../groovy/classgen/AsmClassGenerator.java      |  10 +-
 .../classgen/ClassCompletionVerifier.java       |   4 +-
 .../groovy/classgen/ClassGenerator.java         |   2 +-
 .../groovy/classgen/EnumCompletionVisitor.java  |   4 +-
 .../codehaus/groovy/classgen/EnumVisitor.java   |   6 +-
 .../groovy/classgen/ExtendedVerifier.java       |   8 +-
 .../groovy/classgen/FinalVariableAnalyzer.java  |  16 +-
 .../groovy/classgen/InnerClassVisitor.java      |   4 +-
 .../classgen/InnerClassVisitorHelper.java       |  12 +-
 .../org/codehaus/groovy/classgen/Verifier.java  |  22 +-
 .../groovy/classgen/asm/AssertionWriter.java    |   2 +-
 .../BinaryExpressionMultiTypeDispatcher.java    |   2 +-
 .../groovy/classgen/asm/CallSiteWriter.java     |   4 +-
 .../groovy/classgen/asm/ClosureWriter.java      |   2 +-
 .../groovy/classgen/asm/CompileStack.java       |  16 +-
 .../groovy/classgen/asm/InvocationWriter.java   |   6 +-
 .../codehaus/groovy/classgen/asm/MopWriter.java |   6 +-
 .../groovy/classgen/asm/OperandStack.java       |   2 +-
 .../classgen/asm/OptimizingStatementWriter.java |   2 +-
 .../groovy/classgen/asm/WriterController.java   |   2 +-
 .../classgen/asm/sc/StaticInvocationWriter.java |   4 +-
 .../asm/sc/StaticTypesLambdaWriter.java         |   2 +-
 .../groovy/classgen/asm/util/TypeUtil.java      |   2 +-
 .../control/ASTTransformationsContext.java      |   2 +-
 .../groovy/control/CompilationUnit.java         |  12 +-
 .../groovy/control/CompilerConfiguration.java   |  18 +-
 .../codehaus/groovy/control/LabelVerifier.java  |   6 +-
 .../groovy/control/OptimizerVisitor.java        |   8 +-
 .../codehaus/groovy/control/ResolveVisitor.java |  24 +-
 .../groovy/control/SourceExtensionHandler.java  |   2 +-
 .../groovy/control/StaticImportVisitor.java     |   2 +-
 .../codehaus/groovy/control/StaticVerifier.java |   4 +-
 .../control/customizers/ImportCustomizer.java   |   2 +-
 .../customizers/SecureASTCustomizer.java        |  16 +-
 .../builder/SourceAwareCustomizerFactory.java   |   4 +-
 .../codehaus/groovy/reflection/CachedClass.java |  18 +-
 .../groovy/reflection/CachedMethod.java         |   6 +-
 .../codehaus/groovy/reflection/ClassInfo.java   |   8 +-
 .../ClassLoaderForClassArtifacts.java           |   2 +-
 .../groovy/reflection/GeneratedMetaMethod.java  |   6 +-
 .../groovy/reflection/MixinInMetaClass.java     |   2 +-
 .../groovy/reflection/ReflectionUtils.java      |   2 +-
 .../groovy/reflection/SunClassLoader.java       |   2 +-
 .../reflection/stdclasses/CachedSAMClass.java   |   2 +-
 .../groovy/runtime/ComposedClosure.java         |   2 +-
 .../groovy/runtime/ConversionHandler.java       |   2 +-
 .../codehaus/groovy/runtime/CurriedClosure.java |   2 +-
 .../groovy/runtime/DefaultGroovyMethods.java    | 280 +++++++++----------
 .../runtime/DefaultGroovyMethodsSupport.java    |  58 ++--
 .../groovy/runtime/GroovyCategorySupport.java   |   6 +-
 .../groovy/runtime/IOGroovyMethods.java         |   2 +-
 .../codehaus/groovy/runtime/InvokerHelper.java  |   4 +-
 .../groovy/runtime/IteratorClosureAdapter.java  |   2 +-
 .../groovy/runtime/MetaClassHelper.java         |   2 +-
 .../groovy/runtime/MethodRankHelper.java        |  16 +-
 .../groovy/runtime/ProxyGeneratorAdapter.java   |  30 +-
 .../groovy/runtime/ResourceGroovyMethods.java   |   4 +-
 .../groovy/runtime/StackTraceUtils.java         |   4 +-
 .../groovy/runtime/StringGroovyMethods.java     |  12 +-
 .../runtime/callsite/CallSiteClassLoader.java   |   2 +-
 .../runtime/m12n/ExtensionModuleRegistry.java   |   4 +-
 .../runtime/m12n/MetaInfExtensionModule.java    |   6 +-
 .../runtime/m12n/SimpleExtensionModule.java     |   2 +-
 .../groovy/runtime/memoize/CommonCache.java     |   4 +-
 .../runtime/memoize/ConcurrentCommonCache.java  |  10 +-
 .../groovy/runtime/memoize/Memoize.java         |   4 +-
 .../runtime/memoize/StampedCommonCache.java     |  10 +-
 .../memoize/UnlimitedConcurrentCache.java       |   6 +-
 .../runtime/metaclass/ClosureMetaClass.java     |   2 +-
 .../runtime/metaclass/ClosureMetaMethod.java    |   2 +-
 .../metaclass/MetaClassRegistryImpl.java        |  18 +-
 .../ThreadManagedMetaBeanProperty.java          |   2 +-
 .../runtime/powerassert/AssertionRenderer.java  |   4 +-
 .../groovy/runtime/powerassert/SourceText.java  |   4 +-
 .../runtime/powerassert/ValueRecorder.java      |   2 +-
 .../NumberMathModificationInfo.java             |   2 +-
 .../org/codehaus/groovy/syntax/ASTHelper.java   |  10 +-
 .../java/org/codehaus/groovy/syntax/Types.java  |   8 +-
 .../org/codehaus/groovy/tools/DgmConverter.java |   4 +-
 .../groovy/tools/FileSystemCompiler.java        |   8 +-
 .../org/codehaus/groovy/tools/GrapeUtil.java    |   2 +-
 .../groovy/tools/LoaderConfiguration.java       |   6 +-
 .../org/codehaus/groovy/tools/RootLoader.java   |   2 +-
 .../org/codehaus/groovy/tools/Utilities.java    |   8 +-
 .../codehaus/groovy/tools/gse/StringSetMap.java |   4 +-
 .../tools/javac/JavaAwareCompilationUnit.java   |   2 +-
 .../groovy/tools/javac/JavaStubGenerator.java   |  16 +-
 .../groovy/tools/javac/JavacJavaCompiler.java   |   4 +-
 .../ASTTransformationCollectorCodeVisitor.java  |  12 +-
 .../transform/ASTTransformationVisitor.java     |  10 +-
 .../transform/AbstractASTTransformation.java    |  26 +-
 .../transform/AnnotationCollectorTransform.java |  20 +-
 .../AutoImplementASTTransformation.java         |   6 +-
 .../transform/BuilderASTTransformation.java     |   8 +-
 .../transform/CategoryASTTransformation.java    |   8 +-
 .../transform/DelegateASTTransformation.java    |   6 +-
 .../EqualsAndHashCodeASTTransformation.java     |   8 +-
 .../transform/FieldASTTransformation.java       |   2 +-
 .../transform/ImmutableASTTransformation.java   |   2 +-
 .../InheritConstructorsASTTransformation.java   |   2 +-
 .../MapConstructorASTTransformation.java        |   4 +-
 .../transform/MemoizedASTTransformation.java    |   4 +-
 .../NamedVariantASTTransformation.java          |   8 +-
 .../transform/NewifyASTTransformation.java      |   6 +-
 .../PackageScopeASTTransformation.java          |   6 +-
 .../transform/SortableASTTransformation.java    |   6 +-
 .../transform/ToStringASTTransformation.java    |   6 +-
 .../TupleConstructorASTTransformation.java      |  12 +-
 .../sc/ListOfExpressionsExpression.java         |   2 +-
 .../transform/sc/StaticCompilationVisitor.java  |  14 +-
 .../BinaryExpressionTransformer.java            |   4 +-
 .../transformers/ListExpressionTransformer.java |   2 +-
 .../stc/AbstractTypeCheckingExtension.java      |   4 +-
 .../stc/DefaultTypeCheckingExtension.java       |   6 +-
 .../stc/GroovyTypeCheckingExtensionSupport.java |   8 +-
 .../codehaus/groovy/transform/stc/Receiver.java |   2 +-
 .../transform/stc/SharedVariableCollector.java  |   2 +-
 .../stc/StaticTypeCheckingSupport.java          |  42 +--
 .../stc/StaticTypeCheckingVisitor.java          | 106 +++----
 .../stc/TraitTypeCheckingExtension.java         |   2 +-
 .../transform/stc/TypeCheckingContext.java      |  38 +--
 .../transform/stc/UnionTypeClassNode.java       |  26 +-
 .../transform/trait/TraitASTTransformation.java |  20 +-
 .../groovy/transform/trait/TraitComposer.java   |  28 +-
 .../org/codehaus/groovy/util/LazyReference.java |   2 +-
 .../org/codehaus/groovy/util/ListHashMap.java   |   2 +-
 .../util/ManagedConcurrentLinkedQueue.java      |   6 +-
 .../groovy/util/ManagedConcurrentMap.java       |   4 +-
 .../groovy/util/ManagedConcurrentValueMap.java  |   2 +-
 .../codehaus/groovy/util/ManagedLinkedList.java |   4 +-
 .../codehaus/groovy/util/ReferenceManager.java  |   2 +-
 .../groovy/vmplugin/v7/IndyArrayAccess.java     |   4 +-
 .../vmplugin/v8/PluginDefaultGroovyMethods.java |   2 +-
 201 files changed, 1095 insertions(+), 1095 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/grape/GrabAnnotationTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/grape/GrabAnnotationTransformation.java b/src/main/groovy/groovy/grape/GrabAnnotationTransformation.java
index eac9e2c..d5f7ac4 100644
--- a/src/main/groovy/groovy/grape/GrabAnnotationTransformation.java
+++ b/src/main/groovy/groovy/grape/GrabAnnotationTransformation.java
@@ -170,11 +170,11 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
         allowShortGrabConfig = true;
         allowShortGrapes = true;
         allowShortGrabResolver = true;
-        grabAliases = new HashSet<String>();
-        grabExcludeAliases = new HashSet<String>();
-        grabConfigAliases = new HashSet<String>();
-        grapesAliases = new HashSet<String>();
-        grabResolverAliases = new HashSet<String>();
+        grabAliases = new HashSet<>();
+        grabExcludeAliases = new HashSet<>();
+        grabConfigAliases = new HashSet<>();
+        grapesAliases = new HashSet<>();
+        grabResolverAliases = new HashSet<>();
         for (ImportNode im : mn.getImports()) {
             String alias = im.getAlias();
             String className = im.getClassName();
@@ -201,22 +201,22 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
             }
         }
 
-        List<Map<String,Object>> grabMaps = new ArrayList<Map<String,Object>>();
-        List<Map<String,Object>> grabMapsInit = new ArrayList<Map<String,Object>>();
-        List<Map<String,Object>> grabExcludeMaps = new ArrayList<Map<String,Object>>();
+        List<Map<String,Object>> grabMaps = new ArrayList<>();
+        List<Map<String,Object>> grabMapsInit = new ArrayList<>();
+        List<Map<String,Object>> grabExcludeMaps = new ArrayList<>();
 
         for (ClassNode classNode : sourceUnit.getAST().getClasses()) {
-            grabAnnotations = new ArrayList<AnnotationNode>();
-            grabExcludeAnnotations = new ArrayList<AnnotationNode>();
-            grabConfigAnnotations = new ArrayList<AnnotationNode>();
-            grapesAnnotations = new ArrayList<AnnotationNode>();
-            grabResolverAnnotations = new ArrayList<AnnotationNode>();
+            grabAnnotations = new ArrayList<>();
+            grabExcludeAnnotations = new ArrayList<>();
+            grabConfigAnnotations = new ArrayList<>();
+            grapesAnnotations = new ArrayList<>();
+            grabResolverAnnotations = new ArrayList<>();
 
             visitClass(classNode);
 
             ClassNode grapeClassNode = ClassHelper.make(Grape.class);
 
-            List<Statement> grabResolverInitializers = new ArrayList<Statement>();
+            List<Statement> grabResolverInitializers = new ArrayList<>();
 
             if (!grapesAnnotations.isEmpty()) {
                 for (AnnotationNode node : grapesAnnotations) {
@@ -240,7 +240,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
             if (!grabResolverAnnotations.isEmpty()) {
                 grabResolverAnnotationLoop:
                 for (AnnotationNode node : grabResolverAnnotations) {
-                    Map<String, Object> grabResolverMap = new HashMap<String, Object>();
+                    Map<String, Object> grabResolverMap = new HashMap<>();
                     String sval = getMemberStringValue(node, "value");
                     if (sval != null && sval.length() > 0) {
                         for (String s : GRABRESOLVER_REQUIRED) {
@@ -314,7 +314,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
             if (!grabExcludeAnnotations.isEmpty()) {
                 grabExcludeAnnotationLoop:
                 for (AnnotationNode node : grabExcludeAnnotations) {
-                    Map<String, Object> grabExcludeMap = new HashMap<String, Object>();
+                    Map<String, Object> grabExcludeMap = new HashMap<>();
                     checkForConvenienceForm(node, true);
                     for (String s : GRABEXCLUDE_REQUIRED) {
                         Expression member = node.getMember(s);
@@ -334,7 +334,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
             if (!grabAnnotations.isEmpty()) {
                 grabAnnotationLoop:
                 for (AnnotationNode node : grabAnnotations) {
-                    Map<String, Object> grabMap = new HashMap<String, Object>();
+                    Map<String, Object> grabMap = new HashMap<>();
                     checkForConvenienceForm(node, false);
                     for (String s : GRAB_ALL) {
                         Expression member = node.getMember(s);
@@ -365,7 +365,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
         }
 
         if (!grabMaps.isEmpty()) {
-            Map<String, Object> basicArgs = new HashMap<String, Object>();
+            Map<String, Object> basicArgs = new HashMap<>();
             basicArgs.put("classLoader", loader != null ? loader : sourceUnit.getClassLoader());
             if (!grabExcludeMaps.isEmpty()) basicArgs.put("excludes", grabExcludeMaps);
             if (autoDownload != null) basicArgs.put(AUTO_DOWNLOAD_SETTING, autoDownload);
@@ -388,7 +388,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
     }
 
     private void callGrabAsStaticInitIfNeeded(ClassNode classNode, ClassNode grapeClassNode, List<Map<String,Object>> grabMapsInit, List<Map<String, Object>> grabExcludeMaps) {
-        List<Statement> grabInitializers = new ArrayList<Statement>();
+        List<Statement> grabInitializers = new ArrayList<>();
         MapExpression basicArgs = new MapExpression();
         if (autoDownload != null)  {
             basicArgs.addMapEntryExpression(constX(AUTO_DOWNLOAD_SETTING), constX(autoDownload));
@@ -420,7 +420,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
             basicArgs.addMapEntryExpression(constX("excludes"), list);
         }
 
-        List<Expression> argList = new ArrayList<Expression>();
+        List<Expression> argList = new ArrayList<>();
         argList.add(basicArgs);
         if (grabMapsInit.isEmpty()) return;
         for (Map<String, Object> grabMap : grabMapsInit) {
@@ -501,7 +501,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
     }
 
     private void checkForSystemProperties(AnnotationNode node) {
-        systemProperties = new HashMap<String, String>();
+        systemProperties = new HashMap<>();
         List<String> nameValueList = AbstractASTTransformation.getMemberStringList(node, SYSTEM_PROPERTIES_SETTING);
         if (nameValueList != null) {
             for (String nameValue : nameValueList) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/Closure.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/Closure.java b/src/main/groovy/groovy/lang/Closure.java
index a326ee7..911dda9 100644
--- a/src/main/groovy/groovy/lang/Closure.java
+++ b/src/main/groovy/groovy/lang/Closure.java
@@ -528,7 +528,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
      * @return the new closure with its arguments bound
      */
     public Closure<V> curry(final Object... arguments) {
-        return new CurriedClosure<V>(this, arguments);
+        return new CurriedClosure<>(this, arguments);
     }
 
     /**
@@ -561,7 +561,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
      * @see #curry(Object...)
      */
     public Closure<V> rcurry(final Object... arguments) {
-        return new CurriedClosure<V>(-arguments.length, this, arguments);
+        return new CurriedClosure<>(-arguments.length, this, arguments);
     }
 
     /**
@@ -610,7 +610,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
      * @see #curry(Object...)
      */
     public Closure<V> ncurry(int n, final Object... arguments) {
-        return new CurriedClosure<V>(n, this, arguments);
+        return new CurriedClosure<>(n, this, arguments);
     }
 
     /**
@@ -640,7 +640,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
      * @return the new composed Closure
      */
     public <W> Closure<W> rightShift(final Closure<W> other) {
-        return new ComposedClosure<W>(this, other);
+        return new ComposedClosure<>(this, other);
     }
 
     /**
@@ -659,7 +659,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
      * @return the new composed Closure
      */
     public Closure<V> leftShift(final Closure other) {
-        return new ComposedClosure<V>(other, this);
+        return new ComposedClosure<>(other, this);
     }
 
     /* *
@@ -743,7 +743,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
     public Closure<V> memoizeAtLeast(final int protectedCacheSize) {
         if (protectedCacheSize < 0) throw new IllegalArgumentException("A non-negative number is required as the protectedCacheSize parameter for memoizeAtLeast.");
 
-        return Memoize.buildSoftReferenceMemoizeFunction(protectedCacheSize, new ConcurrentSoftCache<Object, Object>(), this);
+        return Memoize.buildSoftReferenceMemoizeFunction(protectedCacheSize, new ConcurrentSoftCache<>(), this);
     }
 
     /**
@@ -775,7 +775,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         if (maxCacheSize < 0) throw new IllegalArgumentException("A non-negative number is required as the maxCacheSize parameter for memoizeBetween.");
         if (protectedCacheSize > maxCacheSize) throw new IllegalArgumentException("The maxCacheSize parameter to memoizeBetween is required to be greater or equal to the protectedCacheSize parameter.");
 
-        return Memoize.buildSoftReferenceMemoizeFunction(protectedCacheSize, new ConcurrentSoftCache<Object, Object>(maxCacheSize), this);
+        return Memoize.buildSoftReferenceMemoizeFunction(protectedCacheSize, new ConcurrentSoftCache<>(maxCacheSize), this);
     }
 
     /**
@@ -799,7 +799,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
      * @return A closure, which will execute the original closure on a trampoline.
      */
     public Closure<V> trampoline(final Object... args) {
-        return new TrampolineClosure<V>(this.curry(args));
+        return new TrampolineClosure<>(this.curry(args));
     }
 
     /**
@@ -813,7 +813,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
      * @see #trampoline(Object...)
      */
     public Closure<V> trampoline() {
-        return new TrampolineClosure<V>(this);
+        return new TrampolineClosure<>(this);
     }
 
     /* (non-Javadoc)

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/EmptyRange.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/EmptyRange.java b/src/main/groovy/groovy/lang/EmptyRange.java
index b67b32e..7dd8cda 100644
--- a/src/main/groovy/groovy/lang/EmptyRange.java
+++ b/src/main/groovy/groovy/lang/EmptyRange.java
@@ -209,6 +209,6 @@ public class EmptyRange<T extends Comparable> extends AbstractList<T> implements
      */
     @Override
     public List<T> step(int step) {
-        return new ArrayList<T>();
+        return new ArrayList<>();
     }
 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/ExpandoMetaClass.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/ExpandoMetaClass.java b/src/main/groovy/groovy/lang/ExpandoMetaClass.java
index 8183e08..e2d507e 100644
--- a/src/main/groovy/groovy/lang/ExpandoMetaClass.java
+++ b/src/main/groovy/groovy/lang/ExpandoMetaClass.java
@@ -283,19 +283,19 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
     private final boolean allowChangesAfterInit;
     public boolean inRegistry;
     
-    private final Set<MetaMethod> inheritedMetaMethods = new HashSet<MetaMethod>();
-    private final Map<String, MetaProperty> beanPropertyCache = new ConcurrentHashMap<String, MetaProperty>(16, 0.75f, 1);
-    private final Map<String, MetaProperty> staticBeanPropertyCache = new ConcurrentHashMap<String, MetaProperty>(16, 0.75f, 1);
-    private final Map<MethodKey, MetaMethod> expandoMethods = new ConcurrentHashMap<MethodKey, MetaMethod>(16, 0.75f, 1);
+    private final Set<MetaMethod> inheritedMetaMethods = new HashSet<>();
+    private final Map<String, MetaProperty> beanPropertyCache = new ConcurrentHashMap<>(16, 0.75f, 1);
+    private final Map<String, MetaProperty> staticBeanPropertyCache = new ConcurrentHashMap<>(16, 0.75f, 1);
+    private final Map<MethodKey, MetaMethod> expandoMethods = new ConcurrentHashMap<>(16, 0.75f, 1);
 
     public Collection getExpandoSubclassMethods() {
         return expandoSubclassMethods.values();
     }
 
     private final ConcurrentHashMap expandoSubclassMethods = new ConcurrentHashMap(16, 0.75f, 1);
-    private final Map<String, MetaProperty> expandoProperties = new ConcurrentHashMap<String, MetaProperty>(16, 0.75f, 1);
+    private final Map<String, MetaProperty> expandoProperties = new ConcurrentHashMap<>(16, 0.75f, 1);
     private ClosureStaticMetaMethod invokeStaticMethodMethod;
-    private final Set<MixinInMetaClass> mixinClasses = new LinkedHashSet<MixinInMetaClass>();
+    private final Set<MixinInMetaClass> mixinClasses = new LinkedHashSet<>();
 
     public ExpandoMetaClass(Class theClass, boolean register, boolean allowChangesAfterInit, MetaMethod[] add) {
         this(GroovySystem.getMetaClassRegistry(), theClass, register, allowChangesAfterInit, add);
@@ -919,14 +919,14 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
      * @see MetaObjectProtocol#getMethods()
      */
     public List<MetaMethod> getMethods() {
-        List<MetaMethod> methodList = new ArrayList<MetaMethod>();
+        List<MetaMethod> methodList = new ArrayList<>();
         methodList.addAll(this.expandoMethods.values());
         methodList.addAll(super.getMethods());
         return methodList;
     }
 
     public List<MetaProperty> getProperties() {
-        List<MetaProperty> propertyList = new ArrayList<MetaProperty>(super.getProperties());
+        List<MetaProperty> propertyList = new ArrayList<>(super.getProperties());
         return propertyList;
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/GroovyClassLoader.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/GroovyClassLoader.java b/src/main/groovy/groovy/lang/GroovyClassLoader.java
index 90402ee..763bdc5 100644
--- a/src/main/groovy/groovy/lang/GroovyClassLoader.java
+++ b/src/main/groovy/groovy/lang/GroovyClassLoader.java
@@ -91,13 +91,13 @@ public class GroovyClassLoader extends URLClassLoader {
     /**
      * this cache contains the loaded classes or PARSING, if the class is currently parsed
      */
-    protected final Map<String, Class> classCache = new UnlimitedConcurrentCache<String, Class>();
+    protected final Map<String, Class> classCache = new UnlimitedConcurrentCache<>();
 
     /**
      * This cache contains mappings of file name to class. It is used
      * to bypass compilation.
      */
-    protected final Map<String, Class> sourceCache = new StampedCommonCache<String, Class>();
+    protected final Map<String, Class> sourceCache = new StampedCommonCache<>();
 
     private final CompilerConfiguration config;
     private String sourceEncoding;
@@ -538,7 +538,7 @@ public class GroovyClassLoader extends URLClassLoader {
         protected ClassCollector(InnerLoader cl, CompilationUnit unit, SourceUnit su) {
             this.cl = cl;
             this.unit = unit;
-            this.loadedClasses = new ArrayList<Class>();
+            this.loadedClasses = new ArrayList<>();
             this.su = su;
         }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/IntRange.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/IntRange.java b/src/main/groovy/groovy/lang/IntRange.java
index 79a57b0..d1705ac 100644
--- a/src/main/groovy/groovy/lang/IntRange.java
+++ b/src/main/groovy/groovy/lang/IntRange.java
@@ -350,7 +350,7 @@ public class IntRange extends AbstractList<Integer> implements Range<Integer> {
         }
 
         if (fromIndex == toIndex) {
-            return new EmptyRange<Integer>(getFrom());
+            return new EmptyRange<>(getFrom());
         }
 
         return new IntRange(fromIndex + getFrom(), toIndex + getFrom() - 1, isReverse());
@@ -423,7 +423,7 @@ public class IntRange extends AbstractList<Integer> implements Range<Integer> {
 
     @Override
     public List<Integer> step(int step) {
-        final IteratorClosureAdapter<Integer> adapter = new IteratorClosureAdapter<Integer>(this);
+        final IteratorClosureAdapter<Integer> adapter = new IteratorClosureAdapter<>(this);
         step(step, adapter);
         return adapter.asList();
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/ListWithDefault.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/ListWithDefault.java b/src/main/groovy/groovy/lang/ListWithDefault.java
index 6b87548..c4cb431 100644
--- a/src/main/groovy/groovy/lang/ListWithDefault.java
+++ b/src/main/groovy/groovy/lang/ListWithDefault.java
@@ -45,7 +45,7 @@ public final class ListWithDefault<T> implements List<T> {
     }
 
     public List<T> getDelegate() {
-        return delegate != null ? new ArrayList<T>(delegate) : null;
+        return delegate != null ? new ArrayList<>(delegate) : null;
     }
 
     public boolean isLazyDefaultValues() {
@@ -62,7 +62,7 @@ public final class ListWithDefault<T> implements List<T> {
         if (initClosure == null)
             throw new IllegalArgumentException("Parameter \"initClosure\" must not be null");
 
-        return new ListWithDefault<T>(new ArrayList<T>(items), lazyDefaultValues, (Closure) initClosure.clone());
+        return new ListWithDefault<>(new ArrayList<>(items), lazyDefaultValues, (Closure) initClosure.clone());
     }
 
     public int size() {
@@ -252,6 +252,6 @@ public final class ListWithDefault<T> implements List<T> {
      * @return a view of a specified range within this list, keeping all lazy list settings
      */
     public ListWithDefault<T> subList(int fromIndex, int toIndex) {
-        return new ListWithDefault<T>(delegate.subList(fromIndex, toIndex), lazyDefaultValues, (Closure) initClosure.clone());
+        return new ListWithDefault<>(delegate.subList(fromIndex, toIndex), lazyDefaultValues, (Closure) initClosure.clone());
     }
 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/MapWithDefault.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/MapWithDefault.java b/src/main/groovy/groovy/lang/MapWithDefault.java
index 166e06b..9845979 100644
--- a/src/main/groovy/groovy/lang/MapWithDefault.java
+++ b/src/main/groovy/groovy/lang/MapWithDefault.java
@@ -39,7 +39,7 @@ public final class MapWithDefault<K, V> implements Map<K, V> {
     }
 
     public static <K, V> Map<K, V> newInstance(Map<K, V> m, Closure initClosure) {
-        return new MapWithDefault<K, V>(m, initClosure);
+        return new MapWithDefault<>(m, initClosure);
     }
 
     public int size() {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/MetaClassImpl.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/MetaClassImpl.java b/src/main/groovy/groovy/lang/MetaClassImpl.java
index f20d455..e568bd6 100644
--- a/src/main/groovy/groovy/lang/MetaClassImpl.java
+++ b/src/main/groovy/groovy/lang/MetaClassImpl.java
@@ -149,12 +149,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
 
     private final Index classPropertyIndex = new MethodIndex();
     private final SingleKeyHashMap staticPropertyIndex = new SingleKeyHashMap();
-    private final Map<String, MetaMethod> listeners = new HashMap<String, MetaMethod>();
-    private final List<MetaMethod> allMethods = new ArrayList<MetaMethod>();
+    private final Map<String, MetaMethod> listeners = new HashMap<>();
+    private final List<MetaMethod> allMethods = new ArrayList<>();
     // we only need one of these that can be reused over and over.
     private final MetaProperty arrayLengthProperty = new MetaArrayLengthProperty();
     private final Index classPropertyIndexForSuper = new MethodIndex();
-    private final Set<MetaMethod> newGroovyMethodsSet = new HashSet<MetaMethod>();
+    private final Set<MetaMethod> newGroovyMethodsSet = new HashSet<>();
     private final MetaMethod[] myNewMetaMethods;
     private final MetaMethod[] additionalMetaMethods;
 
@@ -187,7 +187,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         metaMethodIndex = new MetaMethodIndex(theCachedClass);
         final MetaMethod[] metaMethods = theCachedClass.getNewMetaMethods();
         if (add != null && !(add.length == 0)) {
-            List<MetaMethod> arr = new ArrayList<MetaMethod>();
+            List<MetaMethod> arr = new ArrayList<>();
             arr.addAll(Arrays.asList(metaMethods));
             arr.addAll(Arrays.asList(add));
             myNewMetaMethods = arr.toArray(MetaMethod.EMPTY_ARRAY);
@@ -437,7 +437,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
     }
 
     protected LinkedList<CachedClass> getSuperClasses() {
-        LinkedList<CachedClass> superClasses = new LinkedList<CachedClass>();
+        LinkedList<CachedClass> superClasses = new LinkedList<>();
 
         if (theClass.isInterface()) {
             superClasses.addFirst(ReflectionCache.OBJECT_CLASS);
@@ -2107,7 +2107,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
             }
         }
 
-        return new Tuple2<MetaMethod, MetaProperty>(method, mp);
+        return new Tuple2<>(method, mp);
     }
 
 
@@ -2315,7 +2315,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
     @SuppressWarnings("unchecked")
     private void setupProperties(PropertyDescriptor[] propertyDescriptors) {
         if (theCachedClass.isInterface) {
-            LinkedList<CachedClass> superClasses = new LinkedList<CachedClass>();
+            LinkedList<CachedClass> superClasses = new LinkedList<>();
             superClasses.add(ReflectionCache.OBJECT_CLASS);
             Set interfaces = theCachedClass.getInterfaces();
 
@@ -2340,7 +2340,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
             makeStaticPropertyIndex();
         } else {
             LinkedList<CachedClass> superClasses = getSuperClasses();
-            LinkedList<CachedClass> interfaces = new LinkedList<CachedClass>(theCachedClass.getInterfaces());
+            LinkedList<CachedClass> interfaces = new LinkedList<>(theCachedClass.getInterfaces());
             // sort interfaces so that we may ensure a deterministic behaviour in case of
             // ambiguous fields (class implementing two interfaces using the same field)
             if (interfaces.size()>1) {
@@ -2534,7 +2534,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         }
     }
 
-    private static final ConcurrentMap<String, String> PROP_NAMES = new ConcurrentHashMap<String, String>(1024);
+    private static final ConcurrentMap<String, String> PROP_NAMES = new ConcurrentHashMap<>(1024);
 
     private static String getPropName(String methodName) {
         String name = PROP_NAMES.get(methodName);
@@ -3478,7 +3478,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
       * @return A list of MetaMethods
       */
     public List<MetaMethod> getMetaMethods() {
-        return new ArrayList<MetaMethod>(newGroovyMethodsSet);
+        return new ArrayList<>(newGroovyMethodsSet);
     }
 
     protected void dropStaticMethodCache(String name) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/NumberRange.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/NumberRange.java b/src/main/groovy/groovy/lang/NumberRange.java
index 52ef856..e88e005 100644
--- a/src/main/groovy/groovy/lang/NumberRange.java
+++ b/src/main/groovy/groovy/lang/NumberRange.java
@@ -598,7 +598,7 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
 
     @Override
     public List<Comparable> step(int numSteps) {
-        final IteratorClosureAdapter<Comparable> adapter = new IteratorClosureAdapter<Comparable>(this);
+        final IteratorClosureAdapter<Comparable> adapter = new IteratorClosureAdapter<>(this);
         step(numSteps, adapter);
         return adapter.asList();
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/ObjectRange.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/ObjectRange.java b/src/main/groovy/groovy/lang/ObjectRange.java
index a7e2b05..a7308ef 100644
--- a/src/main/groovy/groovy/lang/ObjectRange.java
+++ b/src/main/groovy/groovy/lang/ObjectRange.java
@@ -494,7 +494,7 @@ public class ObjectRange extends AbstractList<Comparable> implements Range<Compa
 
     @Override
     public List<Comparable> step(int step) {
-        final IteratorClosureAdapter<Comparable> adapter = new IteratorClosureAdapter<Comparable>(this);
+        final IteratorClosureAdapter<Comparable> adapter = new IteratorClosureAdapter<>(this);
         step(step, adapter);
         return adapter.asList();
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/lang/TrampolineClosure.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/TrampolineClosure.java b/src/main/groovy/groovy/lang/TrampolineClosure.java
index 71f31c8..d9965f5 100644
--- a/src/main/groovy/groovy/lang/TrampolineClosure.java
+++ b/src/main/groovy/groovy/lang/TrampolineClosure.java
@@ -98,7 +98,7 @@ final class TrampolineClosure<V> extends Closure<V> {
      */
     @Override
    public Closure<V> trampoline(final Object... args) {
-        return new TrampolineClosure<V>(original.curry(args));
+        return new TrampolineClosure<>(original.curry(args));
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/transform/builder/DefaultStrategy.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/builder/DefaultStrategy.java b/src/main/groovy/groovy/transform/builder/DefaultStrategy.java
index b0dfae4..02a6130 100644
--- a/src/main/groovy/groovy/transform/builder/DefaultStrategy.java
+++ b/src/main/groovy/groovy/transform/builder/DefaultStrategy.java
@@ -190,8 +190,8 @@ public class DefaultStrategy extends BuilderASTTransformation.AbstractBuilderStr
     }
 
     public void buildClass(BuilderASTTransformation transform, ClassNode buildee, AnnotationNode anno) {
-        List<String> excludes = new ArrayList<String>();
-        List<String> includes = new ArrayList<String>();
+        List<String> excludes = new ArrayList<>();
+        List<String> includes = new ArrayList<>();
         includes.add(Undefined.STRING);
         if (!getIncludeExclude(transform, anno, buildee, excludes, includes)) return;
         if (includes.size() == 1 && Undefined.isUndefined(includes.get(0))) includes = null;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/transform/builder/ExternalStrategy.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/builder/ExternalStrategy.java b/src/main/groovy/groovy/transform/builder/ExternalStrategy.java
index cba3b8b..fa8b720 100644
--- a/src/main/groovy/groovy/transform/builder/ExternalStrategy.java
+++ b/src/main/groovy/groovy/transform/builder/ExternalStrategy.java
@@ -102,8 +102,8 @@ public class ExternalStrategy extends BuilderASTTransformation.AbstractBuilderSt
             transform.addError("Error during " + MY_TYPE_NAME + " processing: 'forClass' must be specified for " + getClass().getName(), anno);
             return;
         }
-        List<String> excludes = new ArrayList<String>();
-        List<String> includes = new ArrayList<String>();
+        List<String> excludes = new ArrayList<>();
+        List<String> includes = new ArrayList<>();
         includes.add(Undefined.STRING);
         if (!getIncludeExclude(transform, anno, buildee, excludes, includes)) return;
         if (includes.size() == 1 && Undefined.isUndefined(includes.get(0))) includes = null;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/transform/builder/InitializerStrategy.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/builder/InitializerStrategy.java b/src/main/groovy/groovy/transform/builder/InitializerStrategy.java
index 0ed615e..9d5edc1 100644
--- a/src/main/groovy/groovy/transform/builder/InitializerStrategy.java
+++ b/src/main/groovy/groovy/transform/builder/InitializerStrategy.java
@@ -147,8 +147,8 @@ public class InitializerStrategy extends BuilderASTTransformation.AbstractBuilde
     }
 
     private void createBuilderForAnnotatedClass(BuilderASTTransformation transform, ClassNode buildee, AnnotationNode anno, boolean useSetters, boolean allNames, boolean force) {
-        List<String> excludes = new ArrayList<String>();
-        List<String> includes = new ArrayList<String>();
+        List<String> excludes = new ArrayList<>();
+        List<String> includes = new ArrayList<>();
         includes.add(Undefined.STRING);
         if (!getIncludeExclude(transform, anno, buildee, excludes, includes)) return;
         if (includes.size() == 1 && Undefined.isUndefined(includes.get(0))) includes = null;
@@ -221,7 +221,7 @@ public class InitializerStrategy extends BuilderASTTransformation.AbstractBuilde
     }
 
     private static List<FieldNode> convertParamsToFields(ClassNode builder, Parameter[] parameters) {
-        List<FieldNode> fieldNodes = new ArrayList<FieldNode>();
+        List<FieldNode> fieldNodes = new ArrayList<>();
         for(Parameter parameter: parameters) {
             Map<String,ClassNode> genericsSpec = createGenericsSpec(builder);
             ClassNode correctedType = correctToGenericsSpecRecurse(genericsSpec, parameter.getType());
@@ -288,7 +288,7 @@ public class InitializerStrategy extends BuilderASTTransformation.AbstractBuilde
 
     private static void createBuildeeMethods(ClassNode buildee, MethodNode mNode, ClassNode builder, List<FieldNode> fields) {
         ClassNode paramType = makeClassSafeWithGenerics(builder, setGenTypes(fields.size()));
-        List<Expression> argsList = new ArrayList<Expression>();
+        List<Expression> argsList = new ArrayList<>();
         Parameter initParam = param(paramType, "initializer");
         for (FieldNode fieldNode : fields) {
             argsList.add(propX(varX(initParam), fieldNode.getName()));
@@ -319,7 +319,7 @@ public class InitializerStrategy extends BuilderASTTransformation.AbstractBuilde
 
     private static ConstructorNode createInitializerConstructor(ClassNode buildee, ClassNode builder, List<FieldNode> fields) {
         ClassNode paramType = makeClassSafeWithGenerics(builder, setGenTypes(fields.size()));
-        List<Expression> argsList = new ArrayList<Expression>();
+        List<Expression> argsList = new ArrayList<>();
         Parameter initParam = param(paramType, "initializer");
         for (FieldNode fieldNode : fields) {
             argsList.add(propX(varX(initParam), fieldNode.getName()));
@@ -336,7 +336,7 @@ public class InitializerStrategy extends BuilderASTTransformation.AbstractBuilde
         String fieldName = fields.get(fieldPos).getName();
         String setterName = getSetterName(prefix, fieldName);
         GenericsType[] gtypes = new GenericsType[fields.size()];
-        List<Expression> argList = new ArrayList<Expression>();
+        List<Expression> argList = new ArrayList<>();
         for (int i = 0; i < fields.size(); i++) {
             gtypes[i] = i == fieldPos ? new GenericsType(ClassHelper.make(SET.class)) : makePlaceholder(i);
             argList.add(i == fieldPos ? propX(varX("this"), constX(fieldName)) : varX(fields.get(i).getName()));
@@ -367,7 +367,7 @@ public class InitializerStrategy extends BuilderASTTransformation.AbstractBuilde
     }
 
     private static List<FieldNode> filterFields(List<FieldNode> fieldNodes, List<String> includes, List<String> excludes, boolean allNames) {
-        List<FieldNode> fields = new ArrayList<FieldNode>();
+        List<FieldNode> fields = new ArrayList<>();
         for (FieldNode fNode : fieldNodes) {
             if (AbstractASTTransformation.shouldSkipUndefinedAware(fNode.getName(), excludes, includes, allNames)) continue;
             fields.add(fNode);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/transform/builder/SimpleStrategy.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/builder/SimpleStrategy.java b/src/main/groovy/groovy/transform/builder/SimpleStrategy.java
index fd96b7f..b8159e5 100644
--- a/src/main/groovy/groovy/transform/builder/SimpleStrategy.java
+++ b/src/main/groovy/groovy/transform/builder/SimpleStrategy.java
@@ -98,8 +98,8 @@ public class SimpleStrategy extends BuilderASTTransformation.AbstractBuilderStra
         boolean useSetters = transform.memberHasValue(anno, "useSetters", true);
         boolean allNames = transform.memberHasValue(anno, "allNames", true);
 
-        List<String> excludes = new ArrayList<String>();
-        List<String> includes = new ArrayList<String>();
+        List<String> excludes = new ArrayList<>();
+        List<String> includes = new ArrayList<>();
         includes.add(Undefined.STRING);
         if (!getIncludeExclude(transform, anno, buildee, excludes, includes)) return;
         if (includes.size() == 1 && Undefined.isUndefined(includes.get(0))) includes = null;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/transform/stc/FromAbstractTypeMethods.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/stc/FromAbstractTypeMethods.java b/src/main/groovy/groovy/transform/stc/FromAbstractTypeMethods.java
index e5125f1..8df6586 100644
--- a/src/main/groovy/groovy/transform/stc/FromAbstractTypeMethods.java
+++ b/src/main/groovy/groovy/transform/stc/FromAbstractTypeMethods.java
@@ -47,7 +47,7 @@ public class FromAbstractTypeMethods extends ClosureSignatureHint {
 
     private static List<ClassNode[]> extractSignaturesFromMethods(final ClassNode cn) {
         List<MethodNode> methods = cn.getAllDeclaredMethods();
-        List<ClassNode[]> signatures = new LinkedList<ClassNode[]>();
+        List<ClassNode[]> signatures = new LinkedList<>();
         for (MethodNode method : methods) {
             if (!method.isSynthetic() && method.isAbstract()) {
                 extractParametersFromMethod(signatures, method);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/transform/stc/FromString.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/stc/FromString.java b/src/main/groovy/groovy/transform/stc/FromString.java
index 12f9371..f1bf8c5 100644
--- a/src/main/groovy/groovy/transform/stc/FromString.java
+++ b/src/main/groovy/groovy/transform/stc/FromString.java
@@ -53,7 +53,7 @@ public class FromString extends ClosureSignatureHint {
 
     @Override
     public List<ClassNode[]> getClosureSignatures(final MethodNode node, final SourceUnit sourceUnit, final CompilationUnit compilationUnit, final String[] options, final ASTNode usage) {
-        List<ClassNode[]> list = new ArrayList<ClassNode[]>(options.length);
+        List<ClassNode[]> list = new ArrayList<>(options.length);
         for (String option : options) {
             list.add(parseOption(option, sourceUnit, compilationUnit, node, usage));
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/ui/GroovyMain.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/ui/GroovyMain.java b/src/main/groovy/groovy/ui/GroovyMain.java
index 7bdf937..d8d6a8d 100644
--- a/src/main/groovy/groovy/ui/GroovyMain.java
+++ b/src/main/groovy/groovy/ui/GroovyMain.java
@@ -169,14 +169,14 @@ public class GroovyMain {
         private String classpath;
 
         @Option(names = {"-D", "--define"}, paramLabel = "<property=value>", description = "Define a system property")
-        private Map<String, String> systemProperties = new LinkedHashMap<String, String>();
+        private Map<String, String> systemProperties = new LinkedHashMap<>();
 
         @Option(names = "--disableopt", paramLabel = "optlist", split = ",",
                 description = {
                         "Disables one or all optimization elements; optlist can be a comma separated list with the elements: ",
                                 "all (disables all optimizations), ",
                                 "int (disable any int based optimizations)"})
-        private List<String> disableopt = new ArrayList<String>();
+        private List<String> disableopt = new ArrayList<>();
 
         @Option(names = {"-d", "--debug"}, description = "Debug mode will print out full stack traces")
         private boolean debug;
@@ -221,7 +221,7 @@ public class GroovyMain {
         private boolean versionRequested;
 
         @Unmatched
-        List<String> arguments = new ArrayList<String>();
+        List<String> arguments = new ArrayList<>();
 
         /**
          * Process the users request.
@@ -292,7 +292,7 @@ public class GroovyMain {
         }
 
         private List<String> getConfigScripts() {
-            List<String> scripts = new ArrayList<String>();
+            List<String> scripts = new ArrayList<>();
             if (this.configscript != null) {
                 scripts.add(this.configscript);
             }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/FactoryBuilderSupport.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/FactoryBuilderSupport.java b/src/main/groovy/groovy/util/FactoryBuilderSupport.java
index a718dc9..e6dbe9a 100644
--- a/src/main/groovy/groovy/util/FactoryBuilderSupport.java
+++ b/src/main/groovy/groovy/util/FactoryBuilderSupport.java
@@ -142,21 +142,21 @@ public abstract class FactoryBuilderSupport extends Binding {
         }
     }
 
-    private final ThreadLocal<LinkedList<Map<String, Object>>> contexts = new ThreadLocal<LinkedList<Map<String, Object>>>();
-    protected LinkedList<Closure> attributeDelegates = new LinkedList<Closure>(); //
-    private final List<Closure> disposalClosures = new ArrayList<Closure>(); // because of reverse iteration use ArrayList
-    private final Map<String, Factory> factories = new HashMap<String, Factory>();
+    private final ThreadLocal<LinkedList<Map<String, Object>>> contexts = new ThreadLocal<>();
+    protected LinkedList<Closure> attributeDelegates = new LinkedList<>(); //
+    private final List<Closure> disposalClosures = new ArrayList<>(); // because of reverse iteration use ArrayList
+    private final Map<String, Factory> factories = new HashMap<>();
     private Closure nameMappingClosure;
-    private final ThreadLocal<FactoryBuilderSupport> localProxyBuilder = new ThreadLocal<FactoryBuilderSupport>();
+    private final ThreadLocal<FactoryBuilderSupport> localProxyBuilder = new ThreadLocal<>();
     private FactoryBuilderSupport globalProxyBuilder;
-    protected LinkedList<Closure> preInstantiateDelegates = new LinkedList<Closure>();
-    protected LinkedList<Closure> postInstantiateDelegates = new LinkedList<Closure>();
-    protected LinkedList<Closure> postNodeCompletionDelegates = new LinkedList<Closure>();
+    protected LinkedList<Closure> preInstantiateDelegates = new LinkedList<>();
+    protected LinkedList<Closure> postInstantiateDelegates = new LinkedList<>();
+    protected LinkedList<Closure> postNodeCompletionDelegates = new LinkedList<>();
     protected Closure methodMissingDelegate;
     protected Closure propertyMissingDelegate;
-    protected Map<String, Closure[]> explicitProperties = new HashMap<String, Closure[]>();
-    protected Map<String, Closure> explicitMethods = new HashMap<String, Closure>();
-    protected Map<String, Set<String>> registrationGroup = new HashMap<String, Set<String>>();
+    protected Map<String, Closure[]> explicitProperties = new HashMap<>();
+    protected Map<String, Closure> explicitMethods = new HashMap<>();
+    protected Map<String, Set<String>> registrationGroup = new HashMap<>();
     protected String registrationGroupName = ""; // use binding to store?
 
     protected boolean autoRegistrationRunning = false;
@@ -168,7 +168,7 @@ public abstract class FactoryBuilderSupport extends Binding {
 
     public FactoryBuilderSupport(boolean init) {
         globalProxyBuilder = this;
-        registrationGroup.put(registrationGroupName, new TreeSet<String>());
+        registrationGroup.put(registrationGroupName, new TreeSet<>());
         if (init) {
             autoRegisterNodes();
         }
@@ -177,7 +177,7 @@ public abstract class FactoryBuilderSupport extends Binding {
     private Set<String> getRegistrationGroup(String name) {
         Set<String> group = registrationGroup.get(name);
         if (group == null ) {
-            group = new TreeSet<String>();
+            group = new TreeSet<>();
             registrationGroup.put(name, group);
         }
         return group;
@@ -214,7 +214,7 @@ public abstract class FactoryBuilderSupport extends Binding {
         for (Method method : declaredMethods) {
             if (method.getName().startsWith("register") && method.getParameterTypes().length == 0) {
                 registrationGroupName = method.getName().substring("register".length());
-                registrationGroup.put(registrationGroupName, new TreeSet<String>());
+                registrationGroup.put(registrationGroupName, new TreeSet<>());
                 try {
                     if (Modifier.isPublic(method.getModifiers())) {
                         method.invoke(this);
@@ -995,7 +995,7 @@ public abstract class FactoryBuilderSupport extends Binding {
      * Pushes a new context on the stack.
      */
     protected void newContext() {
-        getContexts().addFirst(new HashMap<String, Object>());
+        getContexts().addFirst(new HashMap<>());
     }
 
     /**
@@ -1129,7 +1129,7 @@ public abstract class FactoryBuilderSupport extends Binding {
     protected LinkedList<Map<String, Object>> getContexts() {
         LinkedList<Map<String, Object>> contexts = getProxyBuilder().contexts.get();
         if (contexts == null) {
-            contexts = new LinkedList<Map<String, Object>>();
+            contexts = new LinkedList<>();
             getProxyBuilder().contexts.set(contexts);
         }
         return contexts;
@@ -1140,7 +1140,7 @@ public abstract class FactoryBuilderSupport extends Binding {
      * @return the map
      */
     protected Map<String, Object> getContinuationData() {
-        Map<String, Object> data = new HashMap<String, Object>();
+        Map<String, Object> data = new HashMap<>();
         data.put("proxyBuilder", localProxyBuilder.get());
         data.put("contexts", contexts.get());
         return data;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/GroovyCollections.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/GroovyCollections.java b/src/main/groovy/groovy/util/GroovyCollections.java
index 19bef50..aced942 100644
--- a/src/main/groovy/groovy/util/GroovyCollections.java
+++ b/src/main/groovy/groovy/util/GroovyCollections.java
@@ -57,16 +57,16 @@ public class GroovyCollections {
      */
     public static <T> Set<List<T>> subsequences(List<T> items) {
         // items.inject([]){ ss, h -> ss.collect { it + [h] }  + ss + [[h]] }
-        Set<List<T>> ans = new HashSet<List<T>>();
+        Set<List<T>> ans = new HashSet<>();
         for (T h : items) {
-            Set<List<T>> next = new HashSet<List<T>>();
+            Set<List<T>> next = new HashSet<>();
             for (List<T> it : ans) {
-                List<T> sublist = new ArrayList<T>(it);
+                List<T> sublist = new ArrayList<>(it);
                 sublist.add(h);
                 next.add(sublist);
             }
             next.addAll(ans);
-            List<T> hlist = new ArrayList<T>();
+            List<T> hlist = new ArrayList<>();
             hlist.add(h);
             next.add(hlist);
             ans = next;
@@ -128,7 +128,7 @@ public class GroovyCollections {
 
     public static <T> List<List<T>> inits(Iterable<T> collections) {
         List<T> copy = DefaultGroovyMethods.toList(collections);
-        List<List<T>> result = new ArrayList<List<T>>();
+        List<List<T>> result = new ArrayList<>();
         for (int i = copy.size(); i >= 0; i--) {
             List<T> next = copy.subList(0, i);
             result.add(next);
@@ -138,7 +138,7 @@ public class GroovyCollections {
 
     public static <T> List<List<T>> tails(Iterable<T> collections) {
         List<T> copy = DefaultGroovyMethods.toList(collections);
-        List<List<T>> result = new ArrayList<List<T>>();
+        List<List<T>> result = new ArrayList<>();
         for (int i = 0; i <= copy.size(); i++) {
             List<T> next = copy.subList(i, copy.size());
             result.add(next);

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/GroovyScriptEngine.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/GroovyScriptEngine.java b/src/main/groovy/groovy/util/GroovyScriptEngine.java
index c9e0c5b..2196f20 100644
--- a/src/main/groovy/groovy/util/GroovyScriptEngine.java
+++ b/src/main/groovy/groovy/util/GroovyScriptEngine.java
@@ -78,16 +78,16 @@ public class GroovyScriptEngine implements ResourceConnector {
     private static class LocalData {
         CompilationUnit cu;
         final StringSetMap dependencyCache = new StringSetMap();
-        final Map<String, String> precompiledEntries = new HashMap<String, String>();
+        final Map<String, String> precompiledEntries = new HashMap<>();
     }
 
-    private static WeakReference<ThreadLocal<LocalData>> localData = new WeakReference<ThreadLocal<LocalData>>(null);
+    private static WeakReference<ThreadLocal<LocalData>> localData = new WeakReference<>(null);
 
     private static synchronized ThreadLocal<LocalData> getLocalData() {
         ThreadLocal<LocalData> local = localData.get();
         if (local != null) return local;
-        local = new ThreadLocal<LocalData>();
-        localData = new WeakReference<ThreadLocal<LocalData>>(local);
+        local = new ThreadLocal<>();
+        localData = new WeakReference<>(local);
         return local;
     }
 
@@ -95,7 +95,7 @@ public class GroovyScriptEngine implements ResourceConnector {
     private final ResourceConnector rc;
     private final ClassLoader parentLoader;
     private GroovyClassLoader groovyLoader;
-    private final Map<String, ScriptCacheEntry> scriptCache = new ConcurrentHashMap<String, ScriptCacheEntry>();
+    private final Map<String, ScriptCacheEntry> scriptCache = new ConcurrentHashMap<>();
     private CompilerConfiguration config;
 
     {
@@ -261,7 +261,7 @@ public class GroovyScriptEngine implements ResourceConnector {
             Set<String> origDep = null;
             if (origEntry != null) origDep = origEntry.dependencies;
             if (origDep != null) {
-                Set<String> newDep = new HashSet<String>(origDep.size());
+                Set<String> newDep = new HashSet<>(origDep.size());
                 for (String depName : origDep) {
                     ScriptCacheEntry dep = scriptCache.get(depName);
                     try {
@@ -281,7 +281,7 @@ public class GroovyScriptEngine implements ResourceConnector {
             StringSetMap cache = localData.dependencyCache;
             cache.makeTransitiveHull();
             long time = getCurrentTime();
-            Set<String> entryNames = new HashSet<String>();
+            Set<String> entryNames = new HashSet<>();
             for (Map.Entry<String, Set<String>> entry : cache.entrySet()) {
                 String className = entry.getKey();
                 Class clazz = getClassCacheEntry(className);
@@ -317,7 +317,7 @@ public class GroovyScriptEngine implements ResourceConnector {
         }
 
         private Set<String> convertToPaths(Set<String> orig, Map<String, String> precompiledEntries) {
-            Set<String> ret = new HashSet<String>();
+            Set<String> ret = new HashSet<>();
             for (String className : orig) {
                 Class clazz = getClassCacheEntry(className);
                 if (clazz == null) continue;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/Node.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/Node.java b/src/main/groovy/groovy/util/Node.java
index 7063fba..f8415cd 100644
--- a/src/main/groovy/groovy/util/Node.java
+++ b/src/main/groovy/groovy/util/Node.java
@@ -594,7 +594,7 @@ public class Node implements Serializable, Cloneable {
      * @since 2.5.0
      */
     public void depthFirst(Closure c) {
-        Map<String, Object> options = new ListHashMap<String, Object>();
+        Map<String, Object> options = new ListHashMap<>();
         options.put("preorder", true);
         depthFirst(options, c);
     }
@@ -696,7 +696,7 @@ public class Node implements Serializable, Cloneable {
      * @since 2.5.0
      */
     public void breadthFirst(Closure c) {
-        Map<String, Object> options = new ListHashMap<String, Object>();
+        Map<String, Object> options = new ListHashMap<>();
         options.put("preorder", true);
         breadthFirst(options, c);
     }
@@ -719,7 +719,7 @@ public class Node implements Serializable, Cloneable {
     }
 
     private void breadthFirstRest(boolean preorder, int level, Closure c) {
-        Stack<Tuple2<Object, Integer>> stack = new Stack<Tuple2<Object, Integer>>();
+        Stack<Tuple2<Object, Integer>> stack = new Stack<>();
         List nextLevelChildren = preorder ? getDirectChildren() : DefaultGroovyMethods.reverse(getDirectChildren());
         while (!nextLevelChildren.isEmpty()) {
             List working = new NodeList(nextLevelChildren);
@@ -728,7 +728,7 @@ public class Node implements Serializable, Cloneable {
                 if (preorder) {
                     callClosureForNode(c, child, level);
                 } else {
-                    stack.push(new Tuple2<Object, Integer>(child, level));
+                    stack.push(new Tuple2<>(child, level));
                 }
                 if (child instanceof Node) {
                     Node childNode = (Node) child;
@@ -751,7 +751,7 @@ public class Node implements Serializable, Cloneable {
      * @since 2.3.0
      */
     public List<String> localText() {
-        List<String> answer = new ArrayList<String>();
+        List<String> answer = new ArrayList<>();
         for (Iterator iter = InvokerHelper.asIterator(value); iter.hasNext(); ) {
             Object child = iter.next();
             if (!(child instanceof Node)) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/ObjectGraphBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/ObjectGraphBuilder.java b/src/main/groovy/groovy/util/ObjectGraphBuilder.java
index 6dc1660..7d296cb 100644
--- a/src/main/groovy/groovy/util/ObjectGraphBuilder.java
+++ b/src/main/groovy/groovy/util/ObjectGraphBuilder.java
@@ -63,10 +63,10 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
     private final ObjectRefFactory objectRefFactory = new ObjectRefFactory();
     private ReferenceResolver referenceResolver;
     private RelationNameResolver relationNameResolver;
-    private final Map<String, Class> resolvedClasses = new HashMap<String, Class>();
+    private final Map<String, Class> resolvedClasses = new HashMap<>();
     private ClassLoader classLoader;
     private boolean lazyReferencesAllowed = true;
-    private final List<NodeReference> lazyReferences = new ArrayList<NodeReference>();
+    private final List<NodeReference> lazyReferences = new ArrayList<>();
     private String beanFactoryName = "bean";
 
     public ObjectGraphBuilder() {

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/ObservableMap.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/ObservableMap.java b/src/main/groovy/groovy/util/ObservableMap.java
index 2ccec3c..f27dd84 100644
--- a/src/main/groovy/groovy/util/ObservableMap.java
+++ b/src/main/groovy/groovy/util/ObservableMap.java
@@ -212,7 +212,7 @@ public class ObservableMap implements Map {
     public void putAll(Map map) {
         int oldSize = size();
         if (map != null) {
-            List<PropertyEvent> events = new ArrayList<PropertyEvent>();
+            List<PropertyEvent> events = new ArrayList<>();
             for (Object o : map.entrySet()) {
                 Entry entry = (Entry) o;
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/ObservableSet.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/ObservableSet.java b/src/main/groovy/groovy/util/ObservableSet.java
index 7ac3ce9..159fefb 100644
--- a/src/main/groovy/groovy/util/ObservableSet.java
+++ b/src/main/groovy/groovy/util/ObservableSet.java
@@ -74,7 +74,7 @@ public class ObservableSet<E> implements Set<E> {
     public static final String CONTENT_PROPERTY = "content";
 
     public ObservableSet() {
-        this(new HashSet<E>(), null);
+        this(new HashSet<>(), null);
     }
 
     public ObservableSet(Set<E> delegate) {
@@ -82,7 +82,7 @@ public class ObservableSet<E> implements Set<E> {
     }
 
     public ObservableSet(Closure test) {
-        this(new HashSet<E>(), test);
+        this(new HashSet<>(), test);
     }
 
     public ObservableSet(Set<E> delegate, Closure test) {
@@ -174,7 +174,7 @@ public class ObservableSet<E> implements Set<E> {
     }
 
     public Iterator<E> iterator() {
-        return new ObservableIterator<E>(delegate.iterator());
+        return new ObservableIterator<>(delegate.iterator());
     }
 
     public Object[] toArray() {
@@ -218,7 +218,7 @@ public class ObservableSet<E> implements Set<E> {
     }
 
     public boolean addAll(Collection<? extends E> c) {
-        Set<E> duplicates = new HashSet<E>();
+        Set<E> duplicates = new HashSet<>();
         if (null != c) {
             for (E e : c) {
                 if (!delegate.contains(e)) continue;
@@ -230,7 +230,7 @@ public class ObservableSet<E> implements Set<E> {
         boolean success = delegate.addAll(c);
 
         if (success && c != null) {
-            List<E> values = new ArrayList<E>();
+            List<E> values = new ArrayList<>();
             for (E element : c) {
                 if (test != null) {
                     Object result = test.call(element);
@@ -300,7 +300,7 @@ public class ObservableSet<E> implements Set<E> {
 
     public void clear() {
         int oldSize = size();
-        List<E> values = new ArrayList<E>(delegate);
+        List<E> values = new ArrayList<>(delegate);
         delegate.clear();
         if (!values.isEmpty()) {
             fireElementClearedEvent(values);
@@ -310,7 +310,7 @@ public class ObservableSet<E> implements Set<E> {
 
     protected class ObservableIterator<E> implements Iterator<E> {
         private final Iterator<E> iterDelegate;
-        private final Stack<E> stack = new Stack<E>();
+        private final Stack<E> stack = new Stack<>();
 
         public ObservableIterator(Iterator<E> iterDelegate) {
             this.iterDelegate = iterDelegate;

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/OrderBy.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/OrderBy.java b/src/main/groovy/groovy/util/OrderBy.java
index 703c9bc..bd289b2 100644
--- a/src/main/groovy/groovy/util/OrderBy.java
+++ b/src/main/groovy/groovy/util/OrderBy.java
@@ -38,14 +38,14 @@ public class OrderBy<T> implements Comparator<T>, Serializable {
     private static final long serialVersionUID = 8385130064804116654L;
     private final List<Closure> closures;
     private boolean equalityCheck;
-    private final NumberAwareComparator<Object> numberAwareComparator = new NumberAwareComparator<Object>();
+    private final NumberAwareComparator<Object> numberAwareComparator = new NumberAwareComparator<>();
 
     public OrderBy() {
-        this(new ArrayList<Closure>(), false);
+        this(new ArrayList<>(), false);
     }
 
     public OrderBy(boolean equalityCheck) {
-        this(new ArrayList<Closure>(), equalityCheck);
+        this(new ArrayList<>(), equalityCheck);
     }
 
     public OrderBy(Closure closure) {
@@ -53,7 +53,7 @@ public class OrderBy<T> implements Comparator<T>, Serializable {
     }
 
     public OrderBy(Closure closure, boolean equalityCheck) {
-        this(new ArrayList<Closure>(), equalityCheck);
+        this(new ArrayList<>(), equalityCheck);
         closures.add(closure);
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/PermutationGenerator.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/PermutationGenerator.java b/src/main/groovy/groovy/util/PermutationGenerator.java
index a9b68e2..2d12b7f 100644
--- a/src/main/groovy/groovy/util/PermutationGenerator.java
+++ b/src/main/groovy/groovy/util/PermutationGenerator.java
@@ -49,7 +49,7 @@ public class PermutationGenerator<E> implements Iterator<List<E>> {
      * @param items the items to permute
      */
     public PermutationGenerator(Collection<E> items) {
-        this.items = new ArrayList<E>(items);
+        this.items = new ArrayList<>(items);
         int n = items.size();
         if (n < 1) {
             throw new IllegalArgumentException("At least one item required");
@@ -136,7 +136,7 @@ public class PermutationGenerator<E> implements Iterator<List<E>> {
         }
 
         numLeft = numLeft.subtract(BigInteger.ONE);
-        List<E> ans = new ArrayList<E>(a.length);
+        List<E> ans = new ArrayList<>(a.length);
         for (int index : a) {
             ans.add(items.get(index));
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/groovy/groovy/util/ProxyGenerator.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/ProxyGenerator.java b/src/main/groovy/groovy/util/ProxyGenerator.java
index 04d98d6..9df51ac 100644
--- a/src/main/groovy/groovy/util/ProxyGenerator.java
+++ b/src/main/groovy/groovy/util/ProxyGenerator.java
@@ -126,7 +126,7 @@ public class ProxyGenerator {
     }
 
     public GroovyObject instantiateAggregateFromBaseClass(Closure cl, Class clazz) {
-        Map<String, Closure> m = new HashMap<String, Closure>();
+        Map<String, Closure> m = new HashMap<>();
         m.put("*", cl);
         return instantiateAggregateFromBaseClass(m, clazz, null);
     }
@@ -144,7 +144,7 @@ public class ProxyGenerator {
     }
 
     public GroovyObject instantiateAggregateFromInterface(Map map, Class clazz) {
-        List<Class> interfaces = new ArrayList<Class>();
+        List<Class> interfaces = new ArrayList<>();
         interfaces.add(clazz);
         return instantiateAggregate(map, interfaces);
     }
@@ -222,7 +222,7 @@ public class ProxyGenerator {
                 base = Object.class;
             }
         }
-        Set<String> keys = closureMap == EMPTY_CLOSURE_MAP ? EMPTY_KEYSET : new HashSet<String>();
+        Set<String> keys = closureMap == EMPTY_CLOSURE_MAP ? EMPTY_KEYSET : new HashSet<>();
         for (Object o : closureMap.keySet()) {
             keys.add(o.toString());
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java b/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
index 9cd26a0..2b42c2c 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
@@ -81,7 +81,7 @@ public class ClassNodeUtils {
     public static Map<String, MethodNode> getDeclaredMethodsFromSuper(ClassNode cNode) {
         ClassNode parent = cNode.getSuperClass();
         if (parent == null) {
-            return new HashMap<String, MethodNode>();
+            return new HashMap<>();
         }
         return parent.getDeclaredMethodsMap();
     }
@@ -114,7 +114,7 @@ public class ClassNodeUtils {
      * @return A map of methods
      */
     public static Map<String, MethodNode> getDeclaredMethodsFromInterfaces(ClassNode cNode) {
-        Map<String, MethodNode> result = new HashMap<String, MethodNode>();
+        Map<String, MethodNode> result = new HashMap<>();
         ClassNode[] interfaces = cNode.getInterfaces();
         for (ClassNode iface : interfaces) {
             result.putAll(iface.getDeclaredMethodsMap());

http://git-wip-us.apache.org/repos/asf/groovy/blob/72fd4078/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java b/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
index c04c545..51353a6 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
@@ -69,7 +69,7 @@ public class ImmutablePropertyUtils {
               This list can by extended by providing "known immutable" classes
               via Immutable.knownImmutableClasses
              */
-    private static Set<String> builtinImmutables = new HashSet<String>(Arrays.asList(
+    private static Set<String> builtinImmutables = new HashSet<>(Arrays.asList(
             "java.lang.Class",
             "java.lang.Boolean",
             "java.lang.Byte",
@@ -214,7 +214,7 @@ public class ImmutablePropertyUtils {
     public static List<String> getKnownImmutables(AbstractASTTransformation xform, ClassNode cNode) {
         List<AnnotationNode> annotations = cNode.getAnnotations(ImmutablePropertyUtils.IMMUTABLE_OPTIONS_TYPE);
         AnnotationNode anno = annotations.isEmpty() ? null : annotations.get(0);
-        final List<String> immutables = new ArrayList<String>();
+        final List<String> immutables = new ArrayList<>();
         if (anno == null) return immutables;
 
         final Expression expression = anno.getMember(MEMBER_KNOWN_IMMUTABLES);
@@ -239,7 +239,7 @@ public class ImmutablePropertyUtils {
     public static List<String> getKnownImmutableClasses(AbstractASTTransformation xform, ClassNode cNode) {
         List<AnnotationNode> annotations = cNode.getAnnotations(ImmutablePropertyUtils.IMMUTABLE_OPTIONS_TYPE);
         AnnotationNode anno = annotations.isEmpty() ? null : annotations.get(0);
-        final List<String> immutableClasses = new ArrayList<String>();
+        final List<String> immutableClasses = new ArrayList<>();
 
         if (anno == null) return immutableClasses;
         final Expression expression = anno.getMember(MEMBER_KNOWN_IMMUTABLE_CLASSES);