Commit Graph

1230 Commits

Author SHA1 Message Date
Robert Widmann
e3118f1e2a Miscellaneous test migrations 2018-06-27 13:31:22 -07:00
swift-ci
f636e469b1 Merge remote-tracking branch 'origin/master' into master-next 2018-06-20 17:08:52 -07:00
Stephen Canon
ff89fce7df Make FloatingPoint require that Self.Magnitude == Self (#17323)
* Make FloatingPoint require that Self.Magnitude == Self

We didn't have the where clause to express this constraint at the time that the FloatingPoint protocol was implemented, but we do now. This is not a semantic change to FloatingPoint, which has always bound IEEE-754 arithmetic types, for which this constraint would necessarily hold, but it does effect the type system.

For example, currently the following function does not type check:
~~~~
func foo<T>(x: T) -> T where T: FloatingPoint {
  var r = x.remainder(dividingBy: 1)
  return r.magnitude
}
~~~~
with this change, it compiles correctly.

Having done this, we no longer need to have a separate `abs` defined on FloatingPoint; we can use the existing function defined on `SignedNumeric` instead. Additionally mark the global `fabs` defined in the platform C module deprecated in favor of the Swift `abs`; we don't need to carry two names for this function going forward.
2018-06-20 19:56:22 -04:00
swift-ci
f7e70911de Merge remote-tracking branch 'origin/master' into master-next 2018-06-20 06:30:02 -07:00
Doug Gregor
a66df57aaf [Mangling] Update SILGen and IRGen tests for mangling change. 2018-06-19 23:24:38 -07:00
swift-ci
4538ce9818 Merge remote-tracking branch 'origin/master' into master-next 2018-06-17 15:38:24 -07:00
John McCall
69f4dd1ec9 Generalize accessor storage to preserve the original accessor list.
Only not NFC because it's detectable by source tools.
2018-06-16 18:16:31 -04:00
swift-ci
1bb550e4ea Merge remote-tracking branch 'origin/master' into master-next 2018-06-11 16:49:21 -07:00
Bob Wilson
3ff7bff8b7 Merge remote-tracking branch 'origin/master' into master-next 2018-06-11 10:12:59 -07:00
Robert Widmann
7d82e70f2c Excise getInput() from printing
Not NFC because it changes the printing behavior for function type
parameters.  They are no longer reported as types (paren, tuple, or raw),
but as Params.
2018-06-10 19:40:26 -07:00
Robert Widmann
df698d2ee8 Remove __consuming from CodeCompletion
Set the UserInaccessible bit to remove __consuming from code
completion until we commit to a real keyword.

rdar://40828289
2018-06-10 15:06:28 -07:00
swift-ci
b87ea23124 Merge remote-tracking branch 'origin/master' into master-next 2018-06-06 17:29:44 -07:00
Erik Little
863f3a19ff Rename @effects to @_effects
@effects is too low a level, and not meant for general usage outside
the standard library. Therefore it deserves to be underscored like
other such attributes.
2018-06-06 12:53:03 -04:00
swift-ci
58a1ecfb7c Merge remote-tracking branch 'origin/master' into master-next 2018-05-31 16:09:51 -07:00
Rintaro Ishizaki
66c71d1bf7 [SourceKit] Force print '?' for optional method call in code completion. (#16910)
Calling '@objc optional func' requires '?' or '!' after its name. When
completing method calls for them, 'key.sourcetext' should have '?'
whereas 'key.name' shouldn't.
Note that we deliberately do not use optional type name for
'key.typename'. This is consistent with optional chain '?.<propertyName>'
behavior.

rdar://problem/37904574
2018-05-31 16:06:23 -07:00
swift-ci
32ed7e2d02 Merge remote-tracking branch 'origin/master' into master-next 2018-05-30 12:49:02 -07:00
Ben Langmuir
ad442e955d Merge pull request #16895 from benlangmuir/notify-parse-args
[sourcekit] Send compile notifications when argument parsing files
2018-05-30 12:45:11 -07:00
Ben Langmuir
c3e5d63384 [sourcekit] Send notification if compiler argument parsing fails in editor.open
Since we will not reach `createAST` where we would normally send the
notification, send one from `getInvocation` when it fails.

rdar://39225180
2018-05-29 15:24:20 -07:00
swift-ci
5f8d932159 Merge remote-tracking branch 'origin/master' into master-next 2018-05-24 14:49:06 -07:00
Ben Langmuir
a90aeca095 Merge pull request #16534 from AnthonyLatsis/self-completion-dot-expr
[CodeCompletion] SR-943 'self' for dot expressions
2018-05-24 14:44:21 -07:00
swift-ci
4ad4223ef4 Merge remote-tracking branch 'origin/master' into master-next 2018-05-22 17:29:13 -07:00
Rintaro Ishizaki
c83917ce07 Merge pull request #16763 from rintaro/parse-type-argumentlabel
[Parse] Parse label in tuple type as tok::identifier
2018-05-23 09:22:34 +09:00
Ben Langmuir
97b735359f [sourcekit] Attempt to provide diagnostics when compilation fails for any reason
Refactors the diagnostic code to be run whenever a compilation
notification has been started and there are diagnostics available in the
consumer. This allows us to capture diagnostics on all exit paths, and
specifically when code-completion fails because of invalid arguments.

Note: the editor.open code path still doesn't report invalid arguments
because it fails before even trying to create an AST.
2018-05-22 12:40:06 -07:00
Ben Langmuir
a35b2d48a3 [code-completion] Sends compile notifications even if argument parsing fails
For now we don't get a diagnostic, but at least there is a will-compile
containing the arguments.
2018-05-22 11:38:57 -07:00
swift-ci
e4f15d7479 Merge remote-tracking branch 'origin/master' into master-next 2018-05-22 10:08:51 -07:00
Xi Ge
832edd16d1 Merge pull request #16746 from johnfairh/enum-unistring
[ASTPrinter] Fix raw string enum cases with unicode scalars
2018-05-22 09:57:25 -07:00
swift-ci
7fff7b3ddf Merge remote-tracking branch 'origin/master' into master-next 2018-05-21 21:49:25 -07:00
Rintaro Ishizaki
4a247efc0a [Parse] Parse label in tuple type as tok::identifier
Made an utility method 'consumeArgumentLabel', and use it for:
* Labels in tuple type
* Labels in tuple expression
* Argument and parameter names in parameter clause
2018-05-22 13:46:42 +09:00
Rintaro Ishizaki
4c11cf964a [SourceKit] Add SyntaxMap test case for keyword in argument label position 2018-05-22 13:46:32 +09:00
Rintaro Ishizaki
b3453c17fe [ClangImporter] Take isCompatibilityAlias() into account in interface printing (#16625)
If the Clang declrations are *types*, canonical declaration in Swift is
imported for newest version of Swift. In interface generation, if the
declaration is versioned and it's imported as a member in either or both
version of Swift, we have to take compatibility typealias into account.

* Fixed 'ClangModuleUnit::getTopLevelDecls' to take isCompatibilityAlias() into account
* Fixed bugs in ClangImporter where member-to-member versioned types aren't properly imported.
  * Fixed 'SwiftDeclConverter::importFullName' to check equality of getEffectiveContext()
  * Fixed 'importer::addEntryToLookupTable' to check equality of getEffectiveContext()
    (moved 'ClangImporter::Implementation::forEachDistinctName' to 'NameImporter')
2018-05-22 13:38:45 +09:00
fischertony
131d36d381 updated SourceKit tests 2018-05-19 07:41:14 +03:00
swift-ci
9475d215e9 Merge remote-tracking branch 'origin/master' into master-next 2018-05-18 19:49:40 -07:00
Ben Langmuir
3fa2df68e3 [sourcekit test] Split -sanitizer= test out and add REQUIRES
This test requires the sanitizer runtime libraries, so split it out and
add the requisite REQUIRES lines.
2018-05-18 17:48:31 -07:00
John Fairhurst
32b04b8405 [ASTPrinter] Fix raw string enum cases with unicode scalars 2018-05-16 10:52:48 +01:00
swift-ci
3acd4dc93d Merge remote-tracking branch 'origin/master' into master-next 2018-05-11 11:29:49 -07:00
Ben Langmuir
e9d6a4ddfc [sourcekit] Pass -resource-dir when parsing driver arguments
... instead of overriding it after the driver is done. This improves
the fidelity of anything that looks at the resource directory inside the
driver or frontend argument parsing.  In particular, it fixes an issue
where sourcekit requests would fail if they included the -sanitize=
option because the driver would fail to find the runtime libraries.

Even though this should be *more correct* for all uses, in the
interests of understanding all possible immediate effects of this
change, I manually audited all the code that looks at the resource
directory in between when it is parsed as and argument and when
createCompilerInvocation returns. I claim that the only changes are:
1. The sanitizer library check that we wanted to change
2. The DWARFDebugFlags, which are for IRGen so don't affect SourceKit
3. The Migrator data paths, which also don't affect SourceKit

For now, I put the -resource-dir option at the end of the arguments so
that it overrides any existing option, which mimics how it behaved
before.  We might want to move it to the beginning so that we honour a
user-provided resource directory, but that should be a separate change.

rdar://40147839
2018-05-11 10:28:01 -07:00
swift-ci
ee38f29fc8 Merge remote-tracking branch 'origin/master' into master-next 2018-05-10 12:29:12 -07:00
Alex Hoppen
4f43c8e93c [SourceKit] Make the NameLength of EnumElements take argument labels into account 2018-05-10 11:27:49 -07:00
swift-ci
40a72602ba Merge remote-tracking branch 'origin/master' into master-next 2018-05-08 03:09:13 -07:00
David Zarzycki
995dec5d82 [Sema] Error if ObjC interop is needed when disabled 2018-05-07 14:43:04 -04:00
swift-ci
6fc15527f8 Merge remote-tracking branch 'origin/master' into master-next 2018-05-02 19:29:35 -07:00
swift-ci
d037d29944 Merge pull request #16329 from nkcsgexi/doc-info-std-lib 2018-05-02 19:18:19 -07:00
Xi Ge
714775eb0a DocSupport: don't assume we've printed the first extension when merging several together. rdar://39887195
When printing the content of several extensions into a
synthesized one, we shouldn't assume the first extension in the
group always gets printed.
2018-05-02 17:46:41 -07:00
swift-ci
7056b65bf5 Merge remote-tracking branch 'origin/master' into master-next 2018-05-02 15:09:04 -07:00
Jordan Rose
df2e63d07d Diagnose modules with circular dependencies (#16075)
This can't arise from a clean build, but it can happen if you have
products lingering in a search path and then either rebuild one of
the modules in the cycle, or change the search paths.

The way this is implemented is for each module to track whether its
imports have all been resolved. If, when loading a module, one of its
dependencies hasn't resolved all of its imports yet, then we know
there's a cycle.

This doesn't produce the best diagnostics, but it's hard to get into
this state in the first place, so that's probably okay.

https://bugs.swift.org/browse/SR-7483
2018-05-02 15:01:09 -07:00
swift-ci
c197010436 Merge remote-tracking branch 'origin/master' into master-next 2018-04-27 00:09:00 -07:00
Slava Pestov
392a5c2bcb AST: @usableFromInline and @inlinable are no longer user inaccessible 2018-04-26 22:58:56 -07:00
swift-ci
2160984b6f Merge remote-tracking branch 'origin/master' into master-next 2018-04-25 10:09:08 -07:00
Ben Langmuir
9496c63edc Merge pull request #15918 from johnfairh/typealias-where
[ASTPrinter] Print typealias generic requirements
2018-04-25 09:57:05 -07:00
swift-ci
385c223177 Merge remote-tracking branch 'origin/master' into master-next 2018-04-20 14:49:40 -07:00