@@ -364,12 +364,25 @@ public struct ResolvedTopicReference: Hashable, Codable, Equatable, CustomString
364
364
let path : String
365
365
let fragment : String ?
366
366
let sourceLanguages : Set < SourceLanguage >
367
- let url : URL
368
- let pathComponents : [ String ]
369
- let absoluteString : String
370
-
371
367
let identifierPathAndFragment : String
372
368
369
+ lazy var url : URL = {
370
+ var components = URLComponents ( )
371
+ components. scheme = ResolvedTopicReference . urlScheme
372
+ components. host = bundleIdentifier
373
+ components. path = path
374
+ components. fragment = fragment
375
+ return components. url!
376
+ } ( )
377
+
378
+ lazy var pathComponents : [ String ] = {
379
+ return url. pathComponents
380
+ } ( )
381
+
382
+ lazy var absoluteString : String = {
383
+ return url. absoluteString
384
+ } ( )
385
+
373
386
init (
374
387
bundleIdentifier: String ,
375
388
path: String ,
@@ -381,15 +394,6 @@ public struct ResolvedTopicReference: Hashable, Codable, Equatable, CustomString
381
394
self . fragment = fragment
382
395
self . sourceLanguages = sourceLanguages
383
396
self . identifierPathAndFragment = " \( bundleIdentifier) \( path) \( fragment ?? " " ) "
384
-
385
- var components = URLComponents ( )
386
- components. scheme = ResolvedTopicReference . urlScheme
387
- components. host = bundleIdentifier
388
- components. path = path
389
- components. fragment = fragment
390
- url = components. url!
391
- pathComponents = url. pathComponents
392
- absoluteString = url. absoluteString
393
397
}
394
398
}
395
399
}
0 commit comments