Jax PRNGKeyArray.shape is a method, not a property
Was this an intended change? 

```python
>>> import jax
>>> jax.config.update('jax_enable_custom_prng', True)
>>> k=jax.random.PRNGKey(0)
>>> k.shape
<bound method PRNGKeyArray.shape of PRNGKeyArray:
  shape = ()
  impl = PRNGImpl:
           key_shape = (2,)
           seed = <function threefry_seed at 0x12e6f00d0>
           split = <function threefry_split at 0x10cc2aaf0>
           random_bits = <CompiledFunction object at 0x12e6c8880>
           fold_in = <function threefry_fold_in at 0x10cc2a790>>
>>> k.shape()
()
```
diff --git a/jax/_src/prng.py b/jax/_src/prng.py
index bfe498dd3..cde45b2b2 100644
--- a/jax/_src/prng.py
+++ b/jax/_src/prng.py
@@ -125,6 +125,7 @@ class PRNGKeyArray:
           'deprecated `dtype` attribute of PRNG key arrays', FutureWarning)
       return np.uint32
 
+  @property
   def shape(self):
     # TODO(frostig): simplify once we always enable_custom_prng
     if config.jax_enable_custom_prng:
diff --git a/tests/random_test.py b/tests/random_test.py
index 3c0bf858e..7cc59d498 100644
--- a/tests/random_test.py
+++ b/tests/random_test.py
@@ -1095,6 +1095,22 @@ class LaxRandomWithCustomPRNGTest(LaxRandomTest):
   def seed_prng(self, seed):
     return prng.seed_with_impl(double_threefry_prng_impl, seed)
 
+  def test_split_shape(self):
+    key = self.seed_prng(73)
+    keys = random.split(key, 10)
+    self.assertEqual(keys.shape, (10,))
+
+  def test_vmap_fold_in_shape(self):
+    key = self.seed_prng(73)
+    keys = vmap(lambda i: random.fold_in(key, i))(jnp.arange(3))
+    self.assertEqual(keys.shape, (3,))
+
+  def test_cannot_add(self):
+    key = self.seed_prng(73)
+    self.assertRaisesRegex(
+        TypeError, r'unsupported operand type\\(s\\) for \\+*',
+        lambda: key + 47)
+
 def _sampler_unimplemented_with_custom_prng(*args, **kwargs):
   raise SkipTest('sampler only implemented for default RNG')
 
['jax/_src/prng.py', 'tests/random_test.py']