pinned: Fix some coercion cases

Change-Id: I98ed28d69b3d49d59e9e65737b7ccafd5d16fed6
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/test/pinned.cpp b/test/pinned.cpp
index a46d949..96700c9 100644
--- a/test/pinned.cpp
+++ b/test/pinned.cpp
@@ -78,6 +78,8 @@
     Pinned<std::string> pstr("hi");
     EXPECT_EQ("hi", PinnedRef<std::string>(pstr).get());
     EXPECT_EQ("hi", PinnedRef<const std::string>(pstr).get());
+    EXPECT_EQ("hi", PinnedRef(pstr).get());
+
     const Pinned<std::string> cpstr("hi");
     // EXPECT_EQ("hi", PinnedRef<std::string>(cpstr).get());
     EXPECT_EQ("hi", PinnedRef<const std::string>(cpstr).get());
@@ -86,14 +88,18 @@
 
 TEST(PinnedRef, Fundamental)
 {
-    auto uptr = std::make_unique<int>(4);
-    EXPECT_EQ(4, PinnedRef<int>(uptr));
     Pinned<int> pi = 4;
     EXPECT_EQ(4, PinnedRef<int>(pi));
     EXPECT_EQ(4, PinnedRef<const int>(pi));
+    EXPECT_EQ(4, PinnedRef(pi));
+
+    const Pinned<int> cpi = 4;
+    // EXPECT_EQ(4, PinnedRef<int>(cpi));
+    EXPECT_EQ(4, PinnedRef<const int>(cpi));
+    EXPECT_EQ(4, PinnedRef(cpi));
 }
 
-TEST(PinnedREf, NoMove)
+TEST(PinnedRef, NoMove)
 {
     // int i;
     // PinnedRef<int> ri(i);
@@ -101,9 +107,19 @@
     // PinnedRef<NoMove1> rnm1(nm1);
     // NoMove2 nm2;
     // PinnedRef<NoMove2> rnm2(nm2);
+
     NoMove3 nm3;
     PinnedRef<NoMove3> rnm3(nm3);
+    PinnedRef<const NoMove3> rnm3c(nm3);
+    PinnedRef<const NoMove3> rnm3cr(rnm3);
     PinnedRef rnm3i(nm3);
+    PinnedRef rnm3ir(rnm3);
+    PinnedRef rnm3ic(rnm3c);
+
+    const NoMove3 cnm3;
+    // PinnedRef<NoMove3> crnm3(cnm3);
+    PinnedRef<const NoMove3> crnm3c(cnm3);
+    PinnedRef crnm3i(cnm3);
 }
 
 } // namespace stdplus