mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
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.
21 lines
618 B
Swift
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
|
|
}
|