forked from swiftlang/swift
- Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathast-dump-json-objc-no-crash.swift
30 lines (24 loc) · 1.15 KB
/
ast-dump-json-objc-no-crash.swift
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
// This test is by no means exhaustive, but attempts to catch any places in the
// implementation of ASTDumper's JSON where it might do an unprotected call to
// some method on AST node that would cause an assertion due to some
// unsatisfied precondition. This is a good place to put regression tests if
// issues are discovered in the future.
//
// It is separate from ast-dump-json-no-crash.swift since we don't want that
// other test to require Obj-C interop.
// REQUIRES: objc_interop
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -target %target-swift-5.9-abi-triple -enable-objc-interop -swift-version 6 -parse-as-library -dump-ast -dump-ast-format json %s -module-name main -o -
import Foundation
@objcpublicclassNotRenamed:NSObject{
@objcpublicvarproperty:Int=0
}
@objc(PFXRenamed)@objcMemberspublicclassRenamed:NSObject{
@objc(f1)publicfunc f1(){}
@objc(f2WithInteger:)publicfunc f2(_ x:Int){}
@objc(f3withInteger:error:)publicfunc f3(_ x:Int)throws{}
@objc(objcnested)publicvarnested:NotRenamed=.init()
}
func f(){
_ = #selector(Renamed.f1)
_ = #keyPath(Renamed.nested.property)
}