   /// Should never be called, since this collection is always empty.
   public subscript(position: Index) -> Element {
     // TODO: swift-3-indexing-model: tests for traps.
-    _preconditionFailure("Index out of range")
+    get {
+      _preconditionFailure("Index out of range")
+    }
+    set {
+      _preconditionFailure("Index out of range")
+    }
+  }
+
+  public subscript(bounds: Range<Index>) -> EmptyCollection<Element> {
+    get {
+      _preconditionFailure("Index out of range")
+    }
+    set {
+      _preconditionFailure("Index out of range")
+    }
   }
 
   /// The number of elements (always zero).


/// A collection whose element type is `Element` but that is always empty.
public struct EmptyCollection<Element> :
  RandomAccessCollection
  // FIXME: swift-3-indexing-model - conform to MutableCollection as well
{
  /// A type that represents a valid position in the collection.
  ///

  /// "past the end" position that's not valid for use as a subscript.
  public typealias Index = Int
  public typealias IndexDistance = Int
  public typealias SubSequence = EmptyCollection<Element>

  /// Construct an instance.
  public init() {}
