langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
changeset 2219 03b1b17c4b2e
parent 1874 891c2d6823bb
child 2223 95e3c21b2919
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Thu Mar 05 17:24:08 2009 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Thu Mar 05 17:24:40 2009 +0000
@@ -1545,10 +1545,10 @@
 
 
     void checkNonCyclic(DiagnosticPosition pos, TypeVar t) {
-        checkNonCyclic1(pos, t, new HashSet<TypeVar>());
+        checkNonCyclic1(pos, t, List.<TypeVar>nil());
     }
 
-    private void checkNonCyclic1(DiagnosticPosition pos, Type t, Set<TypeVar> seen) {
+    private void checkNonCyclic1(DiagnosticPosition pos, Type t, List<TypeVar> seen) {
         final TypeVar tv;
         if  (t.tag == TYPEVAR && (t.tsym.flags() & UNATTRIBUTED) != 0)
             return;
@@ -1558,7 +1558,7 @@
             log.error(pos, "cyclic.inheritance", t);
         } else if (t.tag == TYPEVAR) {
             tv = (TypeVar)t;
-            seen.add(tv);
+            seen = seen.prepend(tv);
             for (Type b : types.getBounds(tv))
                 checkNonCyclic1(pos, b, seen);
         }