Ge Sen
7dd61bdfa9
[gardening] Put white spaces in between if/while clauses and braces where it is missing.
...
For instance:
'if (foo){' => 'if (foo) {'
2016-04-02 08:22:23 +08:00
Xi Ge
37f5a0390a
[SourceKit] DocInfo: Add a new entry to indicate the default implementation of a protocol member in its extensions. rdar://25032869
2016-03-30 14:26:17 -07:00
Xi Ge
b313668ca2
IDETypeChecking: Add a function to collect protocol members who have default implementations in protocol extensions. Need for rdar://25032869
2016-03-29 18:01:53 -07:00
Alex Hoppen
b8f5c8a1a4
[Sema] Fixed SR-1062: Coercion in single expression closure with invalid signature caused segmentation fault
2016-03-28 10:50:04 +02:00
Xi Ge
92d520c885
ModulePrinting: Using constraint solver to decide the right overload to print in synthesized extensions.
2016-03-24 12:16:51 -07:00
gregomni
2c51abfe15
[SR-995] Handle name changes to ArrayLiteralConvertible associated type
...
This is just being more general and defensive to handle name changes in
the stdlib.
2016-03-23 19:32:54 -07:00
Xi Ge
b4d0cb4ffe
ModulePrinting: Avoid printing duplicated members in synthesized extensions.
2016-03-23 15:19:16 -07:00
Max Moiseev
02006f20bc
Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines
2016-03-09 16:05:03 -08:00
Ben Langmuir
95fed2af61
Make canSatisfy static
2016-03-08 20:49:23 -08:00
Max Moiseev
1fae0d1325
Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines
2016-03-08 12:48:48 -08:00
Xi Ge
fb00e16a22
IDETypeChecking: Never replace archetypes with type variables when checking if two types eqaul.
2016-03-07 13:27:54 -08:00
Max Moiseev
7fe6916bf6
Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines
2016-03-07 12:10:47 -08:00
Xi Ge
326514e397
ModulePrinting: when printing synthesized extensions, avoid printing requirements that are known to be true.
2016-03-03 17:42:35 -08:00
Max Moiseev
cf4bafe9e3
Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines
2016-03-03 13:22:03 -08:00
Xi Ge
2f41702dd9
IDETypeChecking: Add two utilities canPossiblyConvertTo() and canPossiblyEqual().
2016-03-02 12:28:02 -08:00
Xi Ge
4e8c8ffe07
IDETypeChecking: Add two utilities to IDETypeChecking.h which are isEqual() and LookUpTypeInContext(). NFC
2016-03-01 15:44:41 -08:00
Max Moiseev
a49dab6bf8
Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines
2016-02-29 12:08:52 -08:00
Andrew Trick
445cdff829
Merge pull request #1468 from atrick/attr-kind
...
Move enums into AttrKind.h.
2016-02-27 21:20:11 -08:00
Dmitri Gribenko
a9f8d97d3e
Replace 'unsigned int' with 'unsigned'
...
'unsigned' is more idiomatic in LLVM style.
2016-02-27 16:20:27 -08:00
Andrew Trick
ff02652108
Move enums into AttrKind.h.
...
This reorganization allows adding attributes that refer to types.
I need this for a @_specialize attribute with a type list.
PrintOptions.h and other headers depend on these enums. But Attr.h
defines a lot of classes that almost never need to be included.
2016-02-26 21:10:22 -08:00
Joe Pamer
927d7f254d
When analyzing an expression for linked sub-expressions, consider each component of an IfExpr separately.
...
This fixes rdar://problem/24707022
2016-02-25 17:18:07 -08:00
Max Moiseev
488b464f10
Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines
2016-02-25 12:21:56 -08:00
Han Sangjin
7f4f3d2c70
Changed uint to unsigned int
...
The uint is not a standard C/C++ type. Some compiler environment may fail with it.
2016-02-25 14:09:03 +09:00
Max Moiseev
3a3984877a
Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines
2016-02-15 15:43:34 -08:00
Ben Langmuir
3fbaa1af6d
[CodeCompletion] Disallow type variables in result of typeCheckUnresolvedExpr
...
Fixes a use-after-free when doing code-completion where the expected
type is an array of generic type (or any bound generic type).
takeArray<T>(x: [T]) {}
takeArray(foo.<here>)
rdar://problem/24521470
2016-02-09 11:10:10 -08:00
Max Moiseev
61c837209b
Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines
2016-02-04 16:13:39 -08:00
Chris Lattner
8dedfb31e3
Add support for #file/#line, etc according to SE-0028. __FILE__ and friends
...
are still accepted without deprecation warning as of this patch.
2016-02-04 14:22:22 -08:00
Xi Ge
77b7180f1a
Rename CodeCompletionTypeChecking.h to IDETypeChecking.h since it's used by more clients now. NFC
2016-02-04 11:09:21 -08:00
Xi Ge
ae60159816
[ModulePrint] Add the initial implementation for printing synthesized extensions.
...
For a concrete type, members from its conforming protocols' extensions can be hard
to manually surface. In this commit, when printing Swift modules, we start to replicate these
extensions and synthesize them as if they are the concrete type's native extensions.
Credit to Doug for suggesting this practice.
2016-02-02 14:53:21 -08:00
Chris Lattner
a63be90828
fix compiler_crashers/28219-swift-lvaluetype-get.swift
...
Not all types are l-valuable, notably InoutType's. This seems like a
weird restriction to put in the type checker, but it is the cleanest
solution to this. The better solution would be to change how
inoutexpr/inouttype are represented completely... maybe someday.
2016-01-29 23:18:33 -08:00
Joe Pamer
ca89d20fde
Revert "Add '&' and '|' to the list of potentially symmetric operators."
...
This reverts commit b1a7ceaf4b .
Accounting for these operators can add complexity in some cases, so I'm
backing out this change pending a more holistic approach.
2016-01-28 13:26:51 -08:00
Doug Gregor
9a0241bb3b
SE-0022: Address Jordan's review comments about #selector.
2016-01-28 12:09:57 -08:00
Joe Pamer
b1a7ceaf4b
Add '&' and '|' to the list of potentially symmetric operators.
2016-01-28 11:02:26 -08:00
Doug Gregor
dccf3155f1
SE-0022: Implement parsing, AST, and semantic analysis for #selector.
2016-01-26 21:12:04 -08:00
Doug Gregor
8336419844
Include completion source location information compound DeclNames.
...
When one spells a compound declaration name in the source (e.g.,
insertSubview(_:aboveSubview:), keep track of the locations of the
base name, parentheses, and argument labels.
2016-01-25 14:13:13 -08:00
practicalswift
45049f2763
[gardening] Fix recently introduced typos
2016-01-22 22:37:54 +01:00
Joe Pamer
a59e78749d
- When simplifying constraint systems generated for deeply nested binary expressions with homogeneous argument types, directly bind the parameter type variable to the argument type. This generally improves type check performance of such expressions.
...
- Fix the test invocation of a fixed compiler crasher - it now compiles and runs cleanly.
2016-01-22 12:34:34 -08:00
Joe Pamer
de3d8a5823
More effectively simplify constraint graphs for nested binary expressions with homogeneous argument types. For example, this allows us to typecheck expressions of the form "a + b + c + d", where each variable is of an array type, without getting a "too complex" error.
...
Note that the typecheck perf for these kinds of expressions still isn't fantastic, but at least they're now computationally feasible. I have further improvements planned for this area which should bring performance in line with expectations.
2016-01-22 12:34:34 -08:00
Joe Pamer
995913e1a5
Begin favoring the expected types of closures with single-expression bodies.
2016-01-22 12:34:34 -08:00
Joe Pamer
5f9d3f83c7
When deciding whether to favor an overload binding constraint for a binary operator, only propagate favored types downward if there's a good chance that the operator has symmetric operands (as for certain arithmetic operators, for example).
2016-01-22 12:34:33 -08:00
Joe Pamer
3aeed2736b
Introduce more refinements to how certain linked expr kinds are analyzed before performing edge contraction.
2016-01-22 12:34:33 -08:00
Joe Pamer
e3752c0720
In the LinkedExprAnalyzer, merge equivalence classes directly, rather
...
than create redundant constraints that will later be removed.
2016-01-22 12:34:33 -08:00
Joe Pamer
0e149db993
Being updating LinkedExprAnalyzer to work with the edge contractor.
2016-01-22 12:34:33 -08:00
Chris Lattner
6723acccf9
Use TypeExpr::getInstanceType to simplify some code, NFC.
2016-01-22 12:05:59 -08:00
Doug Gregor
fd3f03f3be
Remove UnresolvedConstructorExpr.
...
UnresolvedConstructorExpr is not providing any value here; it's
essentially just UnresolvedDotExpr where the name refers to an
initializer, so use that instead. NFC
2016-01-20 17:09:02 -08:00
Doug Gregor
c9c1d1390c
[SE-0021] Allow naming of specific initializers via "self.init(foo:bar:)".
2016-01-20 17:09:02 -08:00
Doug Gregor
5f07f6b12f
Remove all vestiges of UnresolvedSelectorExpr. NFC
2016-01-20 17:09:01 -08:00
Doug Gregor
7d70b704e4
Merge commit '5e11e3f7287427d386636a169c4065c0373931a8' into swift-3-api-guidelines
2016-01-19 23:18:20 -08:00
Max Moiseev
08e1e4a043
Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines
2016-01-11 16:51:11 -08:00
John McCall
1f3b3142b4
Distinguish conformance and superclass generic requirements.
...
As part of this, use a different enum for parsed generic requirements.
NFC except that I noticed that ASTWalker wasn't visiting the second
type in a conformance constraint; fixing this seems to have no effect
beyond producing better IDE annotations.
2016-01-11 16:07:37 -08:00