Commit Graph

11414 Commits

Author SHA1 Message Date
Greg Titus
de8deb0868 Merge pull request #1481 from gregomni/switch-cases
Improve var decl completion in switch cases
2016-03-02 14:03:26 -08:00
Adrian Prantl
464a30e3a6 Relax testcase. 2016-03-02 13:05:08 -08:00
Xi Ge
cf7d483304 ModulePrinting: Avoid hard-coding unsatisfiable type requirements, query constraint solver for answers.
Thank Doug and Joe P for suggesting this!
2016-03-02 12:28:02 -08:00
Xi Ge
8f1c239d01 [SourceKit] Cursor info: remove type interface since no clients are using it. rdar://24920331 2016-03-02 12:28:02 -08:00
Adrian Prantl
7d0b345772 Emit type metadata for values referenced by debug info eagerly at -Onone.
This is a hotfix for recent regressions in the LLDB testsuite caused
by lazy loading of metadata.

Long-term we will explore emitting DWARF expressions for accessing the
type metadata.

rdar://problem/24781494, SR-797
2016-03-02 12:03:10 -08:00
Dmitri Gribenko
cc2a2f8921 Revert "[Driver] Default SDKROOT to / on FreeBSD." 2016-03-02 09:26:06 -08:00
Xin Tong
6d006adbcc Revert "Debug Info: Don't emit shadow stack copies for local variables."
This reverts commit 1cb9c24b2f.

Broke OSX incremental build and others.
2016-03-02 07:55:33 -08:00
practicalswift
991b3fb2c4 [gardening] Fix recently introduced typo: "branchs" → "branches" 2016-03-02 09:39:15 +01:00
practicalswift
4fc77e48db [gardening] Fix recently introduced typo: "intialize" → "initialize" 2016-03-02 09:38:48 +01:00
practicalswift
00fc74f8d4 [gardening] Fix recently introduced typo: "multipe" → "multiple" 2016-03-02 09:38:17 +01:00
practicalswift
e28be296ab [gardening] Fix recently introduced typo: "releaese" → "release" 2016-03-02 09:37:16 +01:00
practicalswift
09744e8251 [gardening] Fix recently introduced typo: "pathes" → "paths" 2016-03-02 09:36:40 +01:00
gregomni
098f8e0ebf [SR-839][Sema] Better fixits for optional expressions
In member ref expressions, if the base is optional, and the expected
expression result is either optional or unknown, suggest a fixit that
makes it into an optional chain expr rather than force unwrapping.

Since in many cases the actual fixit is emitted during diagnosis, and
thus, while type checking sub exprs with no contextual type specified
(so nothing to check for preferring optionality), we also need an
additional flag to pass down from FailureDiagnosis for whether we
prefer to fix as force unwrapping or optional chaining.

I attempted to do this same job via providing a convert type but
setting the ConvertTypeIsOnlyAHint flag on the type checker, but
unfortunately there are a lot of other moving parts that look at that
type, even if it is only supposed to be a hint, so an additional flag
to the CS ended up being cleaner.
2016-03-01 22:57:24 -08:00
Kevin Ballard
0ae11d4216 Merge pull request #1280 from kballard/better_rethrows_analysis
[Sema] Allow catch blocks to rethrow errors when safe
2016-03-01 22:43:50 -08:00
Davide Italiano
d9bc8bf13f Merge pull request #1500 from dcci/sdkroot
[Driver] Default SDKROOT to / on FreeBSD.
2016-03-01 22:14:21 -08:00
Daniel Duan
0f53348304 Merge pull request #1501 from dduan/SE-0034-pr
[Parser][SE-0034] Replace line directive #line with #setline
2016-03-01 19:44:05 -08:00
Adrian Prantl
1cb9c24b2f Debug Info: Don't emit shadow stack copies for local variables.
The effect of this tiny change is that local variables will be described
by llvm.dbg.values, which will get lowered into an accurate location list
instead of a stack slot that is valid for the entire scope of the variable.
This means the debugger can now accurately track the liveness of variables
knowing exactly when they are initialized and when there values go away.
Function arguments are still kept in stack slots because (1) they are
already initialized at the function entry and (2) LLDB really needs self
to be available at all times for the expression evaluator.

This was made possible by recent advancements in LLVM such as the live
debug variables pass and various related bugfixes.

<rdar://problem/15746520>
2016-03-01 18:47:34 -08:00
Ben Langmuir
ba2710e493 [CodeCompletion] Fix the mysteriously missing operators
In the experimental operator completion, we were mysteriously missing
some operators like ||.  It turns out it was all operators
alphabetically after '.', because the filtering code was very broken.

rdar://problem/23539465
2016-03-01 18:23:00 -08:00
Xin Tong
6c0186b61c Reinstate "Improve funciton signature @owned return result to "not owned" conversion"
This enables function signature handles a case of self-recursion.

With this change we convert 11 @owned return value to "not owned", while
we convert 179 @owned parameter to @guanrateed.

rdar://24022375
2016-03-01 17:25:16 -08:00
Ben Langmuir
8955cdc644 [SourceKit] Add decl.var.type tags in property declarations
These Type::print can just reuse the printTypeLoc logic even if they
don't have a TypeRepr.

rdar://problem/24292226
2016-03-01 16:49:33 -08:00
Daniel Duan
fbac1335c0 [parser] update tests to use #setline 2016-03-01 16:33:23 -08:00
Daniel Duan
ba9809c390 [Parser][SE-0034] deprecate line directive in favor of #setline 2016-03-01 16:33:19 -08:00
swiftix
2573782c8b Merge pull request #1357 from swiftix/wip-runtime-calling-convention
Prepare the ground for using a new calling convention for functions from the runtime library
2016-03-01 16:22:37 -08:00
Xi Ge
906d6f1f8c [Test] Avoid running playground coloring test on Linux. 2016-03-01 16:18:11 -08:00
Roman Levenstein
4cedaa41fc Add an executable test for checking the correctness of let properties optimizations.
This is a follow-up commit for my previous bugfix in the let properties optimizations.
2016-03-01 16:14:50 -08:00
Xi Ge
9c2f28475e [SyntaxColoring] Highlight doc comment keywords in playground-specific doc comment format. rdar://24870642 2016-03-01 15:44:41 -08:00
Xi Ge
60be59953a ModulePrinting: Add the basic infrastructure to remove inapplicable synthesized extensions.
As the initial step, we remove any synthesized extensions requiring a tuple's conforming to nominals, which
never happens. This will remove multiple useless synthesized extensions for Dictionary.
2016-03-01 15:44:41 -08:00
Ben Langmuir
b4469d88dc [SourceKit] Replace decl.name with syntaxtype.keyword as appropriate
We aren't ready to start marking up all keywords yet, but start by
replacing the cases where we currently have decl.name.

rdar://problem/24292226
2016-03-01 15:35:26 -08:00
Doug Gregor
3ffbe020d7 [Clang importer] Handle name mapping for "getter:" and "setter:" in swift_name.
The swift_name string format now supports "getter:" and "setter:"
prefixes to indicate that a function is the getter or setter of a
Swift-synthesized property. Start parsing these DeclNames and make
sure they're reflected in the Swift name lookup tables.

[Clang update required]
2016-03-01 15:33:21 -08:00
Doug Gregor
7265328e07 [Clang importer] Generalize name lookup tables for globals-as-members.
A swift_name attribute on a global declaration can specify a dotted
name (e.g., SomeStruct.member) to map that global into a member of the
(Swift-)named type. Handle this mapping in DeclName parsing, plumb it
through importFullName, and cope with it in the Swift name lookup
tables (tested via the dump) and importing into a Swift DeclContext
(as-yet-untested). Part of SE-0033.
2016-03-01 15:33:20 -08:00
Ben Langmuir
10c8250352 [SourceKit] Rename local/external to name/argument_label in annotation
rdar://problem/24292226
2016-03-01 15:16:40 -08:00
Max Moiseev
859db53d87 Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines 2016-03-01 12:56:26 -08:00
Erik Eckstein
115c50a5c7 DeadObjectElimination: Fix a problem with dead array elimination.
With the new ValueLifetimeAnalysis DOE did not handle case where a dead array is not released on a path at all (because it leads to an unreachable).
2016-03-01 12:30:52 -08:00
Davide Italiano
c82588b01b [Driver] Default SDKROOT to / on FreeBSD.
This is needed for the testusuite to run correctly.
2016-03-01 20:15:24 +00:00
Joe Groff
e94fcace3f Sema: Infrastructure for DI-style initialization through behaviors.
Allow a behavior protocol to declare an `initStorage` implementation with a parameter. If we have an initializer expression, use `initStorage(initExpr)` to initialize the storage; otherwise, remember the storage declaration and its initializer. Definite
initialization will have to use these to insert the initialization operation for the behavior property at the right place.
2016-03-01 11:51:25 -08:00
Joe Groff
a4fa786a6f Handle a parameter to property behaviors.
For prototyping purposes, we only support a single trailing closure parameter to begin with.
2016-03-01 11:51:25 -08:00
Dmitri Gribenko
2da687b6e4 Merge pull request #1499 from dcci/xfaildriver
[FreeBSD] XFAIL some Driver tests as we do on Linux.
2016-03-01 11:42:18 -08:00
Davide Italiano
edfa8fe428 [FreeBSD] XFAIL some Driver tests as we do on Linux. 2016-03-01 19:37:59 +00:00
Xin Tong
d72ad28b08 Revert "Improve funciton signature @owned return result to "not owned" conversion"
This reverts commit c6de7c0123.

Broke OSS linux and OSX builds.
2016-03-01 11:17:06 -08:00
Xin Tong
c6de7c0123 Improve funciton signature @owned return result to "not owned" conversion
More specifically, this handles a case of self-recursion.

With this change we convert 11 @owned return value to "not owned", while
we convert 179 @owned parameter to @guanrateed.

rdar://24022375
2016-03-01 10:58:32 -08:00
Greg Titus
88c6cdbc2e Merge pull request #1494 from gregomni/sr-832
[SR-832][Sema] Fix for function type args passed to @autoclosure params
2016-03-01 05:33:07 -08:00
Kevin Ballard
736b618bb4 [Sema] Synthesize domain of @objc enums properly
The domain constant generated by PrintAsObjC always has the value
`"ModuleName.TypeName"`, but the actual value of the derived
`_NSErrorDomain` constant from the `_BridgedNSError` protocol was
implemented as `"\(self)"`. This meant that any time that the default
string representation of the enum type did not match the format
`"ModuleName.TypeName"`, the generated domain constant did not match the
actual error domain. This could happen when compiling programs at the
command-line that define the error (as the module name is typically
omitted there), or if the enum was nested inside another @objc
declaration (as the qualified type name there includes the parent type
declaration).

Fixes SR-700.
2016-03-01 00:10:15 -08:00
gregomni
545a3f913d [SR-832][Sema] Fix for function type args passed to @autoclosure params
Passing a function type to an @autoclosure param would always fail to
type check because of the attempt to decompose the parallel structure
of the two (both being functions). In this case, though, we don’t want
to do any such thing, we want to allow the ExprRewriter to explicitly
insert an AutoClosureExpr in coerceToType, as it would do with any
other non-function arg type.
2016-02-29 23:43:37 -08:00
Emanuel Zephir
a4e8ee04e0 [StdLib] Refactor DictionaryKeyValueTypes test input data
Split the input file into a pure Swift and Objective-C interop files in
anticipation of refactoring tests to remove XFAILs on Linux.
2016-02-29 22:49:35 -08:00
AnnaZaks
767d9ca914 Merge pull request #1434 from apple/asan
[asan] Add basic support for Address Sanitizer function instrumentation
2016-02-29 18:58:40 -08:00
Chris Lattner
f06cedc117 Merge pull request #1490 from kballard/defer-function-name
[SILGen] Handle #function in defer blocks correctly
2016-02-29 18:00:16 -08:00
Xin Tong
c9d496b3d7 Disable a test case to unbreak the bots, rdar://24894993 2016-02-29 15:12:23 -08:00
Kevin Ballard
c08440394a [SILGen] Handle #function in defer blocks correctly
Using `#function` in a `defer` block should return the enclosing
function name rather than the string `$defer()`.

Fixes SR-819.
2016-02-29 15:06:11 -08:00
Doug Gregor
87f1d577a3 [Omit needless words] Retain "with" after splitting more regularly.
The verb-based heuristic was unpredictable and not clearly
better. Back off to something more obvious.
2016-02-29 13:14:24 -08:00
Doug Gregor
b890e4c29f [Omit needless words] Use the property lists to restrict BaseNameSelf pruning.
This eliminates some apparent inconsistencies in the translation,
fixing rdar://problem/24860176.
2016-02-29 13:14:23 -08:00