Remove deprecated code on obsolete method.

Class initialization doesn't happen during class redefinition:
https://android-review.googlesource.com/c/platform/art/+/1124318

So the comment is outdated and we can remove the obsolete check.

Test: test.py
Change-Id: Ia71c154577eb188cc417042621afd31be9f1bf09
diff --git a/runtime/art_field-inl.h b/runtime/art_field-inl.h
index 80af230..d57110f 100644
--- a/runtime/art_field-inl.h
+++ b/runtime/art_field-inl.h
@@ -40,15 +40,11 @@
   return GetDeclaringClass<kWithoutReadBarrier>()->IsProxyClass<kVerifyNone>();
 }
 
-// We are only ever allowed to set our own final fields. We do need to be careful since if a
-// structural redefinition occurs during <clinit> we can end up trying to set the non-obsolete
-// class's fields from the obsolete class. This is something we want to allow. This is tested by
-// run-test 2002-virtual-structural-initializing.
+// We are only ever allowed to set our own final fields
 inline bool ArtField::CanBeChangedBy(ArtMethod* method) {
   ObjPtr<mirror::Class> declaring_class(GetDeclaringClass());
   ObjPtr<mirror::Class> referring_class(method->GetDeclaringClass());
-  return !IsFinal() || (declaring_class == referring_class) ||
-         UNLIKELY(referring_class->IsObsoleteVersionOf(declaring_class));
+  return !IsFinal() || (declaring_class == referring_class);
 }
 
 template<ReadBarrierOption kReadBarrierOption>
diff --git a/runtime/interpreter/mterp/nterp.cc b/runtime/interpreter/mterp/nterp.cc
index 40df422..e58d77d 100644
--- a/runtime/interpreter/mterp/nterp.cc
+++ b/runtime/interpreter/mterp/nterp.cc
@@ -417,7 +417,7 @@
                                                           field_index))) {
     return nullptr;
   }
-  if (UNLIKELY(is_put && resolved_field->IsFinal() && (fields_class != referring_class))) {
+  if (UNLIKELY(is_put && !resolved_field->CanBeChangedBy(caller))) {
     ThrowIllegalAccessErrorFinalField(caller, resolved_field);
     return nullptr;
   }