<div dir="ltr">I think I like this direction in general. It feels more natural to have the preposition in the label than outside the parenthesis (and it&#39;s worth keeping the preposition because it improves clarity in most cases).<div><br></div><div>Here are some strange examples which need tweaking:</div><div><br></div><div><div>     + func accountType(withAccountTypeIdentifier typeIdentifier: String!) -&gt; ACAccountType!</div></div><div><br></div><div>Probably should just be &quot;withIdentifier&quot;.</div><div><br></div><div><div>     + func comparePositionInDecodeOrderWithPosition(of cursor: AVSampleCursor) -&gt; ComparisonResult</div></div><div><br></div><div>I would suggest comparePositionInDecodeOrder(withPositionOf cursor: AVSampleCursor). Tricky because there are two prepositions.</div><div><br></div><div><div>      func componentsPassingTest(testHandler: (AVAudioUnitComponent, UnsafeMutablePointer&lt;ObjCBool&gt;) -&gt; Bool) -&gt; [AVAudioUnitComponent]</div><div> -    func componentsMatching(desc: AudioComponentDescription) -&gt; [AVAudioUnitComponent]</div><div> +   func components(matching desc: AudioComponentDescription) -&gt; [AVAudioUnitComponent]</div></div><div><br></div><div>Should &quot;passingTest&quot; become the first label?</div><div><br></div><div><div>     -  class func exportPresetsCompatibleWith(asset: AVAsset) -&gt; [String]</div><div>     +  class func exportPresetsCompatible(withAsset asset: AVAsset) -&gt; [String]</div></div><div><br></div><div>This is not an improvement. I&#39;d suggest exportPresets(compatibleWith asset: AVAsset), but that doesn&#39;t really fit under the current rules. Maybe a special case for [noun][adjective][preposition]?<br></div><div><br></div><div><div>    -  func compatibleTrackFor(compositionTrack: AVCompositionTrack) -&gt; AVAssetTrack?</div><div>    +  func compatibleTrack(forCompositionTrack compositionTrack: AVCompositionTrack) -&gt; AVAssetTrack?</div></div><div><br></div><div>Does this indicate that some other suffix-matching rules are no longer being applied? I&#39;d have expected compatibleTrack(for compositionTrack: AVCompositionTrack). I also see other examples like renewCredentials(forAccount account: ACAccount, ...).</div><div><br></div><div><div>      func createSampleBufferFor(request: AVSampleBufferRequest) -&gt; CMSampleBuffer</div></div><div><br></div><div>Why wasn&#39;t this changed?</div><div><br></div><div><div>      -  class func typeOf(property property: String!) -&gt; ABPropertyType</div><div>      +  class func type(ofProperty property: String!) -&gt; ABPropertyType</div></div><div><br></div><div>I don&#39;t really like either of these. Maybe we need special rules for &quot;of&quot; ?</div><div><br></div><div><br></div><div>If anyone else is worried about special cases, I just looked this up: there&#39;s a clang __attribute__((swift_name(&quot;x&quot;))), or NS_SWIFT_NAME(x), which can be used to expose Obj-C methods to Swift with particular custom names.</div>







<div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div>Jacob<br></div></div></div></div>
<br><div class="gmail_quote">On Tue, Feb 9, 2016 at 11:18 AM, Dave Abrahams via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
Hi everybody,<br>
<br>
Having looked at some examples, the API guidelines working group members<br>
that were present this morning agreed we really want prepositions inside<br>
the parentheses of method calls.<br>
<br>
Here are some results for the importer; we&#39;re still tuning some of the<br>
heuristics but overall we feel very good about the preposition<br>
placement:<br>
<br>
  <a href="https://github.com/apple/swift-3-api-guidelines-review/commit/da7e512cf75688e6da148dd2a8b27ae9efcb8821?diff=split" rel="noreferrer" target="_blank">https://github.com/apple/swift-3-api-guidelines-review/commit/da7e512cf75688e6da148dd2a8b27ae9efcb8821?diff=split</a><br>
<br>
Note that this is not final wording, but here are the guidelines we&#39;re<br>
working with for first argument labels:<br>
<br>
A. Try to form a grammatical phrase including the first argument and<br>
   describing the primary semantics at the call site.<br>
<br>
B. The first argument gets a label when and only when:<br>
<br>
   1. It does not form part of a grammatical phrase describing the<br>
      primary semantics.  For example,<br>
      ```<br>
      x.dismiss(animated: y)<br>
      ```<br>
      [more examples needed]<br>
      Note that parameters with defaults never describe the primary<br>
      semantics. so are always labeled.<br>
      ```<br>
      func invert(options options: SomeOptionSet = []) // yes<br>
      func invert(_ options: SomeOptionSet = [])       // no<br>
      ```<br>
<br>
   2. The method is a factory method; such calls should mirror<br>
      initializers, with no preposition.  For example,<br>
      ```<br>
      let x = UIColor(red: r, green: g, blue: b)<br>
      let y = monitor.makeColor(red: r, green: g, blue: b)<br>
      ```<br>
<br>
   3. It is part of a prepositional phrase<br>
<br>
     a. The label normally starts with the preposition.<br>
        For example,<br>
        ```<br>
        x.move(from: a, to: b)<br>
        x.loadValues(forKeys: [&quot;fox&quot;, &quot;box&quot;, &quot;lox&quot;])<br>
        ```<br>
     b. ...unless the preposition would break a very tight association<br>
        between parameters:<br>
        ```<br>
        x.moveTo(x: a, y: b)<br>
        ```<br>
        [encourage grouping parameters into higher-level concepts,<br>
        e.g. Point, in these cases]<br>
<br>
<br>
<br>
Feedback most welcome, of course.<br>
<span class=""><font color="#888888">--<br>
-Dave<br>
<br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</font></span></blockquote></div><br></div></div>