Files
swift-mirror/validation-test/compiler_crashers_fixed/26813-generic-enum-tuple-optional-payload.swift
Slava Pestov 4ebac86895 AST: Type::subst(): try harder to preserve sugar
If a sugared type desugars to a substitutable type, we would
return the replacement type without the sugar. I think in
practice this meant that ParenType would be lost sometimes.

Preserving this correctly is required for an upcoming CSDiag
change.

Note that there's a minor source-breaking change with enum
case constructors here. I've filed <rdar://problem/27261929>
to track sorting it out in Swift 3 mode.

Also an upcoming patch fixes another related issue and adds more
tests for case constructors.
2016-11-29 03:05:28 -07:00

23 lines
767 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 https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
// RUN: %target-swift-frontend %s -typecheck -verify
// Issue found by https://github.com/austinzheng (Austin Zheng)
enum A<T> {
case Just(T)
case Error
}
func foo() -> A<(String, String?)> {
_ = A<(String, String?)>.Just("abc", "def") // expected-error{{extra argument in call}}
_ = A.Just("abc", "def") // no error?
return A.Just("abc", "def") // expected-error{{extra argument in call}}
}