Skip to content

Commit

Permalink
Update and commit even though the tests fail.
Browse files Browse the repository at this point in the history
  • Loading branch information
griotspeak committed Jun 23, 2024
1 parent 48a49f6 commit be0da33
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 25 deletions.
7 changes: 4 additions & 3 deletions Package.resolved
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"originHash" : "99d91c19240d69188427b3369e2f8d6c77ff744ee6fe9da52573b26817d1b336",
"pins" : [
{
"identity" : "swift-syntax",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-syntax.git",
"state" : {
"revision" : "64889f0c732f210a935a0ad7cda38f77f876262d",
"version" : "509.1.1"
"revision" : "4c6cc0a3b9e8f14b3ae2307c5ccae4de6167ac2c",
"version" : "600.0.0-prerelease-2024-06-12"
}
}
],
"version" : 2
"version" : 3
}
4 changes: 2 additions & 2 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version: 5.9
// swift-tools-version: 6.0
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription
Expand All @@ -22,7 +22,7 @@ let package = Package(
// Depend on the Swift 5.9 release of SwiftSyntax
.package(
url: "https://github.com/apple/swift-syntax.git",
from: "509.0.0"
from: "600.0.0-latest"
),
],
targets: [
Expand Down
2 changes: 1 addition & 1 deletion Sources/DiscriminatedUnion/DiscriminatedUnion.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
names: named(Discriminant), named(discriminant)
)
@attached(extension, conformances: DiscriminatedUnion)
public macro DiscriminatedUnion() = #externalMacro(
public macro discriminatedUnion() = #externalMacro(
module: "DiscriminatedUnionMacros",
type: "DiscriminatedUnionMacro")

Expand Down
2 changes: 1 addition & 1 deletion Sources/DiscriminatedUnionClient/main.swift
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import DiscriminatedUnion


@DiscriminatedUnion
@discriminatedUnion
enum Pet {
case dog
case cat(curious: Bool)
Expand Down
2 changes: 1 addition & 1 deletion Sources/DiscriminatedUnionMacros/CaseMacroDiagnostic.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ enum CaseMacroDiagnostic {
switch self {
case .notAnEnum(let decl):
// TODO:
return "'@DiscriminatedUnion' can only be attached to an enum, not \(decl.descriptiveDeclKind(withArticle: true))"
return "'@discriminatedUnion' can only be attached to an enum, not \(decl.descriptiveDeclKind(withArticle: true))"
}
}

Expand Down
63 changes: 46 additions & 17 deletions Tests/DiscriminatedUnionTests/DiscriminatedUnionTests.swift
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import SwiftSyntax
import SwiftSyntaxBuilder
import SwiftSyntaxMacros
import SwiftSyntaxMacrosTestSupport
import XCTest


// Macro implementations build for the host, so the corresponding module is not available when cross-compiling. Cross-compiled tests may still make use of the macro itself in end-to-end tests.
#if canImport(DiscriminatedUnionMacros)
import DiscriminatedUnionMacros
Expand All @@ -16,30 +17,58 @@ final class DiscriminatedUnionTests: XCTestCase {
#if canImport(DiscriminatedUnionMacros)
assertMacroExpansion(
"""
@DiscriminatedUnion
@discriminatedUnion
enum Pet {
case dog
case cat(curious: Bool)
case parrot
case snake
}
""",
expandedSource: """
@DiscriminatedUnion
enum Pet {
case dog
case cat(curious: Bool)
case parrot
case snake

enum Discriminant: Hashable {
case dog
case cat
case parrot
case snake
}
}
""",
expandedSource:
"""
enum Pet {
case dog
case cat(curious: Bool)
case parrot
case snake
public enum Discriminant: DiscriminantType {
case dog
case cat
case parrot
case snake
public var hasAssociatedType: Bool {
switch self {
case .dog:
false // nil
case .cat:
true // Optional("curious: Bool")
case .parrot:
false // nil
case .snake:
false // nil
}
}
}
public var discriminant: Discriminant {
switch self {
case .dog:
return .dog
case .cat:
return .cat
case .parrot:
return .parrot
case .snake:
return .snake
}
}
}
""",
macros: testMacros
)
#else
Expand Down

0 comments on commit be0da33

Please # to comment.