Skip to content

Commit d22cc0a

Browse files
authored
Merge pull request #450 from kimdv/kimdv/add-MemberAccessExprConvenienceInitializers
2 parents 66dd598 + b193e71 commit d22cc0a

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2014 - 2022 Apple Inc. and the Swift project authors
6+
// Licensed under Apache License v2.0 with Runtime Library Exception
7+
//
8+
// See https://swift.org/LICENSE.txt for license information
9+
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10+
//
11+
//===----------------------------------------------------------------------===//
12+
13+
import SwiftSyntax
14+
15+
extension MemberAccessExpr {
16+
/// Creates a `MemberAccessExpr` using the provided parameters.
17+
public init(
18+
base: ExpressibleAsExprBuildable? = nil,
19+
dot: TokenSyntax = .period,
20+
name: String,
21+
declNameArguments: ExpressibleAsDeclNameArguments? = nil
22+
) {
23+
self.init(base: base, dot: dot, name: SyntaxFactory.makeIdentifier(name), declNameArguments: declNameArguments)
24+
}
25+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import XCTest
2+
import SwiftSyntax
3+
import SwiftSyntaxBuilder
4+
5+
final class MemberAccessTests: XCTestCase {
6+
func testMemberAccessExprConvenienceInitializers() {
7+
let leadingTrivia = Trivia.garbageText("")
8+
9+
let builder = MemberAccessExpr(base: "Foo", name: "bar")
10+
let syntax = builder.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
11+
12+
var text = ""
13+
syntax.write(to: &text)
14+
15+
XCTAssertEqual(text, "␣Foo.bar")
16+
}
17+
}

0 commit comments

Comments
 (0)