@@ -36,30 +36,49 @@ fileprivate func cannedStructDecl(arena: SyntaxArena) -> RawStructDeclSyntax {
36
36
37
37
final class RawSyntaxTests : XCTestCase {
38
38
39
- func testFactory( ) throws {
40
- withExtendedLifetime ( SyntaxArena ( ) ) { arena in
41
- let structDecl = cannedStructDecl ( arena: arena)
42
- XCTAssertEqual ( " \( structDecl. raw) " ,
39
+ func testFactory( ) throws {
40
+ withExtendedLifetime ( SyntaxArena ( ) ) { arena in
41
+ let structDecl = cannedStructDecl ( arena: arena)
42
+ XCTAssertEqual ( " \( structDecl. raw) " ,
43
43
"""
44
44
struct Foo {
45
45
}
46
46
""" )
47
- }
48
47
}
48
+ }
49
49
50
- func testAccessor( ) throws {
51
- withExtendedLifetime ( SyntaxArena ( ) ) { arena in
52
- let structDecl = cannedStructDecl ( arena: arena)
53
- XCTAssertEqual ( structDecl. identifier. tokenKind, . identifier)
54
- XCTAssertEqual ( structDecl. structKeyword. tokenText, " struct " )
55
- XCTAssertEqual ( structDecl. members. leftBrace. tokenText, " { " )
56
- XCTAssertEqual ( structDecl. members. members. elements. count, 0 )
50
+ func testAccessor( ) throws {
51
+ withExtendedLifetime ( SyntaxArena ( ) ) { arena in
52
+ let structDecl = cannedStructDecl ( arena: arena)
53
+ XCTAssertEqual ( structDecl. identifier. tokenKind, . identifier)
54
+ XCTAssertEqual ( structDecl. structKeyword. tokenText, " struct " )
55
+ XCTAssertEqual ( structDecl. members. leftBrace. tokenText, " { " )
56
+ XCTAssertEqual ( structDecl. members. members. elements. count, 0 )
57
57
58
- XCTAssert ( structDecl. is ( RawDeclSyntax . self) )
59
- XCTAssertNotNil ( structDecl. as ( RawDeclSyntax . self) )
60
- XCTAssertNil ( structDecl. as ( RawClassDeclSyntax . self) )
61
- XCTAssertFalse ( structDecl. is ( RawTypeSyntax . self) )
62
- }
58
+ XCTAssert ( structDecl. is ( RawDeclSyntax . self) )
59
+ XCTAssertNotNil ( structDecl. as ( RawDeclSyntax . self) )
60
+ XCTAssertNil ( structDecl. as ( RawClassDeclSyntax . self) )
61
+ XCTAssertFalse ( structDecl. is ( RawTypeSyntax . self) )
63
62
}
63
+ }
64
+
65
+ func testMaterializedToken( ) throws {
66
+ withExtendedLifetime ( SyntaxArena ( ) ) { arena in
67
+ let ident = RawTokenSyntax (
68
+ kind: . identifier, text: arena. intern ( " foo " ) ,
69
+ leadingTriviaPieces: [ ] , trailingTriviaPieces: [ ] ,
70
+ arena: arena)
71
+ XCTAssertEqual ( ident. tokenKind, . identifier)
72
+ XCTAssertEqual ( ident. tokenText, " foo " )
73
+ XCTAssertEqual ( ident. presence, . present)
74
+ XCTAssertEqual ( ident. description, " foo " )
75
+
76
+ let missingIdent = RawTokenSyntax ( missing: . identifier, arena: arena)
77
+ XCTAssertEqual ( missingIdent. presence, . missing)
78
+ XCTAssertEqual ( missingIdent. tokenText, " " )
79
+ XCTAssertEqual ( missingIdent. description, " " )
80
+ }
81
+ }
82
+
64
83
65
84
}
0 commit comments