Refactor java.lang.reflect implementation

Cherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1.

Move to ArtMethod/Field instead of AbstractMethod/Field and have
java.lang.reflect APIs delegate to ArtMethod/ArtField.

Bug: 10014286.

Change-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7
diff --git a/runtime/throw_location.h b/runtime/throw_location.h
index b2cd4d5..5da446e 100644
--- a/runtime/throw_location.h
+++ b/runtime/throw_location.h
@@ -26,7 +26,7 @@
 namespace art {
 
 namespace mirror {
-class AbstractMethod;
+class ArtMethod;
 class Object;
 }  // mirror
 
@@ -36,7 +36,7 @@
     Clear();
   }
 
-  ThrowLocation(mirror::Object* throw_this_object, mirror::AbstractMethod* throw_method,
+  ThrowLocation(mirror::Object* throw_this_object, mirror::ArtMethod* throw_method,
                 uint32_t throw_dex_pc) :
       this_object_(throw_this_object),
       method_(throw_method),
@@ -46,7 +46,7 @@
     return this_object_;
   }
 
-  mirror::AbstractMethod* GetMethod() const {
+  mirror::ArtMethod* GetMethod() const {
     return method_;
   }
 
@@ -68,7 +68,7 @@
   // The 'this' reference of the throwing method.
   mirror::Object* this_object_;
   // The throwing method.
-  mirror::AbstractMethod* method_;
+  mirror::ArtMethod* method_;
   // The instruction within the throwing method.
   uint32_t dex_pc_;
 };