1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2024 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
@_spi(RawSyntax) import SwiftSyntax
import XCTest
class IdentifierTests: XCTestCase {
public func testIdentifierInit() {
let someToken = TokenSyntax(stringLiteral: "someToken")
XCTAssertNotNil(Identifier(someToken))
let nonIdentifierToken = DeclSyntax("let a = 1").firstToken(viewMode: .all)!
XCTAssertNil(Identifier(nonIdentifierToken))
}
public func testName() {
let basicToken = TokenSyntax(stringLiteral: "basicToken")
XCTAssertEqual(Identifier(basicToken)?.name, "basicToken")
let backtickedToken = TokenSyntax(stringLiteral: "`backtickedToken`")
XCTAssertEqual(Identifier(backtickedToken)?.name, "backtickedToken")
let multiBacktickedToken = TokenSyntax(stringLiteral: "```multiBacktickedToken```")
XCTAssertEqual(Identifier(multiBacktickedToken)?.name, "``multiBacktickedToken``")
let unicodeNormalizedToken = TokenSyntax(stringLiteral: "\u{e0}") // "a`"
XCTAssertEqual(Identifier(unicodeNormalizedToken)?.name, "\u{61}\u{300}") // "à"
}
public func testIdentifier() {
let token = TokenSyntax(stringLiteral: "sometoken")
withExtendedLifetime(token) { token in
XCTAssertEqual(token.identifier?.raw.name, SyntaxText("sometoken"))
}
}
public func testTokenSyntaxIdentifier() throws {
let tokenSyntax = TokenSyntax(stringLiteral: "sometoken")
XCTAssertEqual(tokenSyntax.identifier, Identifier(tokenSyntax))
let nonIdentifierToken = try XCTUnwrap(DeclSyntax("let a = 1").firstToken(viewMode: .all))
XCTAssertNil(nonIdentifierToken.identifier)
}
}
|