Commit Graph

4362 Commits

Author SHA1 Message Date
swift-ci
d9223a7d16 Merge remote-tracking branch 'origin/master' into master-next 2019-11-12 13:30:45 -08:00
Hamish Knight
cd3ada5abb getInterfaceType() always returns a type (#28210)
getInterfaceType() always returns a type
2019-11-12 13:24:05 -08:00
Francis Visoiu Mistrih
47c6ce2af7 [Bitcode] Update includes: llvm/Bitcode -> llvm/Bitstream
The Bitstream part of Bitcode moved to llvm/Bitstream in LLVM. This
updates the uses in swift.

See r365091 [Bitcode] Move Bitstream to a separate library.

(cherry picked from commit 1cd8e19357)
2019-11-12 10:46:07 -08:00
Robert Widmann
48805b1d44 Give ASTContext TypeCheckerOptions
Strip TypeChecker of all of this state.
2019-11-12 09:56:01 -08:00
Hamish Knight
ed77b86c24 getInterfaceType() always returns a type 2019-11-12 07:50:29 -08:00
swift-ci
eb702cfbbc Merge remote-tracking branch 'origin/master' into master-next 2019-11-12 04:49:51 -08:00
Rintaro Ishizaki
2564a6e494 [CodeCompletion] Avoid typechecking all toplevel decls in the current file
- Use `performParseAndResolveImportsOnly()` to invoke the frontend
- Do `bindExtensions()` in `ide::typeCheckContextUntil()`
- Typecheck preceding `TopLevelCodeDecl`s only if the compleiton is in
  a `TopLevelCodeDecl`
- Other related tweaks

rdar://problem/56636747
2019-11-12 12:57:18 +09:00
Tony Allevato
2c7b518460 Consolidate code that computes resource dir relative to swift executable. 2019-11-11 15:00:51 -08:00
swift-ci
36da3cab70 Merge remote-tracking branch 'origin/master' into master-next 2019-10-30 16:49:48 -07:00
Robert Widmann
0267384e11 Fixup SourceKit and Tests
Patch up all the places that are making a syntactic judgement about the
isInvalid() bit in a ValueDecl.  They may continue to use that query,
but most guard themselves on whether the interface type has been set.
2019-10-30 15:09:14 -07:00
swift-ci
ae278ae961 Merge remote-tracking branch 'origin/master' into master-next 2019-10-30 14:50:00 -07:00
Jordan Rose
5c2185f395 Merge pull request #27868 from owenv/diag-info-refactor
[Diagnostics] Refactor DiagnosticConsumer interface to remove unnecessary params
2019-10-30 14:49:11 -07:00
swift-ci
1377c0387a Merge remote-tracking branch 'origin/master' into master-next 2019-10-30 13:49:48 -07:00
Ben Langmuir
4980bc71ee Merge pull request #27948 from benlangmuir/racy-edit
[edit] Fix racy access to SemanticInfo
2019-10-30 13:33:19 -07:00
Ben Langmuir
c864eab859 [edit] Fix racy access to SemanticInfo
Specifically, if the document was re-opened, we would drop the reference
and the call to readSemanticInfo could use-after-free the array of
diagnostics. This manifested as a very rare crash while testing
sourcekit-lsp.
2019-10-29 16:33:36 -07:00
Owen Voorhees
8a6711769e [Diagnostics] Refactor DiagnosticConsumer interface
DiagnosticInfo now holds all the information needed to consume
a diagnostic, so remove unneeded parameters from handleDiagnostic.
2019-10-29 13:52:12 -07:00
swift-ci
2f107f51fd Merge remote-tracking branch 'origin/master' into master-next 2019-10-29 12:50:01 -07:00
Saleem Abdulrasool
15b8772ae9 swift-stdlib-tool: avoid VLA usage
Replace the use of a VLA with a `std::vector`.  This applies a RAII to
the allocation, and the allocation is a single instance so the malloc
traffic is not a concern.
2019-10-29 10:18:43 -07:00
Xi Ge
64c0680686 Merge remote-tracking branch 'apple/master' into master-next 2019-10-28 10:19:36 -07:00
swift-ci
cea89e7740 Merge pull request #27901 from gottesmm/pr-0d9cf2f088ce0a1fe943de13e1f12711117b3668 2019-10-26 20:59:16 -07:00
Michael Gottesman
758d15a758 [sil-opt] Enable sil-opt to manually enable/disable the flag StripOwnershipAfterSerialization
This is done via the flag -enable-ownership-lowering-after-diagnostics. This
will let me control this option for certain sil-opt tests that are expected to
always compile with/without the flag set. In most cases, I will turn it off for
the test currently in tree and add an additional ownership one with this flag
set.

The specific test cases where this is interesting is when we are using sil-opt
to simulate the diagnostics pipeline on a test containing already emitted
SILGen. This will let me ensure those tests do not start failing when I flip the
switch.
2019-10-26 19:34:39 -07:00
Saleem Abdulrasool
2dbb7fae96 build: add a dependency on the just built clang (NFC)
When building in a unified build and building the host tools with a
non-clang compiler, we switch compilers.  In such a case, we need to
actually add an explicit dependency on the new compiler.
2019-10-26 17:17:41 -07:00
Adrian Prantl
468b74bd70 Update Swift master-next for upstream llvm.org changes. 2019-10-21 13:31:31 -07:00
Rintaro Ishizaki
7c43083718 [SyntaxParse] Sink element layout check to right before node creations
ParsedRawSyntaxRecorder::recordRawSyntax() and
ParsedRawSyntaxNode::makeDeferred()
2019-10-18 17:46:17 -07:00
Xi Ge
7d600eb27a ABI/API checker: teach the tool to emit diagnostics to serialized source location for decls 2019-10-17 16:31:56 -07:00
Xi Ge
19b0a8a06a Merge pull request #27633 from nkcsgexi/get-loc-return-serialized-loc
AST: teach Decl::getLoc() to return serialized source loc.
2019-10-16 17:16:20 -07:00
Xi Ge
fd280d7746 sourcekitd-test: ignore .swiftsourcefile when invoking sourcekitd from sourcekitd-test 2019-10-16 14:13:48 -07:00
Rintaro Ishizaki
fc168e467f Merge pull request #27707 from rintaro/syntaxparse-rawnode-moveonly
[SyntaxParse] Re-apply move-only ParsedRawSyntaxNode to master
2019-10-16 22:38:47 +02:00
Jordan Rose
52035c1cb9 Merge pull request #27081 from ismetanin/SR-7165
SR-7165. Excise <iostream> from reflection
2019-10-16 13:34:02 -07:00
Varun Gandhi
68a68cb564 Merge pull request #27635 from varungandhi-apple/vg-robustify-module-trace-emission
Make module trace emission more robust.
2019-10-15 20:45:04 -07:00
Rintaro Ishizaki
aeec682c90 [SyntaxParse] Prevent memory leak in Syntax parsing
Essentially re-applying b09f87594a
2019-10-15 16:27:32 -07:00
Xi Ge
1e22e7c8aa AST: teach Decl::getLoc() to return serialized source loc.
When Decl::getLoc() is called upon a serialized AST and the
serialized source location is available, we lazily open the
external buffer and return a valid SourceLoc instance pointing
into the buffer.
2019-10-15 16:05:28 -07:00
Varun Gandhi
903add2c3f [Frontend] Make the module trace emission more robust.
✔ More informative error messages in case of crashes.
✔ Handling and documenting different cases.
✔ Test cases for different cases.
✔ Make SDKDependencies.swift pass again.
2019-10-15 15:44:26 -07:00
Rintaro Ishizaki
f8209f2865 Merge pull request #27675 from rintaro/revert-syntaxparse
[SyntaxParse] Revert syntax parsing changes from the master branch
2019-10-15 18:33:36 +02:00
Doug Gregor
14be78d54d Remove -(enable|disable)-function-builder-one-way-constraints
Remove the staging flags for unidirectional constraints in function
builders. We're not going back!
2019-10-14 21:22:28 -07:00
Rintaro Ishizaki
8a03e08966 Revert "Merge pull request #26403 from rintaro/gsoc-2019-part1"
This reverts commit 1a211e6e5f, reversing
changes made to 482d0621a6.
2019-10-14 15:18:05 -07:00
Rintaro Ishizaki
00613db8db Revert "Merge pull request #27230 from rintaro/syntaxparsse-rdar55421369"
This reverts commit b09f87594a, reversing
changes made to d0b7ecab00.
2019-10-14 12:47:23 -07:00
Ivan Smetanin
dd7d173c97 [stdlib] [reflection] Excise iostream from reflection 2019-10-14 20:28:20 +03:00
swift-ci
e4cbf824ae Merge remote-tracking branch 'origin/master' into master-next 2019-10-11 15:10:04 -07:00
Robert Widmann
060cbb293f [NFC] Downgrade The TypeLoc in VarDecl to a TypeRepr
TypeCheckPattern used to splat the interface type into this, and
different parts of the compiler would check one or the other.   There is
now one source of truth: The interface type.  The type repr is now just
a signal that the user has written an explicit type annotation on
a parameter.  For variables, we will eventually be able to just grab
this information from the parent pattern.
2019-10-11 11:15:51 -07:00
swift-ci
84f192ddce Merge remote-tracking branch 'origin/master' into master-next 2019-10-10 13:50:08 -07:00
Xi Ge
dd33540231 AST: rename printDeclUSRForModuleDoc to printDeclUSR. NFC 2019-10-09 15:29:52 -07:00
Xi Ge
8293bdc9e9 SerilizeLoc: refactor table structures per Jordan's comments
After this change, we only use one single hash table for USR to USR id
mapping. The basic source locations are an array of fixed length
records that could be retrieved by using the USR id since each
USR id is guaranteed to be associated with one basic location entry.

The source file paths are refactored to a blob of 0-terminated strings.
Decl locations use offset in this blob to refer to the source file path
where the decl was defined.
2019-10-09 15:29:52 -07:00
Xi Ge
e9dfdea6fd SerializeLoc: serialize basic decl source location information to .swiftsourceinfo file
After setting up the .swiftsourceinfo file, this patch starts to actually serialize
and de-serialize source locations for declaration. The binary format of .swiftsourceinfo
currently contains these three records:

BasicDeclLocs: a hash table mapping from a USR ID to a list of basic source locations. The USR id
could be retrieved from the following DeclUSRs record using an actual decl USR. The basic source locations
include a file ID and the results from Decl::getLoc(), ValueDecl::getNameLoc(), Decl::getStartLoc() and Decl::getEndLoc().
The file ID could be used to retrieve the actual file name from the following SourceFilePaths record.
Each location is encoded as a line:column pair.

DeclUSRS: a hash table mapping from USR to a USR ID used by location records.

SourceFilePaths: a hash table mapping from a file ID to actual file name.

BasicDeclLocs should be sufficient for most diagnostic cases. If additional source locations
are needed, we could always add new source location records without breaking the backward compatibility.
When de-serializing the source location from a module-imported decl, we calculate its USR, retrieve the USR ID
from the DeclUSRS record, and use the USR ID to look up the basic location list in the BasicDeclLocs record.

For more details about .swiftsourceinfo file: https://forums.swift.org/t/proposal-emitting-source-information-file-during-compilation
2019-10-09 15:29:51 -07:00
Shoaib Meenai
84711260fd [swift-reflection-dump] Adjust for LLVM r372278
Use the new API for getting a Mach-O object.
2019-10-04 12:47:43 -07:00
swift-ci
c027b46eaf Merge remote-tracking branch 'origin/master' into master-next 2019-10-04 08:29:38 -07:00
Joe Groff
ce6de7e81d swift-reflection-dump: ELF ObjectMemoryReader support for relocations
Collect the relative and symbol relocations from ELF images in order to resolve pointer values
read from disk. This allows us to enable symbolic-referencing-all-the-things for ELF platforms.
2019-10-03 14:28:24 -07:00
swift-ci
b91537d1b4 Merge remote-tracking branch 'origin/master' into master-next 2019-10-02 16:09:39 -07:00
Joe Groff
b93096c8c5 swift-reflection-dump: Use a 32-bit friendly multi-image VM mapping.
My previous attempt doesn't work well for 32-bit targets; 32-bit memory readers
reasonably assume that they only get 32-bit RemoteAddress values. When working
with multiple images, instead pack them all into a contiguous subset of the
address space.
2019-10-02 13:13:27 -07:00
Joe Groff
8821c6cf26 swift-reflection-dump: Create ReflectionContext with correct target pointer size
Necessary to make sure we read pointers as the right size, and use the correct object layouts
when using swift-reflection-dump for cross-platform dumps.
2019-10-02 12:41:59 -07:00