Commit Graph

122 Commits

Author SHA1 Message Date
Rintaro Ishizaki
d3d30ee246 [Serialization] Support Swift only system module
Previously 'isSystemModule()' returns true only if the module is:
- Standard library
- Clang module and that is `IsSystem`
- Swift overlay for clang `IsSystem` module

Now:
- Clang module and that is `IsSystem`; or
- Swift overlay for clang `IsSystem` module
- Swift module found in either of these directories:
  - Runtime library directoris (including stdlib)
  - Frameworks in `-Fsystem` directories
  - Frameworks in `$SDKROOT/System/Library/Frameworks/` (Darwin)
  - Frameworks in `$SDKROOT/Library/Frameworks/` (Darwin)

rdar://problem/50516314
2019-05-08 17:03:06 -07:00
Doug Gregor
0c26e4349e Underscore the @propertyDelegate attribute to indicate that it's experimental 2019-04-24 21:25:33 -07:00
Doug Gregor
7ace136afb ASTWalker support for custom attributes on properties.
When we encounter a custom attributes on a property (via a pattern binding),
visit those custom attributes. Provides basic indexing support.
2019-04-23 11:32:29 -07:00
Doug Gregor
99d4e8090c [Index] Handle memberwise initializers with defaulted arguments. 2019-04-23 11:32:29 -07:00
Rintaro Ishizaki
4773808cd0 [Index] Add test case for opaque result types
rdar://problem/49398426
2019-04-19 17:34:08 -07:00
Ben Langmuir
2ee24ac437 Update index_keypath_member_lookup for change to implicit subscript location
The implicit subscript is not located at the "." instead of the
identifier, so update the index test.
2019-04-17 09:35:41 -07:00
Ben Langmuir
6af24d083c [index] Fix dynamicMemberLookup subscript reference implicit role
When building the implicit subscript expression, set the "implicit" bit
correctly and pass it through in the indexer so that we get implicit
refernces to the subscript. This would be useful for e.g. searching for
all uses of the dynamic subscript.
2019-04-16 15:37:32 -07:00
Ben Langmuir
0224d40551 [index] Add indexing of references in keypath member lookup expressions
Currently includes both the implicit references to the
subscript(dynamicMember:) and the explicit references to the underlying
property/subscript declarations.

rdar://49028783
2019-04-16 15:37:32 -07:00
Ben Langmuir
26de7c1bf9 [index] Fix infinite loop while looking at superclasses
While checking for superclasses in isUnitTest, we need to handle
circular inheritance. For good measure, add tests for protocols as well.

The new API is designed to behave the same as walkInheritedProtocols
except that is walks over superclasses.

rdar://49434989
2019-03-29 15:56:46 -07:00
Saleem Abdulrasool
3223750f20 test: disable Index.Store.output-failure on Windows
`chmod -w` really doesn't make sense on Windows.  Although NTFS allows
for readonly directories, it is something done through file system level
ACLs.  This test doesn't really apply to Windows.
2019-03-27 13:02:05 -07:00
Nathan Hawes
9291201e32 [sourcekitd][Refactoring] Fix renaming of var decls in fallthrough case statements
We weren't renaming all occurrences of 'x' in the cases like the below:

  case .first(let x), .second(let x):
    print("foo \(x)")
    fallthrough
  case .third(let x):
    print("bar \(x)")

We would previously only rename occurrences within the case statement the query
was made in (ignoring fallthroughs) and for cases with multiple patterns (as in
the first case above) we would only rename the occurrence in the first pattern.
2019-03-20 14:38:08 -07:00
Saleem Abdulrasool
348520c4f1 Merge pull request #22688 from sarveshtamba/master
Changes for test failures on PowerPC64LE when running as non-root user
2019-02-25 08:26:54 -08:00
swift-ci
b52472bac2 Merge pull request #22724 from compnerd/a-spotlight-on-indexing 2019-02-19 15:12:59 -08:00
Jordan Rose
43feb9cbe1 On Apple platforms, use swiftmodule directories for the stdlib (#21797)
This changes the Swift resource directory from looking like

    lib/
      swift/
        macosx/
          libswiftCore.dylib
          libswiftDarwin.dylib
          x86_64/
            Swift.swiftmodule
            Swift.swiftdoc
            Darwin.swiftmodule
            Darwin.swiftdoc

to

    lib/
      swift/
        macosx/
          libswiftCore.dylib
          libswiftDarwin.dylib
          Swift.swiftmodule/
            x86_64.swiftmodule
            x86_64.swiftdoc
          Darwin.swiftmodule/
            x86_64.swiftmodule
            x86_64.swiftdoc

matching the layout we use for multi-architecture swiftmodules
everywhere else (particularly frameworks).

There's no change in this commit to how Linux swiftmodules are
packaged. There's been past interest in going the /opposite/ direction
for Linux, since there's not standard support for fat
(multi-architecture) .so libraries. Moving the .so search path /down/
to an architecture-specific directory on Linux would allow the same
resource directory to be used for both host-compiling and
cross-compiling.

rdar://problem/43545560
2019-02-19 14:47:21 -08:00
Saleem Abdulrasool
9c860b2dc2 test: adjustments for Windows
Adjust the invocation on Windows to improve the Index test coverage.
2019-02-19 13:52:06 -08:00
sarveshtamba
acc551f9bc Changes for test failures on PowerPC64LE when running as non-root user 2019-02-18 08:25:53 +00:00
Slava Pestov
a4cccaf46c ASTMangler: Fix mangling of invalid dependent member types
Fixes <rdar://problem/48014983>.
2019-02-13 19:17:27 -05:00
Ben Langmuir
981167d3d5 [index] Add back override relation for associated type witnesses
When conforming to a protocol, the index should have a "override"
relation for each witness, including type witnesses.  This was
accidentally broken in 3bd80e5e31 when we stopped using the
type-checker to find all protocol conformances.

rdar://47833618
2019-02-06 15:45:35 -08:00
sarveshtamba
7cb42b740c Changes for #SR-9413:Swift 5.0 test failures on PowerPC #21541 2019-01-16 11:05:02 +00:00
sarveshtamba
56318f3e1f Changes for #SR-9413:Swift 5.0 test failures on PowerPC 2018-12-24 11:37:38 +00:00
Saleem Abdulrasool
364a473ed3 test: normalize paths and check variant
Update the path separator checks to account for differences across
platforms.
2018-12-01 11:58:33 -08:00
Bruno Rocha
80bef3c33d Index explicit enum patterns 2018-11-04 19:25:26 -02:00
Bruno Rocha
32c593553d Indexing Swift @objc key paths 2018-10-18 17:49:24 -03:00
Nathan Hawes
660e9000c5 [IDE] Add test case for already fixed crash in SourceEntityWalker
Test case for rdar://problem/45039252 that was already fixed by
a8136a29ba
2018-10-08 14:57:17 -07:00
Bruno Rocha
bf84b297f8 [SourceKit] Allow module references to be indexed (#19243)
Module references get indexed as a 'module' symbol; they get USRs similar to how clang would assign a USR for a module reference.

JIRA: https://bugs.swift.org/browse/SR-8677
2018-09-28 12:21:38 -07:00
Slava Pestov
28c5ad3f08 Index: Don't crash if an optional requirement is missing its witness
Possibly fixes <rdar://problem/44499860>.
2018-09-18 20:59:30 -07:00
Argyrios Kyrtzidis
eb27ab8cc1 [test/Index/Store] For a test, replace 'XFAIL: linux' with 'REQUIRES: objc_interop' 2018-09-12 11:43:50 -07:00
Argyrios Kyrtzidis
3ce71a37bf [test/Index/Store] Remove the XFAILs for linux on some tests 2018-09-11 17:40:02 -07:00
Doug Gregor
0972111c60 [Type checker] Start tracking overrides of protocol requirements.
When a protocol that inherits another protocol restates a requirement
from its inherited protocol, track that as an override in the AST.
2018-09-04 16:42:06 -07:00
Argyrios Kyrtzidis
f752844ccd [index] Make sure to walk the accessor bodies of local properties (#19102)
[index] Make sure to walk the accessor bodies of local properties

Otherwise we'll miss global symbols references.
rdar://42301005
2018-09-01 08:27:27 -07:00
Argyrios Kyrtzidis
3bd80e5e31 [index] Improvements on how conformances are recorded (#19043)
Query for the local conformances of a DeclContext and record conformances of
functions that are defined in other types as 'implicit' overrides, with
the type that introduces the conformance as container symbol.

This allows more accurate index data, and avoids needing to query for all
protocol requirements, which is expensive to calculate.
2018-08-29 10:31:23 -07:00
Argyrios Kyrtzidis
2fe4235ee8 [test/index] Make matching for unit depedency printing less strict
This makes the tests more focused on what they are interested in testing
and allows flexibility on changing dependency printing on the clang side
without breaking the swift tests.
2018-08-26 12:24:57 -07:00
Argyrios Kyrtzidis
f5b46fb212 [test/index] Update test case for upstream change 2018-08-26 10:22:56 -07:00
Jordan Rose
2dfa303975 [Serialization] Preserve source order in serialization (#18361)
We previously shied away from this in order to not /accidentally/
depend on it, but it becomes interesting again with textual
interfaces, which can certainly be read by humans. The cross-file
order is the order of input files, which is at least controllable by
users.
2018-07-31 13:15:07 -07:00
Argyrios Kyrtzidis
40a29b889d [test] Add a test case for fix of PR #18153 2018-07-27 12:49:06 -07:00
Doug Gregor
363ef63409 [Code completion] Split out tests that require Objective-C interop.
A bunch of tests that technically require Objective-C interop were
not labeled as such, and worked in the absence of Objective-C interop
due to bugs in the type checker.
2018-07-18 21:17:12 -07:00
Mark Lacey
8ee52763f0 Remove the '++' and '--' operators.
We still had unavailable versions of these for floating-point types
only. We shouldn't need to keep these around, and can instead just
emit a helpful diagnostic for anyone that attempts to use them.

Unfortunately I don't see any way for the diagnostic to produce an
actual fix-it, so it just suggests '+= 1' or '-= 1' without actually
producing a fix.
2018-07-12 15:46:57 -07:00
Jordan Rose
c8b61f990b Merge pull request #17615 from maniramezan/master
[SR-2250] Include Foundation framework instead of minimal NSObject.h
2018-07-11 19:14:49 -07:00
Mani Ramezan
bee45aecb0 Use relative path to point to frameworks folder 2018-07-11 19:15:17 -04:00
Mani Ramezan
9df5adb150 Move mock Foundation framework into clang shared folder 2018-07-11 02:32:59 -04:00
Slava Pestov
eeb5c953aa Sema: Ban protocol where clauses that place constraints on 'Self'
These will never work properly because of phase ordering issues with
the current declaration checker design. Since we can always express
the same thing with the protocol inheritance clause instead, just
diagnose this as an error instead of trying to hack around it.

Fixes <rdar://problem/38077232>, <https://bugs.swift.org/browse/SR-5581>.
2018-07-10 00:34:02 -07:00
Slava Pestov
03f1e13a50 IDE: Index references from keypaths 2018-07-05 23:33:59 -07:00
Mani Ramezan
3c824ddaa5 Include Foundation framework instead of minimal NSObject.h
This change is for preventing scenarios like https://bugs.swift.org/projects/SR/issues/SR-2250
2018-06-28 19:27:24 -04:00
Doug Gregor
3df16e1109 Un-XFAIL new test on Linux. This doesn't crash on Linux. 2018-06-27 11:25:19 -07:00
Doug Gregor
71e2a014fe [Type checker] Make sure we get all conformances for extended nominal types.
Index-while-building ends up querying some conformances that aren’t
strictly needed by the type-checker, but which require us to pre-check all
conformances for any extension we have. Long-term, this is wasted effort, but
for now it eliminates a recent regression caused by the request-evaluator,
which (intentionally) tries to perform less work for non-primary files.

Fixes rdar://problem/41392714.
2018-06-27 10:53:26 -07:00
Argyrios Kyrtzidis
8207212f0b [driver/index] Fix an issue where the -index-file invocation was not working when there are 5 or more input files
When the supplementary-outputs file is written for an -index-file invocation it writes out the first input file
given in arguments instead of the input file that is provided by -index-file-path option. This then causes the frontend
index invocation to fail with an error because there is a mismatch in the primary input file and the input file that is written
in the supplementary-outputs file.
2018-04-12 19:37:44 -07:00
Robert Widmann
b49c43d2bd Merge pull request #15562 from CodaFi/param-reset
Add a parameter list to EnumElementDecl
2018-03-28 00:56:37 -04:00
Robert Widmann
03580d2fe5 Add a parameter list to EnumElementDecl
This models, but does not plumb through, default arguments.
2018-03-28 00:05:56 -04:00
Davide Italiano
b4a19cc6ac [Mangler] Fix mangling for associated types. 2018-03-27 11:06:15 -07:00
David Ungar
90773d298c Write out filemaps for supplementary outputs.
Add -driver-force-one-batch-repartition and enhance  batch_mode-overlong_argv test.
2018-03-20 09:42:13 -07:00