Commit Graph

2546 Commits

Author SHA1 Message Date
Saleem Abdulrasool
83b290438c Windows: bridge BOOL to Bool
This allows the conversion of the Windows `BOOL` type to be converted to
`Bool` implicitly.  The implicit bridging allows for a more ergonomic
use of the native Windows APIs in Swift.

Due to the ambiguity between the Objective C `BOOL` and the Windows
`BOOL`, we must manually map the `BOOL` type to the appropriate type.
This required lifting the mapping entry for `ObjCBool` from the mapped
types XMACRO definition into the inline definition in the importer.

Take the opportunity to simplify the mapping code.

Adjust the standard library usage of the `BOOL` type which is now
eclipsed by the new `WindowsBool` type, preferring to use `Bool`
whenever possible.

Thanks to Jordan Rose for the suggestion to do this and a couple of
hints along the way.
2019-04-25 17:52:08 -07:00
swift-ci
1154846a32 Merge remote-tracking branch 'origin/master' into master-next 2019-04-02 17:29:21 -07:00
Brent Royal-Gordon
972eda2316 [NFC] AST-level support for static subscripts
* Moves the IsStatic flag from VarDecl to AbstractStorageDecl.
* Adds a StaticSubscriptKind to SubscriptDecl.
* Updates serialization for these changes.
* Updates SubscriptDecl constructor call sites for these changes.
2019-04-01 18:04:00 -07:00
swift-ci
c869cb9468 Merge remote-tracking branch 'origin/master' into master-next 2019-03-05 14:29:14 -08:00
Devin Coughlin
8b14600372 [ClangImporter] Refactor availability attribute importing logic. NFC.
Refactor the PlatformAvailability logic for determining
which Clang availability attributes are relevant when importing. The goal
is to separate the logic for attribute relevance for a given platform from
the logic to determine whether a deprecated attribute should be imported as
unavailable in Swift.

This also makes it possible for the "deprecated-as-unavailable" logic to
refer to the underlying Clang declaration, which is functionality that will
be used in a later commit.

This commit has no intended functional change.

Part of rdar://problem/48348822
2019-03-03 14:29:50 -08:00
Bob Wilson
213efe089c Merge commit '06120c9d9d1a28275a0ecd7466775b1d71716be7' into stable-update-5.1 2019-02-17 10:20:59 -08:00
Bob Wilson
69cbd56873 Merge remote-tracking branch 'origin/master' into master-next 2019-02-09 16:01:45 -08:00
Saleem Abdulrasool
8719f5276c ClangImporter: adjust for SVN r349901
The constructor for `DeclRefExpr` now takes a `Context` parameter to avoid the
call to `getASTContext`.  Adjust the invocation accordingly.
2019-02-08 14:22:57 -08:00
Saleem Abdulrasool
db1c894aa0 ClangImporter: update for SVN r345605
Update for API changes in clang SVN r345605.
2019-02-08 14:22:56 -08:00
Slava Pestov
dffa29fd0d AST: Remove a few uses of FunctionType::Param::getOldType() 2019-02-07 23:46:31 -05:00
Bob Wilson
b0dd41b8ab [master-next] Use the new AST getBeginLoc API instead of getLocStart
The getLocStart API is deprecated and slated for removal from LLVM
very soon. Switch to use getBeginLoc instead. I did not see any uses
of the corresponding getLocEnd API.
2019-02-07 16:53:03 -08:00
Saleem Abdulrasool
39b564b774 ClangImporter: adjust for SVN r351368
SVN r351368 added FixedPoint to APValue.  Enumerate that for `-Wcovered-switch`
errors.
2019-01-17 09:17:51 -08:00
swift-ci
c58f7254a9 Merge remote-tracking branch 'origin/master' into master-next 2019-01-14 20:50:03 -08:00
John McCall
f771e4c36d Merge pull request #21237 from drodriguez/aapcs64-valist
[stdlib][SR-2239] Refactor AAPCS64 variable argument list support.
2019-01-14 23:48:14 -05:00
swift-ci
f7846703aa Merge remote-tracking branch 'origin/master' into master-next 2019-01-10 12:29:57 -08:00
Parker Schuh
f5859ff46e Rename NameAliasType to TypeAliasType. 2019-01-09 16:47:13 -08:00
Daniel Rodríguez Troitiño
7cfaf9fae2 [stdlib][SR-2239] Refactor AAPCS64 variable argument list support.
This refactoring uses large portions of the already existing code for
x86_64 and s390 to implement AAPCS64 __VaListBuilder. The parts where
each implementation differ are the x86_64 header, and the order of the
general and vector registers.

The changes also addresses many of the request from the reviewers in
 #20862 which were not addressed originally, like the reuse of the
already existing code, and the generalizations for the code to be useful
for platforms different than Linux (Android, for example).
2019-01-09 13:45:04 -08:00
swift-ci
e0be886e02 Merge remote-tracking branch 'origin/master' into master-next 2019-01-08 21:50:43 -08:00
Slava Pestov
f253da0217 ClangImporter: Don't build generic environments of protocols
AST does it for us.
2019-01-08 22:58:12 -05:00
Saleem Abdulrasool
5b217b0405 ClangImporter: adjust for SVN r349901
The constructor for `DeclRefExpr` now takes a `Context` parameter to avoid the
call to `getASTContext`.  Adjust the invocation accordingly.
2018-12-26 08:29:28 -08:00
swift-ci
31950cc699 Merge remote-tracking branch 'origin/master' into master-next 2018-12-12 23:10:06 -08:00
Slava Pestov
3a0099f126 ClangImporter: Use ExtensionDecl::createGenericParamsIfMissing() 2018-12-13 00:06:44 -05:00
swift-ci
0021527056 Merge remote-tracking branch 'origin/master' into master-next 2018-12-12 17:59:36 -08:00
Slava Pestov
bfcf24ee4e AST: Rework @objcMembers inheritance to not depend on validation order
Sema would directly check for the presence of the @objcMembers attribute,
and inherit it from the immediate superclass in validateDecl().

We don't want validateDecl() to have side effects like this and this was
already a problem, because it would not inherit the attribute transitively
in some cases.

Instead, add a ClassDecl::hasObjCMembers() method that walks over all
ancestors and caches the result.

<rdar://problem/46420252>
2018-12-12 15:12:38 -05:00
swift-ci
e366cfcaf1 Merge remote-tracking branch 'origin/master' into master-next 2018-12-12 07:30:05 -08:00
Slava Pestov
c0bfaaf30f AST: Merge ProtocolDecl::createGenericParams() into createGenericParamsIfMissing() 2018-12-11 23:55:41 -05:00
swift-ci
848f9bef21 Merge remote-tracking branch 'origin/master' into master-next 2018-12-05 10:54:58 -08:00
Adrian Prantl
ff63eaea6f Remove \brief commands from doxygen comments.
We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they are a visual distraction and we don't want to
encourage more \brief markers in new code either, this patch removes
them all.

Patch produced by

      for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
2018-12-04 15:45:04 -08:00
swift-ci
a2f5231158 Merge remote-tracking branch 'origin/master' into master-next 2018-11-29 15:17:38 -08:00
futurejones
4a03b3c304 add support for AArch64 variadics 2018-11-29 22:30:28 +09:00
swift-ci
9943d27da2 Merge remote-tracking branch 'origin/master' into master-next 2018-11-15 16:41:12 -08:00
John McCall
6ffeb4d839 [NFC] Add PrettyStackTraceConformance and use it
Also allow the printFooDescription functions to suppress
the trailing newline.
2018-11-15 18:39:35 -05:00
swift-ci
35e9c1a384 Merge remote-tracking branch 'origin/master' into master-next 2018-11-14 00:09:31 -08:00
Michael Gottesman
e379ab9beb Merge pull request #20557 from brentdax/this-is-why-swift-is-a-memory-safe-language
Fix lookupDirect() use-after-scope bugs
2018-11-14 00:01:10 -08:00
Brent Royal-Gordon
270ad33a72 Fix lookupDirect() use-after-scope bugs
In #7530, NominalTypeDecl::lookupDirect() started returning TinyPtrVector instead of ArrayRef so that it wouldn’t be returning a pointer into a mutable data structure. Unfortunately, some callees assigned its return value into an ArrayRef; C++ happily converted the TinyPtrVector to an ArrayRef and then treated the TinyPtrVector as out-of-scope, so the ArrayRef would now point to an out-of-scope object. Oops.
2018-11-13 16:31:59 -08:00
swift-ci
4edf385957 Merge remote-tracking branch 'origin/master' into master-next 2018-11-10 04:29:32 -08:00
Slava Pestov
c7338d06ca AST: Remove owning addressors 2018-11-09 20:49:44 -05:00
Saleem Abdulrasool
618a3ec00f ClangImporter: update for SVN r345605
Update for API changes in clang SVN r345605.
2018-10-31 09:34:59 -07:00
swift-ci
043546cbc9 Merge remote-tracking branch 'origin/master' into master-next 2018-09-26 19:49:40 -07:00
Slava Pestov
3b60ae153d AST: Rename AnyFunctionType::Param::getType() to getOldType() 2018-09-26 11:05:23 -07:00
swift-ci
c083cefed7 Merge remote-tracking branch 'origin/master' into master-next 2018-09-22 00:29:59 -07:00
Graydon Hoare
14db5d2285 [AST] Add and use NominalTypeDecl::LookupDirectFlags rather than booleans. 2018-09-21 14:34:26 -07:00
swift-ci
317eb61e6f Merge remote-tracking branch 'origin/master' into master-next 2018-09-20 14:29:50 -07:00
Slava Pestov
ea1ec895a8 AST: Extended types of extensions should be interface types 2018-09-20 01:20:31 -07:00
swift-ci
d5b96980be Merge remote-tracking branch 'origin/master' into master-next 2018-09-14 09:09:31 -07:00
Saleem Abdulrasool
d281b98220 litter the tree with llvm_unreachable
This silences the instances of the warning from Visual Studio about not all
codepaths returning a value.  This makes the output more readable and less
likely to lose useful warnings.  NFC.
2018-09-13 15:26:14 -07:00
swift-ci
4d14ecb4ed Merge remote-tracking branch 'origin/master' into master-next 2018-09-10 20:49:46 -07:00
Doug Gregor
ac37747c78 [Type checker] Break isObjC/getObjCSelector cycle.
When we're marking a declaration as @objc and recording it in the
class and source-file lookup tables (for @objc collision detection),
don't cause a cycle by querying `getObjCSelector()`. This is somewhat
of a hack: a better long-term approach would be to move the recording
much later, and request'ify the name computation. That'll be follow-up
work.
2018-09-10 17:30:17 -07:00
Bob Wilson
72c7eeb2fe Merge remote-tracking branch 'origin/master' into master-next 2018-09-10 13:22:19 -07:00
Harlan
eb75ad80dc [AST] Remove stored TypeLoc from TypedPattern (#19175)
* [AST] Remove stored TypeLoc from TypedPattern

TypedPattern was only using this TypeLoc as a means to a TypeRepr, which
caused it to store the pattern type twice (through the superclass and through
the TypeLoc itself.)

This also fixes a bug where deserializing a TypedPattern doesn't store
the type correctly and generally cleans up TypedPattern initialization.

Resolves rdar://44144435

* Address review comments
2018-09-07 21:14:04 -07:00