From 1cd6780cd3194a359f7f78a739b8c51dc6859167 Mon Sep 17 00:00:00 2001 From: maximkrouk Date: Sat, 7 Oct 2023 14:47:18 +0200 Subject: [PATCH] Introduce modularization --- .github/workflows/test-macos.yml | 2 +- Example/.gitignore | 8 +++ Example/Package.swift | 52 +++++++++++++++++++ .../MacroToolkitExample.swift | 0 .../AddAsyncMacro.swift | 0 .../AddBlockerMacro.swift | 0 .../AddCompletionHandlerMacro.swift | 0 .../CaseDetectionMacro.swift | 0 .../CodableKeyMacro.swift | 0 .../CustomCodableMacro.swift | 0 .../DictionaryStorageMacro.swift | 0 .../MacroToolkitExamplePlugin.swift | 0 .../MetaEnumMacro.swift | 0 .../OptionSetMacro.swift | 0 .../MacroToolkitTests.swift | 0 Package.resolved | 4 +- Package.swift | 47 ++++++++++------- .../DiagnosticBuilder.swift} | 38 -------------- Sources/DiagnosticBuilder/MacroError.swift | 16 ++++++ .../SimpleDiagnosticMessage.swift | 24 +++++++++ Sources/MacroToolkit/Exports.swift | 2 + .../ArrayType.swift | 0 .../Attribute.swift | 0 .../AttributeListElement.swift | 0 .../BooleanLiteral.swift | 0 .../ClassRestrictionType.swift | 0 .../CompositionType.swift | 0 .../ConditionalCompilationBlock.swift | 0 .../Decl.swift | 0 .../DeclGroup.swift | 0 .../Destructuring.swift | 0 Sources/MacroToolkitTypes/Diagnostics.swift | 1 + .../DictionaryType.swift | 0 .../Enum.swift | 0 .../EnumCase.swift | 0 .../EnumCaseAssociatedValueParameter.swift | 0 .../EnumCaseValue.swift | 0 .../Expr.swift | 0 .../ExprProtocol.swift | 0 .../FloatLiteral.swift | 0 .../Function.swift | 0 .../FunctionParameter.swift | 0 .../FunctionType.swift | 0 .../ImplicitlyUnwrappedOptionalType.swift | 0 .../IntegerLiteral.swift | 0 .../LiteralProtocol.swift | 0 .../MacroAttribute.swift | 0 .../MemberType.swift | 0 .../MetatypeType.swift | 0 .../MissingType.swift | 0 .../NilLiteral.swift | 0 .../OptionalType.swift | 0 .../PackExpansionType.swift | 0 .../PackReferenceType.swift | 0 .../RegexLiteral.swift | 0 .../SimpleType.swift | 0 .../SomeOrAnyType.swift | 0 .../String+Extensions.swift | 0 .../StringLiteral.swift | 0 .../Struct.swift | 0 .../SuppressedType.swift | 0 .../SwiftSyntax+Extensions.swift | 0 .../TupleType.swift | 0 .../Type.swift | 0 .../TypeProtocol.swift | 0 .../Variable.swift | 0 .../VariableBinding.swift | 0 67 files changed, 133 insertions(+), 61 deletions(-) create mode 100644 Example/.gitignore create mode 100644 Example/Package.swift rename {Sources => Example/Sources}/MacroToolkitExample/MacroToolkitExample.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/AddAsyncMacro.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/AddBlockerMacro.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/AddCompletionHandlerMacro.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/CaseDetectionMacro.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/CodableKeyMacro.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/CustomCodableMacro.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/DictionaryStorageMacro.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/MacroToolkitExamplePlugin.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/MetaEnumMacro.swift (100%) rename {Sources => Example/Sources}/MacroToolkitExamplePlugin/OptionSetMacro.swift (100%) rename {Tests/MacroToolkitTests => Example/Tests/MacroToolkitExampleTests}/MacroToolkitTests.swift (100%) rename Sources/{MacroToolkit/Diagnostics.swift => DiagnosticBuilder/DiagnosticBuilder.swift} (72%) create mode 100644 Sources/DiagnosticBuilder/MacroError.swift create mode 100644 Sources/DiagnosticBuilder/SimpleDiagnosticMessage.swift create mode 100644 Sources/MacroToolkit/Exports.swift rename Sources/{MacroToolkit => MacroToolkitTypes}/ArrayType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/Attribute.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/AttributeListElement.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/BooleanLiteral.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/ClassRestrictionType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/CompositionType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/ConditionalCompilationBlock.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/Decl.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/DeclGroup.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/Destructuring.swift (100%) create mode 100644 Sources/MacroToolkitTypes/Diagnostics.swift rename Sources/{MacroToolkit => MacroToolkitTypes}/DictionaryType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/Enum.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/EnumCase.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/EnumCaseAssociatedValueParameter.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/EnumCaseValue.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/Expr.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/ExprProtocol.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/FloatLiteral.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/Function.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/FunctionParameter.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/FunctionType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/ImplicitlyUnwrappedOptionalType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/IntegerLiteral.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/LiteralProtocol.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/MacroAttribute.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/MemberType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/MetatypeType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/MissingType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/NilLiteral.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/OptionalType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/PackExpansionType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/PackReferenceType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/RegexLiteral.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/SimpleType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/SomeOrAnyType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/String+Extensions.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/StringLiteral.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/Struct.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/SuppressedType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/SwiftSyntax+Extensions.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/TupleType.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/Type.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/TypeProtocol.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/Variable.swift (100%) rename Sources/{MacroToolkit => MacroToolkitTypes}/VariableBinding.swift (100%) diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index 75f9ce0..7745653 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -16,4 +16,4 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Test - run: swift test + run: cd "Example" && swift test diff --git a/Example/.gitignore b/Example/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/Example/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/Example/Package.swift b/Example/Package.swift new file mode 100644 index 0000000..8125f79 --- /dev/null +++ b/Example/Package.swift @@ -0,0 +1,52 @@ +// swift-tools-version: 5.9 + +import PackageDescription + +let package = Package( + name: "macro-toolkit-example", + products: [ + .library( + name: "Example", + targets: ["Example"] + ), + ], + dependencies: [ + // For basic functionality you can just depend on `swift-macro-toolkit` + // `swift-syntax` will be added as nested dependency. "SwiftSyntax", "SwiftDiagnostics", + // and "SwiftCompilerPlugin" targets will be importable + .package("../"), + + // However `swift-syntax` is needed for testing + // You may consider using https://github.com/pointfreeco/swift-macro-testing instead + .package( + url: "https://github.com/apple/swift-syntax.git", + exact: "509.0.0" + ), + ], + targets: [ + // Declares macros used by `swift-macro-toolkit` tests + .target( + name: "MacroToolkitExample", + dependencies: ["MacroToolkitExamplePlugin"] + ), + + // Implementations of macros tested by `swift-macro-toolkit` tests + .macro( + name: "MacroToolkitExamplePlugin", + dependencies: [ + .product(name: "MacroToolkit", package: "swift-macro-toolkit") + ] + ), + + .testTarget( + name: "MacroToolkitTests", + dependencies: [ + "MacroToolkitExample", + .product(name: "MacroToolkit", package: "swift-macro-toolkit") + .product(name: "SwiftSyntax", package: "swift-syntax"), + .product(name: "SwiftSyntaxMacros", package: "swift-syntax"), + .product(name: "SwiftSyntaxMacrosTestSupport", package: "swift-syntax"), + ] + ), + ] +) diff --git a/Sources/MacroToolkitExample/MacroToolkitExample.swift b/Example/Sources/MacroToolkitExample/MacroToolkitExample.swift similarity index 100% rename from Sources/MacroToolkitExample/MacroToolkitExample.swift rename to Example/Sources/MacroToolkitExample/MacroToolkitExample.swift diff --git a/Sources/MacroToolkitExamplePlugin/AddAsyncMacro.swift b/Example/Sources/MacroToolkitExamplePlugin/AddAsyncMacro.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/AddAsyncMacro.swift rename to Example/Sources/MacroToolkitExamplePlugin/AddAsyncMacro.swift diff --git a/Sources/MacroToolkitExamplePlugin/AddBlockerMacro.swift b/Example/Sources/MacroToolkitExamplePlugin/AddBlockerMacro.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/AddBlockerMacro.swift rename to Example/Sources/MacroToolkitExamplePlugin/AddBlockerMacro.swift diff --git a/Sources/MacroToolkitExamplePlugin/AddCompletionHandlerMacro.swift b/Example/Sources/MacroToolkitExamplePlugin/AddCompletionHandlerMacro.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/AddCompletionHandlerMacro.swift rename to Example/Sources/MacroToolkitExamplePlugin/AddCompletionHandlerMacro.swift diff --git a/Sources/MacroToolkitExamplePlugin/CaseDetectionMacro.swift b/Example/Sources/MacroToolkitExamplePlugin/CaseDetectionMacro.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/CaseDetectionMacro.swift rename to Example/Sources/MacroToolkitExamplePlugin/CaseDetectionMacro.swift diff --git a/Sources/MacroToolkitExamplePlugin/CodableKeyMacro.swift b/Example/Sources/MacroToolkitExamplePlugin/CodableKeyMacro.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/CodableKeyMacro.swift rename to Example/Sources/MacroToolkitExamplePlugin/CodableKeyMacro.swift diff --git a/Sources/MacroToolkitExamplePlugin/CustomCodableMacro.swift b/Example/Sources/MacroToolkitExamplePlugin/CustomCodableMacro.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/CustomCodableMacro.swift rename to Example/Sources/MacroToolkitExamplePlugin/CustomCodableMacro.swift diff --git a/Sources/MacroToolkitExamplePlugin/DictionaryStorageMacro.swift b/Example/Sources/MacroToolkitExamplePlugin/DictionaryStorageMacro.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/DictionaryStorageMacro.swift rename to Example/Sources/MacroToolkitExamplePlugin/DictionaryStorageMacro.swift diff --git a/Sources/MacroToolkitExamplePlugin/MacroToolkitExamplePlugin.swift b/Example/Sources/MacroToolkitExamplePlugin/MacroToolkitExamplePlugin.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/MacroToolkitExamplePlugin.swift rename to Example/Sources/MacroToolkitExamplePlugin/MacroToolkitExamplePlugin.swift diff --git a/Sources/MacroToolkitExamplePlugin/MetaEnumMacro.swift b/Example/Sources/MacroToolkitExamplePlugin/MetaEnumMacro.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/MetaEnumMacro.swift rename to Example/Sources/MacroToolkitExamplePlugin/MetaEnumMacro.swift diff --git a/Sources/MacroToolkitExamplePlugin/OptionSetMacro.swift b/Example/Sources/MacroToolkitExamplePlugin/OptionSetMacro.swift similarity index 100% rename from Sources/MacroToolkitExamplePlugin/OptionSetMacro.swift rename to Example/Sources/MacroToolkitExamplePlugin/OptionSetMacro.swift diff --git a/Tests/MacroToolkitTests/MacroToolkitTests.swift b/Example/Tests/MacroToolkitExampleTests/MacroToolkitTests.swift similarity index 100% rename from Tests/MacroToolkitTests/MacroToolkitTests.swift rename to Example/Tests/MacroToolkitExampleTests/MacroToolkitTests.swift diff --git a/Package.resolved b/Package.resolved index e9b8f10..df8d329 100644 --- a/Package.resolved +++ b/Package.resolved @@ -5,8 +5,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/SwiftPackageIndex/SPIManifest.git", "state" : { - "revision" : "59b957c55c274ae08da9aaa36efcaac3fb7a326c", - "version" : "0.19.0" + "revision" : "5569d7aca29b7d7f4f793ba997bfaa72ca99fca7", + "version" : "0.12.0" } }, { diff --git a/Package.swift b/Package.swift index c9d90cc..489ef8a 100644 --- a/Package.swift +++ b/Package.swift @@ -10,6 +10,14 @@ let package = Package( .library( name: "MacroToolkit", targets: ["MacroToolkit"] + ), + .library( + name: "DiagnosticBuilder", + targets: ["DiagnosticBuilder"] + ), + .library( + name: "MacroToolkitTypes", + targets: ["MacroToolkitTypes"] ) ], dependencies: [ @@ -17,42 +25,41 @@ let package = Package( url: "https://github.com/apple/swift-syntax.git", exact: "509.0.0" ), - .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.3.0"), - .package(url: "https://github.com/SwiftPackageIndex/SPIManifest.git", from: "0.12.0"), + .package( + url: "https://github.com/apple/swift-docc-plugin", + from: "1.3.0" + ), + .package( + url: "https://github.com/SwiftPackageIndex/SPIManifest.git", + .upToNextMinor(from: "0.12.0") + ), ], targets: [ - // Implementations of macros tested by tests - .macro( - name: "MacroToolkitExamplePlugin", + .target( + name: "MacroToolkit", dependencies: [ - .product(name: "SwiftSyntax", package: "swift-syntax"), - .product(name: "SwiftSyntaxMacros", package: "swift-syntax"), - .product(name: "SwiftCompilerPlugin", package: "swift-syntax"), - "MacroToolkit", + .target(name: "DiagnosticBuilder"), + .target(name: "MacroToolkitTypes") ] ), - // Declares macros used by tests - .target(name: "MacroToolkitExample", dependencies: ["MacroToolkitExamplePlugin"]), - .target( - name: "MacroToolkit", + name: "DiagnosticBuilder", dependencies: [ .product(name: "SwiftSyntax", package: "swift-syntax"), - .product(name: "SwiftSyntaxMacros", package: "swift-syntax"), + .product(name: "SwiftDiagnostics", package: "swift-syntax"), .product(name: "SwiftCompilerPlugin", package: "swift-syntax"), ] ), - .testTarget( - name: "MacroToolkitTests", + .target( + name: "MacroToolkitTypes", dependencies: [ - "MacroToolkitExample", - "MacroToolkit", + .target(name: "DiagnosticBuilder"), .product(name: "SwiftSyntax", package: "swift-syntax"), .product(name: "SwiftSyntaxMacros", package: "swift-syntax"), - .product(name: "SwiftSyntaxMacrosTestSupport", package: "swift-syntax"), + .product(name: "SwiftCompilerPlugin", package: "swift-syntax"), ] - ), + ) ] ) diff --git a/Sources/MacroToolkit/Diagnostics.swift b/Sources/DiagnosticBuilder/DiagnosticBuilder.swift similarity index 72% rename from Sources/MacroToolkit/Diagnostics.swift rename to Sources/DiagnosticBuilder/DiagnosticBuilder.swift index 41234df..9cda529 100644 --- a/Sources/MacroToolkit/Diagnostics.swift +++ b/Sources/DiagnosticBuilder/DiagnosticBuilder.swift @@ -2,44 +2,6 @@ import Foundation import SwiftDiagnostics import SwiftSyntax -// Taken from: https://github.com/DougGregor/swift-macro-examples/blob/f61ac7cdca8dc3557e53f86e7e03df1353908d3e/MacroExamplesPlugin/Diagnostics.swift -/// A simple diagnostic with a message, id, and severity. -public struct SimpleDiagnosticMessage: DiagnosticMessage, Error { - /// The human-readable message. - public let message: String - /// The unique diagnostic id (should be the same for all diagnostics produced by the same codepath). - public let diagnosticID: MessageID - /// The diagnostic's severity. - public let severity: DiagnosticSeverity - - /// Creates a new diagnostic message. - public init(message: String, diagnosticID: MessageID, severity: DiagnosticSeverity) { - self.message = message - self.diagnosticID = diagnosticID - self.severity = severity - } -} - -extension SimpleDiagnosticMessage: FixItMessage { - /// The unique fix-it id (should be the same for all fix-its produced by the same codepath). - public var fixItID: MessageID { diagnosticID } -} - -/// A generic macro error. If you are making a widely used macro I'd encourage you -/// to instead provide more detailed diagnostics through the diagnostics API that -/// macros have access to. -public struct MacroError: LocalizedError { - let message: String - - public init(_ message: String) { - self.message = message - } - - public var errorDescription: String? { - message - } -} - /// A way to create rich diagnostics with no unnecessary boilerplate code. Only provide the /// important details and the rest will be given sensible defaults. public struct DiagnosticBuilder { diff --git a/Sources/DiagnosticBuilder/MacroError.swift b/Sources/DiagnosticBuilder/MacroError.swift new file mode 100644 index 0000000..e6eea24 --- /dev/null +++ b/Sources/DiagnosticBuilder/MacroError.swift @@ -0,0 +1,16 @@ +import Foundation + +/// A generic macro error. If you are making a widely used macro I'd encourage you +/// to instead provide more detailed diagnostics through the diagnostics API that +/// macros have access to. +public struct MacroError: LocalizedError { + let message: String + + public init(_ message: String) { + self.message = message + } + + public var errorDescription: String? { + message + } +} diff --git a/Sources/DiagnosticBuilder/SimpleDiagnosticMessage.swift b/Sources/DiagnosticBuilder/SimpleDiagnosticMessage.swift new file mode 100644 index 0000000..923411c --- /dev/null +++ b/Sources/DiagnosticBuilder/SimpleDiagnosticMessage.swift @@ -0,0 +1,24 @@ +import SwiftDiagnostics + +// Taken from: https://github.com/DougGregor/swift-macro-examples/blob/f61ac7cdca8dc3557e53f86e7e03df1353908d3e/MacroExamplesPlugin/Diagnostics.swift +/// A simple diagnostic with a message, id, and severity. +public struct SimpleDiagnosticMessage: DiagnosticMessage, Error { + /// The human-readable message. + public let message: String + /// The unique diagnostic id (should be the same for all diagnostics produced by the same codepath). + public let diagnosticID: MessageID + /// The diagnostic's severity. + public let severity: DiagnosticSeverity + + /// Creates a new diagnostic message. + public init(message: String, diagnosticID: MessageID, severity: DiagnosticSeverity) { + self.message = message + self.diagnosticID = diagnosticID + self.severity = severity + } +} + +extension SimpleDiagnosticMessage: FixItMessage { + /// The unique fix-it id (should be the same for all fix-its produced by the same codepath). + public var fixItID: MessageID { diagnosticID } +} diff --git a/Sources/MacroToolkit/Exports.swift b/Sources/MacroToolkit/Exports.swift new file mode 100644 index 0000000..9b80868 --- /dev/null +++ b/Sources/MacroToolkit/Exports.swift @@ -0,0 +1,2 @@ +@_exported import DiagnosticBuilder +@_exported import MacroToolkitTypes diff --git a/Sources/MacroToolkit/ArrayType.swift b/Sources/MacroToolkitTypes/ArrayType.swift similarity index 100% rename from Sources/MacroToolkit/ArrayType.swift rename to Sources/MacroToolkitTypes/ArrayType.swift diff --git a/Sources/MacroToolkit/Attribute.swift b/Sources/MacroToolkitTypes/Attribute.swift similarity index 100% rename from Sources/MacroToolkit/Attribute.swift rename to Sources/MacroToolkitTypes/Attribute.swift diff --git a/Sources/MacroToolkit/AttributeListElement.swift b/Sources/MacroToolkitTypes/AttributeListElement.swift similarity index 100% rename from Sources/MacroToolkit/AttributeListElement.swift rename to Sources/MacroToolkitTypes/AttributeListElement.swift diff --git a/Sources/MacroToolkit/BooleanLiteral.swift b/Sources/MacroToolkitTypes/BooleanLiteral.swift similarity index 100% rename from Sources/MacroToolkit/BooleanLiteral.swift rename to Sources/MacroToolkitTypes/BooleanLiteral.swift diff --git a/Sources/MacroToolkit/ClassRestrictionType.swift b/Sources/MacroToolkitTypes/ClassRestrictionType.swift similarity index 100% rename from Sources/MacroToolkit/ClassRestrictionType.swift rename to Sources/MacroToolkitTypes/ClassRestrictionType.swift diff --git a/Sources/MacroToolkit/CompositionType.swift b/Sources/MacroToolkitTypes/CompositionType.swift similarity index 100% rename from Sources/MacroToolkit/CompositionType.swift rename to Sources/MacroToolkitTypes/CompositionType.swift diff --git a/Sources/MacroToolkit/ConditionalCompilationBlock.swift b/Sources/MacroToolkitTypes/ConditionalCompilationBlock.swift similarity index 100% rename from Sources/MacroToolkit/ConditionalCompilationBlock.swift rename to Sources/MacroToolkitTypes/ConditionalCompilationBlock.swift diff --git a/Sources/MacroToolkit/Decl.swift b/Sources/MacroToolkitTypes/Decl.swift similarity index 100% rename from Sources/MacroToolkit/Decl.swift rename to Sources/MacroToolkitTypes/Decl.swift diff --git a/Sources/MacroToolkit/DeclGroup.swift b/Sources/MacroToolkitTypes/DeclGroup.swift similarity index 100% rename from Sources/MacroToolkit/DeclGroup.swift rename to Sources/MacroToolkitTypes/DeclGroup.swift diff --git a/Sources/MacroToolkit/Destructuring.swift b/Sources/MacroToolkitTypes/Destructuring.swift similarity index 100% rename from Sources/MacroToolkit/Destructuring.swift rename to Sources/MacroToolkitTypes/Destructuring.swift diff --git a/Sources/MacroToolkitTypes/Diagnostics.swift b/Sources/MacroToolkitTypes/Diagnostics.swift new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Sources/MacroToolkitTypes/Diagnostics.swift @@ -0,0 +1 @@ + diff --git a/Sources/MacroToolkit/DictionaryType.swift b/Sources/MacroToolkitTypes/DictionaryType.swift similarity index 100% rename from Sources/MacroToolkit/DictionaryType.swift rename to Sources/MacroToolkitTypes/DictionaryType.swift diff --git a/Sources/MacroToolkit/Enum.swift b/Sources/MacroToolkitTypes/Enum.swift similarity index 100% rename from Sources/MacroToolkit/Enum.swift rename to Sources/MacroToolkitTypes/Enum.swift diff --git a/Sources/MacroToolkit/EnumCase.swift b/Sources/MacroToolkitTypes/EnumCase.swift similarity index 100% rename from Sources/MacroToolkit/EnumCase.swift rename to Sources/MacroToolkitTypes/EnumCase.swift diff --git a/Sources/MacroToolkit/EnumCaseAssociatedValueParameter.swift b/Sources/MacroToolkitTypes/EnumCaseAssociatedValueParameter.swift similarity index 100% rename from Sources/MacroToolkit/EnumCaseAssociatedValueParameter.swift rename to Sources/MacroToolkitTypes/EnumCaseAssociatedValueParameter.swift diff --git a/Sources/MacroToolkit/EnumCaseValue.swift b/Sources/MacroToolkitTypes/EnumCaseValue.swift similarity index 100% rename from Sources/MacroToolkit/EnumCaseValue.swift rename to Sources/MacroToolkitTypes/EnumCaseValue.swift diff --git a/Sources/MacroToolkit/Expr.swift b/Sources/MacroToolkitTypes/Expr.swift similarity index 100% rename from Sources/MacroToolkit/Expr.swift rename to Sources/MacroToolkitTypes/Expr.swift diff --git a/Sources/MacroToolkit/ExprProtocol.swift b/Sources/MacroToolkitTypes/ExprProtocol.swift similarity index 100% rename from Sources/MacroToolkit/ExprProtocol.swift rename to Sources/MacroToolkitTypes/ExprProtocol.swift diff --git a/Sources/MacroToolkit/FloatLiteral.swift b/Sources/MacroToolkitTypes/FloatLiteral.swift similarity index 100% rename from Sources/MacroToolkit/FloatLiteral.swift rename to Sources/MacroToolkitTypes/FloatLiteral.swift diff --git a/Sources/MacroToolkit/Function.swift b/Sources/MacroToolkitTypes/Function.swift similarity index 100% rename from Sources/MacroToolkit/Function.swift rename to Sources/MacroToolkitTypes/Function.swift diff --git a/Sources/MacroToolkit/FunctionParameter.swift b/Sources/MacroToolkitTypes/FunctionParameter.swift similarity index 100% rename from Sources/MacroToolkit/FunctionParameter.swift rename to Sources/MacroToolkitTypes/FunctionParameter.swift diff --git a/Sources/MacroToolkit/FunctionType.swift b/Sources/MacroToolkitTypes/FunctionType.swift similarity index 100% rename from Sources/MacroToolkit/FunctionType.swift rename to Sources/MacroToolkitTypes/FunctionType.swift diff --git a/Sources/MacroToolkit/ImplicitlyUnwrappedOptionalType.swift b/Sources/MacroToolkitTypes/ImplicitlyUnwrappedOptionalType.swift similarity index 100% rename from Sources/MacroToolkit/ImplicitlyUnwrappedOptionalType.swift rename to Sources/MacroToolkitTypes/ImplicitlyUnwrappedOptionalType.swift diff --git a/Sources/MacroToolkit/IntegerLiteral.swift b/Sources/MacroToolkitTypes/IntegerLiteral.swift similarity index 100% rename from Sources/MacroToolkit/IntegerLiteral.swift rename to Sources/MacroToolkitTypes/IntegerLiteral.swift diff --git a/Sources/MacroToolkit/LiteralProtocol.swift b/Sources/MacroToolkitTypes/LiteralProtocol.swift similarity index 100% rename from Sources/MacroToolkit/LiteralProtocol.swift rename to Sources/MacroToolkitTypes/LiteralProtocol.swift diff --git a/Sources/MacroToolkit/MacroAttribute.swift b/Sources/MacroToolkitTypes/MacroAttribute.swift similarity index 100% rename from Sources/MacroToolkit/MacroAttribute.swift rename to Sources/MacroToolkitTypes/MacroAttribute.swift diff --git a/Sources/MacroToolkit/MemberType.swift b/Sources/MacroToolkitTypes/MemberType.swift similarity index 100% rename from Sources/MacroToolkit/MemberType.swift rename to Sources/MacroToolkitTypes/MemberType.swift diff --git a/Sources/MacroToolkit/MetatypeType.swift b/Sources/MacroToolkitTypes/MetatypeType.swift similarity index 100% rename from Sources/MacroToolkit/MetatypeType.swift rename to Sources/MacroToolkitTypes/MetatypeType.swift diff --git a/Sources/MacroToolkit/MissingType.swift b/Sources/MacroToolkitTypes/MissingType.swift similarity index 100% rename from Sources/MacroToolkit/MissingType.swift rename to Sources/MacroToolkitTypes/MissingType.swift diff --git a/Sources/MacroToolkit/NilLiteral.swift b/Sources/MacroToolkitTypes/NilLiteral.swift similarity index 100% rename from Sources/MacroToolkit/NilLiteral.swift rename to Sources/MacroToolkitTypes/NilLiteral.swift diff --git a/Sources/MacroToolkit/OptionalType.swift b/Sources/MacroToolkitTypes/OptionalType.swift similarity index 100% rename from Sources/MacroToolkit/OptionalType.swift rename to Sources/MacroToolkitTypes/OptionalType.swift diff --git a/Sources/MacroToolkit/PackExpansionType.swift b/Sources/MacroToolkitTypes/PackExpansionType.swift similarity index 100% rename from Sources/MacroToolkit/PackExpansionType.swift rename to Sources/MacroToolkitTypes/PackExpansionType.swift diff --git a/Sources/MacroToolkit/PackReferenceType.swift b/Sources/MacroToolkitTypes/PackReferenceType.swift similarity index 100% rename from Sources/MacroToolkit/PackReferenceType.swift rename to Sources/MacroToolkitTypes/PackReferenceType.swift diff --git a/Sources/MacroToolkit/RegexLiteral.swift b/Sources/MacroToolkitTypes/RegexLiteral.swift similarity index 100% rename from Sources/MacroToolkit/RegexLiteral.swift rename to Sources/MacroToolkitTypes/RegexLiteral.swift diff --git a/Sources/MacroToolkit/SimpleType.swift b/Sources/MacroToolkitTypes/SimpleType.swift similarity index 100% rename from Sources/MacroToolkit/SimpleType.swift rename to Sources/MacroToolkitTypes/SimpleType.swift diff --git a/Sources/MacroToolkit/SomeOrAnyType.swift b/Sources/MacroToolkitTypes/SomeOrAnyType.swift similarity index 100% rename from Sources/MacroToolkit/SomeOrAnyType.swift rename to Sources/MacroToolkitTypes/SomeOrAnyType.swift diff --git a/Sources/MacroToolkit/String+Extensions.swift b/Sources/MacroToolkitTypes/String+Extensions.swift similarity index 100% rename from Sources/MacroToolkit/String+Extensions.swift rename to Sources/MacroToolkitTypes/String+Extensions.swift diff --git a/Sources/MacroToolkit/StringLiteral.swift b/Sources/MacroToolkitTypes/StringLiteral.swift similarity index 100% rename from Sources/MacroToolkit/StringLiteral.swift rename to Sources/MacroToolkitTypes/StringLiteral.swift diff --git a/Sources/MacroToolkit/Struct.swift b/Sources/MacroToolkitTypes/Struct.swift similarity index 100% rename from Sources/MacroToolkit/Struct.swift rename to Sources/MacroToolkitTypes/Struct.swift diff --git a/Sources/MacroToolkit/SuppressedType.swift b/Sources/MacroToolkitTypes/SuppressedType.swift similarity index 100% rename from Sources/MacroToolkit/SuppressedType.swift rename to Sources/MacroToolkitTypes/SuppressedType.swift diff --git a/Sources/MacroToolkit/SwiftSyntax+Extensions.swift b/Sources/MacroToolkitTypes/SwiftSyntax+Extensions.swift similarity index 100% rename from Sources/MacroToolkit/SwiftSyntax+Extensions.swift rename to Sources/MacroToolkitTypes/SwiftSyntax+Extensions.swift diff --git a/Sources/MacroToolkit/TupleType.swift b/Sources/MacroToolkitTypes/TupleType.swift similarity index 100% rename from Sources/MacroToolkit/TupleType.swift rename to Sources/MacroToolkitTypes/TupleType.swift diff --git a/Sources/MacroToolkit/Type.swift b/Sources/MacroToolkitTypes/Type.swift similarity index 100% rename from Sources/MacroToolkit/Type.swift rename to Sources/MacroToolkitTypes/Type.swift diff --git a/Sources/MacroToolkit/TypeProtocol.swift b/Sources/MacroToolkitTypes/TypeProtocol.swift similarity index 100% rename from Sources/MacroToolkit/TypeProtocol.swift rename to Sources/MacroToolkitTypes/TypeProtocol.swift diff --git a/Sources/MacroToolkit/Variable.swift b/Sources/MacroToolkitTypes/Variable.swift similarity index 100% rename from Sources/MacroToolkit/Variable.swift rename to Sources/MacroToolkitTypes/Variable.swift diff --git a/Sources/MacroToolkit/VariableBinding.swift b/Sources/MacroToolkitTypes/VariableBinding.swift similarity index 100% rename from Sources/MacroToolkit/VariableBinding.swift rename to Sources/MacroToolkitTypes/VariableBinding.swift