Commit Graph

975 Commits

Author SHA1 Message Date
Chris Lattner
fe14b2a264 reinstate r19052 with a fix to ConstructorDecl::getDelegatingOrChainedInitKind to make
it work with not-fully-typechecked asts.  It is gross that a big chunk of Sema got 
thrown into an AST method. :(


Swift SVN r19085
2014-06-22 21:38:01 +00:00
Greg Parker
1e721ba4cb Revert r19052 because it breaks Interpreter/SDK/block_calls.swift.
Swift SVN r19062
2014-06-21 01:49:09 +00:00
Chris Lattner
7a15e4b479 Don't allow delegating initializers in value types to mutate let
properties either.  Thanks Joe.


Swift SVN r19052
2014-06-20 21:09:49 +00:00
Chris Lattner
11c1a87e3a fix <rdar://problem/17400366> let properties should not be mutable in convenience initializers
Swift SVN r19051
2014-06-20 20:56:32 +00:00
Chris Lattner
02bc843f79 fix <rdar://problem/17051675> Structure initializers in an extension cannot assign to constant properties
Swift SVN r19037
2014-06-20 05:45:20 +00:00
Chris Lattner
70076cf958 switch the testsuite to use the ..< operator instead of ..
Swift SVN r19003
2014-06-19 17:18:23 +00:00
Joe Groff
5c09ca5ee5 Sema: Don't allow protocols to be used as non-self-conforming existential types.
These types are often useless and confusing to users who expect to be able to use Sequence or Generator as types in their own right like in C# or Java. While we're here, relax the rules for self-conformance to admit methods returning 'Self'. Covariant return types should not actually prevent a protocol type from conforming to itself, and the stdlib makes particular use of protocols with 'init' requirements which implicitly return Self.

Swift SVN r18989
2014-06-18 23:01:55 +00:00
Chris Lattner
60fc0e6cd2 Implement <rdar://problem/16951729> nil should be a literal type
This is all goodness, and eliminates a major source of implicit conversions.
One thing this regresses on though, is that we now reject "x == nil" where
x is an option type and the element of the optional is not Equtatable.  If
this is important, there are ways to enable this, but directly testing it as
a logic value is more straight-forward.

This does not include support for pattern matching against nil, that will be
a follow on patch.



Swift SVN r18918
2014-06-15 22:59:03 +00:00
Doug Gregor
d360ecd4f7 Extend availability checking to other expressions that have declarations.
We weren't diagnosing initializer delegation/chaining, subscripts, or
(the one that got me concerned) members accessed through AnyObject.

Swift SVN r18271
2014-05-17 20:51:01 +00:00
Ted Kremenek
9eea282719 Switch range operators ".." and "...".
- 1..3 now means 1,2
- 1...3 now means 1,2,3

Implements <rdar://problem/16839891>

Swift SVN r18066
2014-05-14 07:36:00 +00:00
Ted Kremenek
fad874708e Adjust test cases.
Swift SVN r17964
2014-05-12 22:01:52 +00:00
Argyrios Kyrtzidis
dccd3e09be [test] Add a test for rdar://16272035
Swift SVN r16595
2014-04-20 19:19:23 +00:00
John McCall
59399ebfe4 Test case for r16284.
Swift SVN r16285
2014-04-13 21:05:00 +00:00
Ted Kremenek
2d4342b87a Give an error if “@obj” is used without importing ObjectiveC.
The standard library is exemptmpt (-parse-stdlib) from this checking.

Implements <rdar://problem/16559137>.

Swift SVN r16155
2014-04-10 09:08:09 +00:00
Ted Kremenek
b9ac56302c Wire up initial diagnostics for checking 'unavailable' declarations.
There's a lot of detail work to do here, and obviously more
test cases.

Swift SVN r15510
2014-03-26 15:05:13 +00:00
Jordan Rose
1aab6d4687 Derive protocol conformances for types declared in other files in the target.
Normally, protocol conformances are only checked for types and extensions
declared in the current file. However, for protocols that can derive their
conformances (like RawRepresentable), other files in the target might
expect to be able to use the protocol members (like toRaw), which aren't
written in the source. Force the derivation if this is the case.

Also, move the /other/ set of RawRepresentable tests from test/Parse to
test/Sema.

<rdar://problem/15936403>

Swift SVN r14162
2014-02-20 19:47:42 +00:00
Doug Gregor
a688bca7fb Infer @requires_stored_property_inits for CoreData's NSManagedObject.
Swift SVN r12317
2014-01-15 05:11:54 +00:00
Doug Gregor
2520848295 Move attributes tests into test/basic/attr.
Swift SVN r12315
2014-01-15 05:11:50 +00:00
Doug Gregor
a534f6978a Add a new class attribute requires_stored_property_inits.
This attribute states that all stored properties within the class must
provide initial values. This will allow us to move stored property
initialization into Objective-C's post-allocation initialization hook,
.cxx_construct.

Swift SVN r12228
2014-01-13 16:31:22 +00:00
Chris Lattner
b1a2059604 Implement the ability to create a Pattern as a set of 'let' decls instead of
var decls.  I was originally intending to use this for argument lists, but I
don't think that's a great direction to go anymore.

In any case, it seems uncontroversial to enforce immutability on foreach
enumation patterns, so I did that (see testcase)



Swift SVN r11124
2013-12-11 07:28:13 +00:00
Dmitri Hrybenko
c2c15e401b Disallow use of module values
rdar://15000289


Swift SVN r10546
2013-11-18 20:45:50 +00:00
Anna Zaks
c8ed1954f2 Issue a warning when returned expression is on the next line after the return keyword.
We still want to allow line wrapping, so only issue the warning when the indentation of the expression and the return keyword is the same.

radar://11945406

Swift SVN r9984
2013-11-06 02:00:13 +00:00
Dmitri Hrybenko
a68819e8cf @objc inference: structs and enums imported from Objective-C are obviously representable in Objective-C
Swift SVN r9980
2013-11-06 00:27:07 +00:00
Dmitri Hrybenko
61c067fe5f Implement a check in Sema to find self-assignment
rdar://14151649 suggests that it should be a warning, but I don’t see a reason
why it should not be an error.  We have no legacy code that relies on this.


Swift SVN r9976
2013-11-05 23:43:54 +00:00
Dmitri Hrybenko
3b4d03a444 Disallow @objc on generic classes and classes in generic contexts; disallow
@objc on constructors in generic contexts.

Also, add tests for @objc.


Swift SVN r9777
2013-10-30 01:14:23 +00:00