Merge pull request #11133 from practicalswift/swiftc-28826-type-haserror-should-not-be-assigning-a-type-involving-errortype

diff --git a/validation-test/compiler_crashers/28826-type-haserror-should-not-be-assigning-a-type-involving-errortype.swift b/validation-test/compiler_crashers/28826-type-haserror-should-not-be-assigning-a-type-involving-errortype.swift
new file mode 100644
index 0000000..83f9939
--- /dev/null
+++ b/validation-test/compiler_crashers/28826-type-haserror-should-not-be-assigning-a-type-involving-errortype.swift
@@ -0,0 +1,10 @@
+// This source file is part of the Swift.org open source project
+// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See https://swift.org/LICENSE.txt for license information
+// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+
+// REQUIRES: asserts
+// RUN: not --crash %target-swift-frontend %s -emit-ir
+protocol A{{}protocol a{extension{class a<a{let d=a(class a<P