     return SwiftDocKey(rawValue: uidString)?.rawValue ??
         SwiftDeclarationKind(rawValue: uidString)?.rawValue ??
         SyntaxKind(rawValue: uidString)?.rawValue
+}
+
+/**
+Returns Swift's native String from NSUTF8StringEncoding bytes and length
+
+`String(UTF8String:)` creates `String` based on `NSString`.
+That is slower than Swift's native String on some scene.
+ 
+- parameter bytes: UnsafePointer<Int8>
+- parameter length: length of bytes
+
+- returns: String Swift's native String
+*/
+private func swiftStringFrom(bytes: UnsafePointer<Int8>, length: Int) -> String? {
+    let pointer = UnsafeMutablePointer<Int8>(bytes)
+    return String(bytesNoCopy: pointer, length: length, encoding: NSUTF8StringEncoding,
+        freeWhenDone: false).map { "\($0)" }
 }
 
 /// Represents a SourceKit request.

        For avoiding those penalty, replaces with enum's rawValue String if defined in SourceKitten.
        That does not cause calling `decomposedStringWithCanonicalMapping`.
        */
        let uidString = sourceKittenRawValueStringFrom(uidString) ?? uidString
        uidStringMap[uid] = uidString
        return uidString
    }

internal func stringForSourceKitUID(uid: sourcekitd_uid_t) -> String? {
    if let string = uidStringMap[uid] {
        return string
    }
    let length = sourcekitd_uid_get_length(uid)
    let pointer = UnsafeMutablePointer<Int8>(sourcekitd_uid_get_string_ptr(uid))
    if let uidString = String(bytesNoCopy: pointer, length: length,
        encoding: NSUTF8StringEncoding, freeWhenDone: false) {
        /*
        `String` created by `String(UTF8String:)` is based on `NSString`.
        `NSString` base `String` has performance penalty on getting `hashValue`.
