Commit Graph

86 Commits

Author SHA1 Message Date
Slava Pestov
892dd4594d SymbolGraph: Fixes for noncopyable generics and some small cleanups 2024-03-01 12:55:08 -05:00
Kavon Farvardin
f296d8e158 NCGenerics: mass XFAIL tests
It's easier to get a handle on regressions while working through
failures if the tests that are known to not pass are XFAIL'd for
NoncopyableGenerics.
2024-02-20 18:26:05 -05:00
David Rönnqvist
24d54a8614 [SymbolGraphGen] Emit "functionSignature" info for initializers and subscripts (#70207)
rdar://111072228
2023-12-20 10:56:01 -07:00
Daniel Rodríguez Troitiño
70376a15f0 [ScanDependencies] Fix JSON generation under certain circunstances. (#67246)
The code of `ScanDependencies.cpp` was creating invalid JSON since #66031
because in the case of having `extraPcmArgs` and `swiftOverlayDependencies`,
but not `bridgingHeader`, a comma will not be added at the end of
`extraPcmArgs`, creating an invalid JSON file. Additionally that same PR
added a trailing comma at the end of the `swiftOverlayDependencies`, which
valid JSON does not allow, but that bug was removed in #66366.

Both problems are, however, present in the 5.9 branch, because #66936
included #66031, but not #66366.

Besides fixing the problem in `ScanDependencies.cpp` I modified every test
that uses `--scan-dependencies` to pass the produced JSON through
Python's `json.tool` in order to validate proper JSON is produced. In
most cases I was able to pipe the output of the tool into `FileCheck`,
but in some cases the validation is done by itself because the checks
depend on the exact format generated by `--scan-dependencies`. In
a couple of tests I added a call to `FileCheck` that seemed to be
missing.

Without these changes, two tests seems to be generating invalid JSON in
my machine:

- `ScanDependencies/local_cache_consistency.swift` (which outputs `Expecting ',' delimiter: line 525 column 11 (char 22799)`)
- `ScanDependencies/placholder_overlay_deps.swift`
2023-07-12 14:19:20 -07:00
QuietMisdreavus
e45c9df2a3 always use the argNames constructor for macro DeclNames (#66497)
rdar://110179186
2023-06-12 09:10:02 -06:00
Doug Gregor
cfda29ccd4 [SE-0397] Enable freestanding declaration macros by default.
This proposal has been accepted. Move the feature flag from "experimental"
to "always enabled". Tracked by rdar://108637367.
2023-05-24 09:16:55 -07:00
QuietMisdreavus
e120a82e0c [SymbolGraphGen] refactor protocol conformance inheritance checking (#66012)
rdar://109418762
2023-05-22 09:27:58 -06:00
QuietMisdreavus
ff5c5312e8 [SymbolGraphGen] move "protocol implementations" check into isImplicitlyPrivate (#64867)
rdar://107432084
2023-04-05 09:53:53 -06:00
swift-ci
224b4a51b4 Merge pull request #64089 from bnbarham/add-swift-swift-parser-feature
[Test] Fix swift_swift_parser feature and use in tests
2023-04-03 14:23:46 -07:00
QuietMisdreavus
8fd028c4a8 [SymbolGraphGen] emit USRs for primary associated types in DeclarationFragmentPrinter (#60007)
* add a SymbolGraph test for primary associated types

* print USRs of primary associated types
2023-04-03 11:52:53 -06:00
Ben Barham
e5a28caa9a [Test] Fix swift_swift_parser feature and use in tests
The macro tests were all using "REQUIRES: OS=macosx" as a proxy for
"have the Swift Swift parser". There was an existing feature for this,
but it was just checking whether the path was passed through. Fix that
to use the same variable as in CMake.

Also remove all extraneous `-I` and `-L` to the host libs in the target
invocations.
2023-04-03 09:25:03 -07:00
Rintaro Ishizaki
1d2fd4223f [Test] Add %host_triple and %host_sdkroot substitutions
Macro tests need to build host libraries/tools. We can't use %target-*
substitutions for that.

rdar://107398734
2023-03-31 07:41:41 -07:00
QuietMisdreavus
0d74959af6 don't print macro definitions in symbol graphs (#64732)
rdar://106862694
2023-03-29 17:04:00 -06:00
QuietMisdreavus
e45030214d add a source location for GenericTypeParamDecls (#64688)
rdar://105982860
2023-03-29 10:17:46 -06:00
Doug Gregor
4d3f1fa67b Merge pull request #64044 from DougGregor/macros-feature-flags
Clean up feature flags for macros.
2023-03-02 19:03:32 -08:00
Doug Gregor
f88d2c638f Clean up feature flags for macros.
Enable expression macros by default, and add separate feature flags for
attached and freestanding macros.
2023-03-02 14:34:59 -08:00
Victoria Mitchell
0ab9348b1b count sourceOrigin outside the linear check to make it consistent
rdar://106084537
2023-03-01 17:56:52 -07:00
QuietMisdreavus
164e93e0a7 Merge pull request #63726 from apple/QuietMisdreavus/skip-proto-impls
[SymbolGraphGen] add new flag to skip "protocol implementation" symbols

rdar://59899968
2023-02-28 10:50:01 -07:00
Victoria Mitchell
9cca3c1405 allow implementation symbols to remain if they have their own docs 2023-02-17 17:46:50 -07:00
Ben Barham
a2e85e7bb1 [SymbolGraph] Add a test to ensure macros are output 2023-02-17 14:27:44 -08:00
Victoria Mitchell
4ec3e5291f add new flag to skip "protocol implementation" symbols
rdar://59899968
2023-02-16 14:00:04 -07:00
Victoria Mitchell
aafa418290 review: break the attribute name into its own fragment again 2023-02-15 14:21:38 -07:00
Victoria Mitchell
8eb2c50967 don't split attribute fragments with a separate typeIdentifier fragment
rdar://104930571
2023-02-13 15:15:57 -07:00
Rintaro Ishizaki
a490db377a Bump host tools deployment version for Darwin OS (#61460)
* Bump host tools deployment version for Darwin OS

* Update availability_define.swift

* Fix the test to use @backDeployed from @_backDeploy

---------

Co-authored-by: Mishal Shah <shahmishal@users.noreply.github.com>
2023-02-05 22:11:32 -08:00
Ben Barham
1aee0af1d4 [SymbolGraph] Output custom attributes
Custom attributes were being skipped as their attribute name started
with a "_". Underscored attributes are typically unstable and thus
shouldn't be printed, but "_" is not being used for that purpose in the
case of "_custom".

Rather than checking for "_" or "__", just use `UserInaccessible`. This
property is used for attributes that shouldn't be shown to users in eg.
completion/printing/etc.

Resolves rdar://99029554.
2022-10-31 15:16:59 -07:00
Max Obermeier
453fd2231b Allow for emission of swift.extension symbols for extensions to external types in swiftSymbolGraphGen (#59047)
This includes:
 - bumping the SWIFT_SYMBOLGRAPH_FORMAT_MINOR version
 - introduction of the "swift.extension" symbol and "extensionTo" relationship
 - adding support for ExtensionDecl to the Symbol class
 - adding a "typeKind" field to the symbol's extension mixin which indicates what kind
   of symbol was extended
 - intoduction of the -emit-extension-block-symbols flag, which enables the behavior
   outlined below
 - adaptions to SymbolGraphASTWalker that ensure a swift.extension symbol is emitted
   for each extension to a type that does not exist in the local symbol graph
 - adaptions to SymbolGraph and SymbolGraphASTWalker that ensure member and conformance
   relationships are correctly associated with the swift.extension symbol instead of
   the original type declaration's (extended nominal's) symbol where applicable
 - adaptions to SymbolGraphASTWalker that ensure swift.extension symbols are connected
   to their respective extended nominal's symbol using an extensionTo relationship

Testing:
- adds SymbolGraph tests that test behavior only relevant in
  -emit-extension-block-symbols mode
- adapts some SymbolGraph tests to additionally test similar behavior for
  extensions to external types in -emit-extension-block-symbols mode
- adapts some SymbolGraph tests to (additionally or exclusively) test the
  behavior with -emit-extension-block-symbols mode enabled

Bugfixes:
- fixes a bug where some conformsTo relationships implicated by the conformances
  declared on an extension to an external type were not emitted
  (see test/SymbolGraph/Relationships/ConformsTo/Indirect.swift)

Further changes:
- documents the strategy for naming and associating children declared in extensions
  to typealiases (see test/SymbolGraph/Relationships/MemberOf/Typealias.swift,
  test/SymbolGraph/Symbols/Names.swift)
2022-09-16 12:02:40 -06:00
QuietMisdreavus
f674b473ec introduce a @_documentation(...) attribute to influence SymbolGraphGen (#60242)
* add @_documentation(...) attribute to influence SymbolGraphGen

rdar://79049241
2022-09-06 14:12:42 -06:00
swift-ci
a89f14da17 Merge pull request #58578 from jsoref/spelling-test-symbolgraph
Spelling test symbolgraph
2022-07-22 17:58:06 -07:00
QuietMisdreavus
a83a17c88b Revert "consider requirements of an underscored protocol to also be underscored (take two) (#59531)" (#60096)
This reverts commit ababa79398.
2022-07-20 09:54:03 -06:00
QuietMisdreavus
ababa79398 consider requirements of an underscored protocol to also be underscored (take two) (#59531)
* Revert "Revert "consider requirements of an underscored protocol to also be underscored""

* make SkipsPublicUnderscore more resilient to non-determinism
2022-06-23 13:26:21 -06:00
QuietMisdreavus
5e065f0c31 Revert "consider requirements of an underscored protocol to also be underscored (#59480)"
This reverts commit a8ecfc94ec.
2022-06-16 20:33:34 -06:00
QuietMisdreavus
a8ecfc94ec consider requirements of an underscored protocol to also be underscored (#59480)
rdar://94336558
2022-06-16 14:20:14 -06:00
QuietMisdreavus
baa4123bd7 use getConformingProtocols when printing opaque generic types (#58991)
* use getConformingProtocols when printing opaque generic types

rdar://93610106
2022-05-24 18:29:14 -06:00
QuietMisdreavus
5bef9f2118 [SymbolGraphGen] Add filename and module name to symbols' doc comments (#58857)
* move symbol graph samples to the bottom of the file

* add information about a doc comment's file and module

rdar://81190369

* refactor: group file URI collection/serialization together

* test for docComment.module to identify externally-inherited docs
2022-05-24 11:36:13 -06:00
QuietMisdreavus
e8194155f0 properly handle isolated and _const type reprs when printing (#58729)
* properly handle `isolated` and `_const` type reprs when printing

rdar://92756749

* make switch non-exhaustive
2022-05-12 10:58:57 -06:00
Josh Soref
7695f70ffb spelling: because
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-05-01 03:40:12 -04:00
Franklin Schrans
7c5a8fd0a1 [SymbolGraph] Don't emit symbols that are unavailable on all platforms
rdar://88807294
2022-02-16 10:10:02 +00:00
QuietMisdreavus
f0c96b1c97 Merge pull request #41141 from apple/QuietMisdreavus/symgraph-synth-init
[SymbolGraph] don't filter out all implicit decls
2022-02-03 16:25:05 -07:00
Victoria Mitchell
08fe7c2134 [SymbolGraph] don't filter out all implicit decls 2022-02-02 12:57:40 -07:00
Victoria Mitchell
9bd3454566 [SymbolGraph] consider underscored symbols as private if they're internal
rdar://86294802
2022-02-02 09:56:50 -07:00
Victoria Mitchell
85fabb23ed include comments on SPI symbols when they're in symbol graphs 2021-06-30 16:13:08 -06:00
Victoria Mitchell
d281722589 add symbol-graph flag to include SPI symbols
rdar://70794131
2021-05-20 15:10:49 -06:00
Victoria Mitchell
f6e0ea2b0f update BatchMode test to fully match the source range data 2021-04-09 12:34:20 -06:00
Victoria Mitchell
8f3f06899a make ASTContext RawComment cache aware of serialization
rdar://76162972
2021-04-09 12:34:20 -06:00
QuietMisdreavus
84165788d8 Merge pull request #36422 from apple/QuietMisdreavus/enum-titles
[SymbolGraph] use fully qualified titles for enum elements
2021-03-15 10:04:14 -06:00
Victoria Mitchell
5d1b588273 use fully qualified titles for enum elements
rdar://74051287
2021-03-12 13:45:11 -07:00
Victoria Mitchell
fe4984b9a7 don't filter symbols if they have platform-agnostic availability 2021-03-10 09:17:22 -07:00
QuietMisdreavus
1451960933 [SymbolGraph] add a USR for RHS types in generic conformances (#36242)
rdar://70442228
2021-03-05 08:24:57 -07:00
Victoria Mitchell
db3685aa29 don't emit navigator name if it's the same as subHeading 2021-03-01 10:57:54 -07:00
Victoria Mitchell
1e5dc37538 don't print USRs for type parameters into symbol graphs
rdar://73478316
2021-01-28 11:15:54 -07:00