Fix missing return in non-void TransformArrayRef::end

TransformArrayRef::end() is not void but it does not return any value.

This CL fixes this.

Test: transform_array_ref_test
Test: run-gtests.sh
Change-Id: I0bed31cae9fc3eb83f9a254393f6700471793d2a
diff --git a/libartbase/base/transform_array_ref.h b/libartbase/base/transform_array_ref.h
index ef29573..2f56e9b 100644
--- a/libartbase/base/transform_array_ref.h
+++ b/libartbase/base/transform_array_ref.h
@@ -93,7 +93,7 @@
   const_iterator begin() const { return MakeIterator(base().cbegin()); }
   const_iterator cbegin() const { return MakeIterator(base().cbegin()); }
   iterator end() { return MakeIterator(base().end()); }
-  const_iterator end() const { MakeIterator(base().cend()); }
+  const_iterator end() const { return MakeIterator(base().cend()); }
   const_iterator cend() const { return MakeIterator(base().cend()); }
   reverse_iterator rbegin() { return reverse_iterator(end()); }
   const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
diff --git a/libartbase/base/transform_array_ref_test.cc b/libartbase/base/transform_array_ref_test.cc
index fc73d56..896209b 100644
--- a/libartbase/base/transform_array_ref_test.cc
+++ b/libartbase/base/transform_array_ref_test.cc
@@ -174,18 +174,34 @@
   ASSERT_EQ(std::vector<int>({ 1, 0, 1, 0, 3, 1 }), output);
   output.clear();
 
+  std::copy(std::begin(ctaref), std::end(ctaref), std::back_inserter(output));
+  ASSERT_EQ(std::vector<int>({ 1, 0, 1, 0, 3, 1 }), output);
+  output.clear();
+
   std::copy(ctaref.cbegin(), ctaref.cend(), std::back_inserter(output));
   ASSERT_EQ(std::vector<int>({ 1, 0, 1, 0, 3, 1 }), output);
   output.clear();
 
+  std::copy(std::cbegin(ctaref), std::cend(ctaref), std::back_inserter(output));
+  ASSERT_EQ(std::vector<int>({ 1, 0, 1, 0, 3, 1 }), output);
+  output.clear();
+
   std::copy(ctaref.rbegin(), ctaref.rend(), std::back_inserter(output));
   ASSERT_EQ(std::vector<int>({ 1, 3, 0, 1, 0, 1 }), output);
   output.clear();
 
+  std::copy(std::rbegin(ctaref), std::rend(ctaref), std::back_inserter(output));
+  ASSERT_EQ(std::vector<int>({ 1, 3, 0, 1, 0, 1 }), output);
+  output.clear();
+
   std::copy(ctaref.crbegin(), ctaref.crend(), std::back_inserter(output));
   ASSERT_EQ(std::vector<int>({ 1, 3, 0, 1, 0, 1 }), output);
   output.clear();
 
+  std::copy(std::crbegin(ctaref), std::crend(ctaref), std::back_inserter(output));
+  ASSERT_EQ(std::vector<int>({ 1, 3, 0, 1, 0, 1 }), output);
+  output.clear();
+
   ASSERT_EQ(cinput.size(), ctaref.size());
   ASSERT_EQ(cinput.empty(), ctaref.empty());
   ASSERT_EQ(cinput.front().value, ctaref.front());