mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
This change makes us treat it exactly as we do 'init'. We don't allow renaming the base name,
and don't fail if the basename doesn't match for calls.
Also:
- explicit init calls/references like `MyType.init(42)` are now reported with
'init' as a keywordBase range, rather than nothing.
- cursor info no longer reports rename as available on init/callAsFunction
calls without arguments, as there's nothing to rename in that case.
- Improved detection of when a referenced function is a call (rather than
reference) across syntactic rename, cursor-info, and indexing.
Resolves rdar://problem/60340429
19 lines
535 B
Swift
19 lines
535 B
Swift
struct Adder {
|
|
var base: Int
|
|
|
|
func callAsFunction(x: Int, y: Int) -> Int {
|
|
return base + x + y
|
|
}
|
|
}
|
|
|
|
let /*test:def*/add3 = Adder(base: 3)
|
|
/*test:ref*/add3(x: 10, y: 11)
|
|
let blah = /*test:ref*/add3.callAsFunction(x:y:)
|
|
|
|
// RUN: %empty-directory(%t.ranges)
|
|
// RUN: %refactor -find-rename-ranges -source-filename %s -pos="test" -old-name "add3" >> %t.ranges/call-as-function-base.swift.expected
|
|
// RUN: diff -u %S/FindRangeOutputs/call-as-function-base.swift.expected %t.ranges/call-as-function-base.swift.expected
|
|
|
|
|
|
|