Fix infinite loop in ClassName.fromClass()
diff --git a/src/main/java/com/squareup/javawriter/ClassName.java b/src/main/java/com/squareup/javawriter/ClassName.java
index a0770fa..7fbb09a 100644
--- a/src/main/java/com/squareup/javawriter/ClassName.java
+++ b/src/main/java/com/squareup/javawriter/ClassName.java
@@ -163,7 +163,7 @@
     Class<?> current = clazz.getEnclosingClass();
     while (current != null) {
       enclosingNames.add(current.getSimpleName());
-      current = clazz.getEnclosingClass();
+      current = current.getEnclosingClass();
     }
     Collections.reverse(enclosingNames);
     return create(clazz.getPackage().getName(), enclosingNames, clazz.getSimpleName());
diff --git a/src/test/java/com/squareup/javawriter/ClassNameTest.java b/src/test/java/com/squareup/javawriter/ClassNameTest.java
index b9c7825..304ec46 100644
--- a/src/test/java/com/squareup/javawriter/ClassNameTest.java
+++ b/src/test/java/com/squareup/javawriter/ClassNameTest.java
@@ -81,6 +81,13 @@
     assert_().that(ClassName.fromTypeElement(element).canonicalName())
         .isEqualTo("java.lang.Object");
   }
+  
+  @Test public void classNameFromClass() {
+    assert_().that(ClassName.fromClass(Object.class).canonicalName())
+        .isEqualTo("java.lang.Object");
+    assert_().that(ClassName.fromClass(OuterClass.InnerClass.class).canonicalName())
+        .isEqualTo("com.squareup.javawriter.ClassNameTest.OuterClass.InnerClass");
+  }
 
   @Test public void peerNamed_topLevelClass() {
     Elements elements = compilationRule.getElements();