Files
swift-mirror/validation-test/compiler_crashers_fixed/24245-swift-constraints-constraintsystem-solve.swift
Doug Gregor 423c1f09da [Type checker] Use call argument matching even with type variables on the left-hand side.
Rather than using a specialized matching rule in the type checker that
depends on having default arguments in types, use call argument
matching consistently.

Note #1: This (correctly) breaks some existing code that depends on
inferring a parameter type of () for a single-argument parameter from
a no-argument function type().

Note #2: This pessimizes a code completion test, where the code
completion engine seems to depend on some quirks of argument
matching. The "type relationship" matching needs non-trivial work.
2016-06-29 20:43:42 -07:00

21 lines
618 B
Swift

// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
// RUN: not %target-swift-frontend %s -parse
// REQUIRES: asserts
// Issue found by https://github.com/robrix (Rob Rix)
// http://www.openradar.me/19924870
func unit<T>(x: T) -> T? {
return x
}
func f() -> Int? {
return unit(1) ?? unit(2).map { 1 } ?? nil
}