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:56 UTC

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

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);