Rintaro Ishizaki
Rintaro Ishizaki
Cherry-pick #66417 into release/5.9 rdar://110364154
`SwiftSyntaxMacroExpansion` and `SwiftCompilerPluginMessageHandling` are only intended to be used from internal modules like `SwiftCompilerPlugin`, or `ASTGen` and `swift-plugin-server` in swift repository. Make all the public symbols SPI so other third...
They were declared as `Keyword` only for `TokenSpecs` (DeclarationAttributeWithSpecialSyntax and TypeAttribute), the attribute names are always parsed as `TypeSyntax` so those keywords weren't even appear in the parsed syntax tree....
* Introduce `ParsingOptions` option-set type with `bodySkipping` member, and add `options: ParsingOptions` to all `Parser.parse(...)` functions * Skipped body is represented as a newly introduced `SkippedDeclSyntax` * `SkippedDeclSyntax` contains only...
`LibraryPluginProvider` is a `PluginProvider` that can load shared library plugins at runtime. --- in the near future, combined with https://github.com/apple/swift-syntax/pull/2301, in `ASTGen`, we can easily create in-process "plugin server" like...
Separate message listening logic from `CompilerPluginMessgeHandler` to new `CompilerPluginMessageListener`, so `CompilerPluginMessageHandler` can be used independently (in the future) without `MessageConnection` `CompilerPluginMessageHandler.handleMessage()` now returns a response object instead of sending it...
Move `PluginProvider` logic to `SwiftCompilerPluginMessageHandling` module so the compiler can reuse that logic for the in-process plugins (in follow-ups) Remove `CPluginServer` as nothing uses it anymore
Just for testing
`compareMemory(_:_:_:)` was to abstract `memcmp` or `Collection.elementsEqual(_:)` depending on the platform or build settings. Now that we consistently imports "platform" system module, so `memcmp` is reliably available.
Degyb update for https://github.com/apple/swift/pull/40316