== Why is this an issue? Trailing closure syntax can only be used with the last argument to a function call. Place a function type parameter anywhere else in the list and you limit the options of the caller. === Noncompliant code example [source,swift] ---- func foo(p1: Int->Int, p2: Int){ // Noncompliant; p1 should come at the end print(p1(p2)) } foo({a in a * 2}, 42) // Trailing closure syntax can't be used here ---- === Compliant solution [source,swift] ---- func foo(p2: Int, p1: Int->Int){ print(p1(p2)) } foo(42) {a in a * 2} ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Move "x" to the end of the parameter list. ''' == Comments And Links (visible only on this page) === on 21 May 2015, 17:33:56 Ann Campbell wrote: \[~freddy.mallet] what do you think of the SQALE characteristic? I'm not sure what to pick for rules about making your API easier to use. === on 27 May 2015, 09:01:12 Freddy Mallet wrote: Hi @Ann, according to the description of this rule the code provided in the "Non-Compliant Code Example" will lead to a runtime error so I would associate this rule to the SQALE "Reliability " characteristic. But at the same time I'm not sure to fully understand this rule. === on 27 May 2015, 19:13:52 Ann Campbell wrote: Thanks for weighing in [~freddy.mallet], but what we're looking at in the first line of the Noncompliant example is the function declaration, and as-is, you cannot use trailing closure syntax to call it. (This code made my eyes cross, and [~elena.vilchik] had to talk to me like I was 6 when explaining it.) So this really is just about making your API easier to use, & I'm afraid the exactly right SQALE category doesn't exist for it. :-/ endif::env-github,rspecator-view[]