Skip to content

Commit d4650db

Browse files
committed
chore: prepare for migration to swift-standards org
1 parent 77cd0c9 commit d4650db

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

Sources/EmailAddress/EmailAddress.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,19 @@ extension EmailAddress {
9595
public typealias DomainTypealias = Domain
9696
extension EmailAddress {
9797
/// The domain part (after @)
98+
///
99+
/// - Note: Uses `try!` for RFC format conversions because EmailAddress initialization
100+
/// ensures all RFC variants contain valid, compatible domains. Converting from an already-validated
101+
/// RFC 5322 or RFC 6531 domain to RFC 1123 format cannot fail since validation occurred during init.
98102
public var domain: _Domain {
99103
if let domain = rfc5321?.domain {
100104
return .init(rfc5321: domain)
101105
}
102106
if let domain = rfc5322?.domain {
107+
// Safe: RFC 5322 domain was validated during EmailAddress init
103108
return try! .init(rfc1123: domain)
104109
}
110+
// Safe: RFC 6531 domain was validated during EmailAddress init
105111
return try! .init(rfc1123: rfc6531.domain)
106112
}
107113

@@ -121,15 +127,21 @@ extension EmailAddress {
121127
/// Returns a normalized version of the email address
122128
/// - For ASCII addresses, uses the most restrictive format available (5321 > 5322 > 6531)
123129
/// - For international addresses, uses RFC 6531
130+
///
131+
/// - Note: Uses `try!` when reconstructing EmailAddress from already-validated RFC formats.
132+
/// Since these RFC variants were validated during the original EmailAddress initialization,
133+
/// recreating an EmailAddress from them is guaranteed to succeed.
124134
public func normalized() -> EmailAddress {
125135
// Already normalized if we only have RFC 6531
126136
guard isASCII else { return self }
127137

128138
// Use most restrictive format available
129139
if let rfc5321 = self.rfc5321 {
140+
// Safe: Reconstructing from already-validated RFC 5321 format
130141
return try! EmailAddress(rfc5321: rfc5321)
131142
}
132143
if let rfc5322 = self.rfc5322 {
144+
// Safe: Reconstructing from already-validated RFC 5322 format
133145
return try! EmailAddress(rfc5322: rfc5322)
134146
}
135147
return self

0 commit comments

Comments
 (0)