Fix 'redundant specification of type arguments' warnings

Java 7 can infer type arguments. Using that when possible
instead of explicitly specifying the arguments usually makes
code easier to read and maintain.

Change-Id: I0c7f24d869b6dc2ffee464dda8df48bceb293bb1
diff --git a/src/compiler/Compiler.java b/src/compiler/Compiler.java
index cfc1a78..5aef4af 100644
--- a/src/compiler/Compiler.java
+++ b/src/compiler/Compiler.java
@@ -186,7 +186,7 @@
       String out = ".";
       String amdir = null;
       boolean stackTrace = false;
-      LinkedList<String> plsrc = new LinkedList<String>();
+      LinkedList<String> plsrc = new LinkedList<>();
       int argi = 0;
       for (; argi < argv.length; argi++) {
         String a = argv[argi];
diff --git a/src/lang/InternalDatabase.java b/src/lang/InternalDatabase.java
index cb55888..f4920d0 100644
--- a/src/lang/InternalDatabase.java
+++ b/src/lang/InternalDatabase.java
@@ -34,14 +34,14 @@
     public InternalDatabase(int n) {
 	maxContents = n;
 	buffer = new Term[Math.min(maxContents, DEFAULT_SIZE)];
-	reusableIndices = new LinkedList<Integer>();
+	reusableIndices = new LinkedList<>();
 	top = -1;
     }
 
     InternalDatabase(Prolog engine, InternalDatabase src, boolean deepCopy) {
       maxContents = src.maxContents;
       buffer = new Term[src.buffer.length];
-      reusableIndices = new LinkedList<Integer>(src.reusableIndices);
+      reusableIndices = new LinkedList<>(src.reusableIndices);
       top = src.top;
 
       if (deepCopy) {
diff --git a/src/lang/ListTerm.java b/src/lang/ListTerm.java
index f5ea8d1..c5be7a7 100644
--- a/src/lang/ListTerm.java
+++ b/src/lang/ListTerm.java
@@ -153,7 +153,7 @@
      */
     @Override
     public List toJava() { 
-	List<Object> vec = new ArrayList<Object>();
+	List<Object> vec = new ArrayList<>();
 	Term t = this;
 	while(t instanceof ListTerm) {
 	    vec.add(((ListTerm)t).car().dereference().toJava());
diff --git a/src/lang/Predicate.java b/src/lang/Predicate.java
index 3c11e85..0f36f0a 100644
--- a/src/lang/Predicate.java
+++ b/src/lang/Predicate.java
@@ -31,7 +31,7 @@
 
   @Override
   public String toString() {
-    LinkedList<Class> toScan = new LinkedList<Class>();
+    LinkedList<Class> toScan = new LinkedList<>();
     Class clazz = getClass();
     while (clazz != Predicate.class) {
       toScan.addFirst(clazz);
diff --git a/src/lang/Prolog.java b/src/lang/Prolog.java
index 20633f5..d94a8fc 100644
--- a/src/lang/Prolog.java
+++ b/src/lang/Prolog.java
@@ -88,7 +88,7 @@
       control = c;
       trail = new Trail();
       stack = new ChoicePointStack(trail);
-      copyHash = new IdentityHashMap<VariableTerm, VariableTerm>();
+      copyHash = new IdentityHashMap<>();
       hashManager = new HashtableOfTerm();
     }
 
@@ -96,7 +96,7 @@
       control = c;
       trail = new Trail();
       stack = new ChoicePointStack(trail);
-      copyHash = new IdentityHashMap<VariableTerm, VariableTerm>();
+      copyHash = new IdentityHashMap<>();
       pcl = pmc.pcl;
 
       // During restore there is no need to copy terms. clause/2 inside of
diff --git a/src/lang/PrologClassLoader.java b/src/lang/PrologClassLoader.java
index 367da97..04e40a5 100644
--- a/src/lang/PrologClassLoader.java
+++ b/src/lang/PrologClassLoader.java
@@ -16,7 +16,7 @@
  */
 public class PrologClassLoader extends ClassLoader {
   private final ConcurrentHashMap<Key, CacheEntry> predicateCache =
-      new ConcurrentHashMap<Key, CacheEntry>();
+      new ConcurrentHashMap<>();
 
   /** Initialize using the {@link ClassLoader#getSystemClassLoader()}. */
   public PrologClassLoader() {
diff --git a/src/lang/SymbolTerm.java b/src/lang/SymbolTerm.java
index 2dd8921..3dbdd83 100644
--- a/src/lang/SymbolTerm.java
+++ b/src/lang/SymbolTerm.java
@@ -21,9 +21,9 @@
 public abstract class SymbolTerm extends Term {
     /** Symbol table. */
     private static final ConcurrentHashMap<Key, InternRef> SYMBOL_TABLE =
-      new ConcurrentHashMap<Key, InternRef>();
+      new ConcurrentHashMap<>();
 
-    private static final ReferenceQueue<Interned> DEAD = new ReferenceQueue<Interned>();
+    private static final ReferenceQueue<Interned> DEAD = new ReferenceQueue<>();
 
     private static final class Key {
       final String name;