blob: cca1c6686eba34a693a737244746953f54e0e995 [file] [log] [blame]
// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -emit-module -o %t/rdar47334176_types.swiftmodule %S/Inputs/rdar47334176_types.swift
// RUN: %target-swift-frontend -I %t -typecheck %s
import rdar47334176_types
// To test all possibilities let's declare one of the types
// in the same module as function declaration which uses it.
struct S<V> : R {}
func foo<T : P, U>(_: T?, _: (T.V.V) -> Void) where T.V == E<U> {} // Ok
func bar<T : P, U>(_: T?, _: (T.V.V) -> Void) where T.V == S<U> {} // Ok
func baz<T : P, U>(_: T?, _: (T.V.V) -> Void) where T.V == C<U> {} // Ok