langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
changeset 2223 95e3c21b2919
parent 2212 1d3dc0e0ba0c
parent 2219 03b1b17c4b2e
child 2509 c8a1744c87fd
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Mon Mar 09 13:34:19 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Mon Mar 09 23:53:41 2009 -0700
@@ -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);
         }