part of issue 526 -- move MoreTypes.memberKey into LineNumbers.  LineNumbers was its only use, and the way LineNumbers used it, it was heavily dependent on the implementation staying the same (one area constructed its own key to insert into a hash map, and another area used the method to reconstruct & retrieve from the map).

git-svn-id: https://google-guice.googlecode.com/svn/trunk@1198 d779f126-a31b-0410-b53b-1d3aecad763e
diff --git a/src/com/google/inject/internal/MoreTypes.java b/src/com/google/inject/internal/MoreTypes.java
index bb3a2eb..d2cceaa 100644
--- a/src/com/google/inject/internal/MoreTypes.java
+++ b/src/com/google/inject/internal/MoreTypes.java
@@ -286,33 +286,6 @@
     }
   }
 
-  public static String memberKey(Member member) {
-    checkNotNull(member, "member");
-
-    /*if[AOP]*/
-    if (member instanceof Field) {
-      return member.getName();
-
-    } else if (member instanceof Method) {
-      return member.getName() + org.objectweb.asm.Type.getMethodDescriptor((Method) member);
-
-    } else if (member instanceof Constructor) {
-      StringBuilder sb = new StringBuilder().append("<init>(");
-      for (Class param : ((Constructor) member).getParameterTypes()) {
-          sb.append(org.objectweb.asm.Type.getDescriptor(param));
-      }
-      return sb.append(")V").toString();
-
-    } else {
-      throw new IllegalArgumentException(
-          "Unsupported implementation class for Member, " + member.getClass());
-    }
-    /*end[AOP]*/
-    /*if[NO_AOP]
-    return "<NO_MEMBER_KEY>";
-    end[NO_AOP]*/
-  }
-
   /**
    * Returns the generic supertype for {@code supertype}. For example, given a class {@code
    * IntegerSet}, the result for when supertype is {@code Set.class} is {@code Set<Integer>} and the
diff --git a/src/com/google/inject/internal/util/LineNumbers.java b/src/com/google/inject/internal/util/LineNumbers.java
index 992281e..ad5dbad 100644
--- a/src/com/google/inject/internal/util/LineNumbers.java
+++ b/src/com/google/inject/internal/util/LineNumbers.java
@@ -16,10 +16,14 @@
 
 package com.google.inject.internal.util;
 
-import com.google.inject.internal.MoreTypes;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
+
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
 import java.lang.reflect.Member;
+import java.lang.reflect.Method;
 import java.util.Map;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.Attribute;
@@ -79,7 +83,7 @@
   public Integer getLineNumber(Member member) {
     Preconditions.checkArgument(type == member.getDeclaringClass(),
         "Member %s belongs to %s, not %s", member, member.getDeclaringClass(), type);
-    return lines.get(MoreTypes.memberKey(member));
+    return lines.get(memberKey(member));
   }
 
   /** Gets the first line number. */
@@ -87,6 +91,33 @@
     return firstLine == Integer.MAX_VALUE ? 1 : firstLine;
   }
 
+  private String memberKey(Member member) {
+    checkNotNull(member, "member");
+
+    /*if[AOP]*/
+    if (member instanceof Field) {
+      return member.getName();
+
+    } else if (member instanceof Method) {
+      return member.getName() + org.objectweb.asm.Type.getMethodDescriptor((Method) member);
+
+    } else if (member instanceof Constructor) {
+      StringBuilder sb = new StringBuilder().append("<init>(");
+      for (Class param : ((Constructor) member).getParameterTypes()) {
+          sb.append(org.objectweb.asm.Type.getDescriptor(param));
+      }
+      return sb.append(")V").toString();
+
+    } else {
+      throw new IllegalArgumentException(
+          "Unsupported implementation class for Member, " + member.getClass());
+    }
+    /*end[AOP]*/
+    /*if[NO_AOP]
+    return "<NO_MEMBER_KEY>";
+    end[NO_AOP]*/
+  }  
+
   private class LineNumberReader implements ClassVisitor, MethodVisitor, AnnotationVisitor {
 
     private int line = -1;