summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| | | * | | | | | | | | | | | | | Partial fix for SI-7046Miles Sabin2016-08-1521-13/+252
| | | | |/ / / / / / / / / / / / | | | |/| | | | | | | | | | | |
| | * | | | | | | | | | | | | | Merge pull request #5341 from milessabin/topci/si-9760-backportAdriaan Moors2016-10-182-1/+18
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SI-9760 Fix for higher-kinded GADT refinement
| | | * | | | | | | | | | | | | | SI-9760 Fix for higher-kinded GADT refinementMiles Sabin2016-08-152-1/+18
| | | |/ / / / / / / / / / / / /
| * | | | | | | | | | | | | | | Merge 2.11.x into 2.12.x, including #5239, #5240Adriaan Moors2016-10-182-2/+6
| |\| | | | | | | | | | | | | |
| | * | | | | | | | | | | | | | Merge pull request #5240 from som-snytt/issue/9336-paste-tabAdriaan Moors2016-10-181-2/+5
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SI-9336 Enable paste detect in jline
| | | * | | | | | | | | | | | | | SI-9336 Enable paste detect in jlineSom Snytt2016-06-211-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the next char is available immediately after a tab, the tab is taken raw instead of invoking completion.
| | * | | | | | | | | | | | | | | Merge pull request #5239 from martijnhoekstra/doc_capitalizeAdriaan Moors2016-10-181-0/+1
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Doc: capitalize doesn't handle non-BMP characters
| | | * | | | | | | | | | | | | | | doc: capitalize only works on BMP charactersMartijn Hoekstra2016-06-211-0/+1
| | | |/ / / / / / / / / / / / / /
| * | | | | | | | | | | | | | | | Merge 2.11.x into 2.12.xAdriaan Moors2016-10-180-0/+0
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Skipping: - #5444 -- implemented in ef14a9a - #5218 -- old backend is gone - #5348 -- test for issue resolved in 2.12.x
| | * | | | | | | | | | | | | | | Merge pull request #5348 from som-snytt/issue/9841-test-2.11Adriaan Moors2016-10-181-0/+24
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SI-9841 Regression test for init SO
| | | * | | | | | | | | | | | | | | SI-9841 Regression test for init SOSom Snytt2016-08-241-0/+24
| | | | |/ / / / / / / / / / / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Verifies example behavior in ticket.
| | * | | | | | | | | | | | | | | Merge pull request #5218 from retronym/ticket/9806Jason Zaugg2016-10-182-2/+20
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | |_|_|_|/ / / / / / / / / / / | | |/| | | | | | | | | | | | | | SI-9806 Fix incorrect codegen with optimizer, constants, try/catch
| | | * | | | | | | | | | | | | | SI-9806 Fix incorrect codegen with optimizer, constants, try/catchJason Zaugg2016-06-072-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The constant optimizer phase performs abstract interpretation of the icode representation of the progam in order to eliminate dead code. For each basic block, the possible and impossible states of each local variable is computed for both a normal and an exceptional exit. A bug in this code incorrectly tracked state for exception exits. This appears to have been an oversight: the new state was computed at each instruction, but it was discarded rather than folded through the intepreter.
| | * | | | | | | | | | | | | | | Merge pull request #5444 from retronym/topic/typer-debugJason Zaugg2016-10-161-1/+1
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | |_|_|_|/ / / / / / / / / / / | | |/| | | | | | | | | | | | | | Avoid tripping cyclic errors under -Ytyper-debug
| | | * | | | | | | | | | | | | | Avoid tripping cyclic errors under -Ytyper-debugJason Zaugg2016-10-071-1/+1
| | |/ / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Manually tested with: ``` % cat sandbox/test.scala package p { object X { def f(i: Int) = ??? ; def f(s: String) = ??? } object Main { val res = X.f(3.14) } } % qscalac -Ytyper-debug sandbox/test.scala |-- p EXPRmode-POLYmode-QUALmode (site: package <root>) | \-> p.type |-- object X BYVALmode-EXPRmode (site: package p) | |-- super EXPRmode-POLYmode-QUALmode (silent: <init> in X) | | |-- this EXPRmode (silent: <init> in X) | | | \-> p.X.type | | \-> p.X.type | |-- def f BYVALmode-EXPRmode (site: object X) | | |-- $qmark$qmark$qmark EXPRmode (site: method f in X) | | | \-> Nothing | | |-- Int TYPEmode (site: value i in X) | | | \-> Int | | |-- Int TYPEmode (site: value i in X) | | | \-> Int | | \-> [def f] (i: Int)Nothing | |-- def f BYVALmode-EXPRmode (site: object X) | | |-- $qmark$qmark$qmark EXPRmode (site: method f in X) | | | \-> Nothing | | |-- String TYPEmode (site: value s in X) | | | [adapt] String is now a TypeTree(String) | | | \-> String | | |-- String TYPEmode (site: value s in X) | | | [adapt] String is now a TypeTree(String) | | | \-> String | | \-> [def f] (s: String)Nothing | \-> [object X] p.X.type |-- object Main BYVALmode-EXPRmode (site: package p) | |-- X.f(3.14) EXPRmode (site: value res in Main) | | |-- X.f BYVALmode-EXPRmode-FUNmode-POLYmode (silent: value res in Main) | | | |-- X EXPRmode-POLYmode-QUALmode (silent: value res in Main) | | | | \-> p.X.type | | | \-> (s: String)Nothing <and> (i: Int)Nothing | | |-- 3.14 BYVALmode-EXPRmode (silent: value res in Main) | | | \-> Double(3.14) | | [search #1] start `<?>`, searching for adaptation to pt=Double => String (silent: value res in Main) implicits disabled | | [search #2] start `<?>`, searching for adaptation to pt=(=> Double) => String (silent: value res in Main) implicits disabled | | [search #3] start `<?>`, searching for adaptation to pt=Double => Int (silent: value res in Main) implicits disabled | | 1 implicits in companion scope | | [search #4] start `<?>`, searching for adaptation to pt=(=> Double) => Int (silent: value res in Main) implicits disabled | | 1 implicits in companion scope | | second try: <error> and 3.14 | | [search #5] start `p.X.type`, searching for adaptation to pt=p.X.type => ?{def f(x$1: ? >: Double(3.14)): ?} (silent: value res in Main) implicits disabled | | [search #6] start `p.X.type`, searching for adaptation to pt=(=> p.X.type) => ?{def f(x$1: ? >: Double(3.14)): ?} (silent: value res in Main) implicits disabled sandbox/test.scala:4: error: overloaded method value f with alternatives: (s: String)Nothing <and> (i: Int)Nothing cannot be applied to (Double) val res = X.f(3.14) ^ ```
| * | | | | | | | | | | | | | | Merge 2.11.x into 2.12.xAdriaan Moors2016-10-183-17/+23
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Including PRs #5199, #5405
| | * | | | | | | | | | | | | | Merge pull request #5405 from getfreebirdinc/2.11.xSeth Tisue2016-09-162-9/+9
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | |_|/ / / / / / / / / / / / | | |/| | | | | | | | | | | | | In ProcessBuilder docs, replace .lines w/ .lineStream
| | | * | | | | | | | | | | | | In ProcessBuilder docs, replace .lines w/ .lineStreamPaul Kernfeld2016-09-162-9/+9
| | |/ / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ProcessBuilder.lines is deprecated
| | * | | | | | | | | | | | | Merge pull request #5199 from dwijnand/remove-scala-langStefan Zeiger2016-07-181-10/+14
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make removing forkjoin dependant on the organization key
| | | * | | | | | | | | | | | | Make removing forkjoin dependant on the organization keyDale Wijnand2016-06-201-10/+14
| | | | |/ / / / / / / / / / / | | | |/| | | | | | | | | | |
| * | | | | | | | | | | | | | Merge 2.11.x into 2.12.x, skipping #5236Adriaan Moors2016-10-180-0/+0
| |\| | | | | | | | | | | | |
| | * | | | | | | | | | | | | Merge pull request #5236 from som-snytt/issue/triple-backportLukas Rytz2016-07-132-1/+9
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ | | | |/ / / / / / / / / / / / | | |/| | | | | | | | | | | | [nomerge] Avoid triple-quoting triple quotes
| | | * | | | | | | | | | | | Avoid triple-quoting triple quotesSom Snytt2016-06-172-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The boolean test for triples was inadvertently flipped. Adds test for pretty printed multiline strings
* | | | | | | | | | | | | | | Merge pull request #5468 from SethTisue/mima-0.1.11Seth Tisue2016-10-201-1/+1
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dogfood the new MiMa
| * | | | | | | | | | | | | | | dogfood the new MiMaSeth Tisue2016-10-191-1/+1
| | |_|_|_|_|_|_|_|_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it just has one little bugfix (a "synchronized" added to fix a concurrency thing was intermittently failing some CI builds)
* | | | | | | | | | | | | | | Merge pull request #5471 from VEINHORN/patch-1Seth Tisue2016-10-201-1/+1
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / |/| | | | | | | | | | | | | | Fix typo in GenTraversableLike
| * | | | | | | | | | | | | | Fix typo in GenTraversableLikeBoris Korogvich2016-10-201-1/+1
|/ / / / / / / / / / / / / /
* | | | | | | | | | | | | | Merge pull request #5465 from adriaanm/licenseeAdriaan Moors2016-10-1810-15563/+32
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / |/| | | | | | | | | | | | | Duplicate license in /LICENSE for GitHub
| * | | | | | | | | | | | | Duplicate license in /LICENSE for GitHubAdriaan Moors2016-10-1810-15563/+32
|/ / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So that our license (in doc/LICENSE.md) is detected by `licensee`. Also removed some cruft while I was at it... Bye bye svn mappings.
* | | | | | | | | | | | | Merge pull request #5386 from dwijnand/sbt-0.13.12Seth Tisue2016-10-183-2/+7
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bump sbt.version to 0.13.12, without breaking
| * | | | | | | | | | | | | Bump sbt.version to 0.13.12, without breakingDale Wijnand2016-09-223-2/+7
| | |_|_|_|_|_|/ / / / / / | |/| | | | | | | | | | |
* | | | | | | | | | | | | Merge pull request #5462 from retronym/topic/perm-size-be-goneSeth Tisue2016-10-181-1/+1
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid use of legacy JVM MaxPermSize option in partest
| * | | | | | | | | | | | | Avoid use of legacy JVM MaxPermSize option in partestJason Zaugg2016-10-181-1/+1
|/ / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Java 8+, which we require on this branch, this option is a no-op and triggers a JVM warning these days. See http://openjdk.java.net/jeps/122
* | | | | | | | | | | | | Merge pull request #5458 from retronym/merge/2.12.0-to-2.12.xSeth Tisue2016-10-1441-356/+620
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|/ / / / / / / / |/| | | | | | | | | | | | Merge 2.12.0 to 2.12.x [ci:last-only]
| * | | | | | | | | | | | Merge remote-tracking branch 'origin/2.12.0' into merge/2.12.0-to-2.12.xJason Zaugg2016-10-1441-356/+620
|/| | | | | | | | | | | | | | |_|_|_|_|_|_|_|_|_|/ | |/| | | | | | | | | |
| * | | | | | | | | | | Make stability test optional.Adriaan Moors2016-10-131-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To allow building a dist for the community build in under 20 mins.
| * | | | | | | | | | | Make sbtBuildTask configurable in bootstrapAdriaan Moors2016-10-131-1/+1
| | | | | | | | | | | |
| * | | | | | | | | | | Merge pull request #5457 from retronym/topic/restarrAdriaan Moors2016-10-131-1/+1
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | Restarr to fix InterfaceMethodRef after closure inlining
| | * | | | | | | | | | | Restarr to fix InterfaceMethodRef after closure inliningJason Zaugg2016-10-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need this to close the loop on #5452.
| * | | | | | | | | | | | Merge pull request #5456 from adriaanm/i244Adriaan Moors2016-10-135-23/+31
| |\ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / | |/| | | | | | | | | | | Detect clash of mixedin val and existing member.
| | * | | | | | | | | | | Detect clash of mixedin val and existing member.Adriaan Moors2016-10-125-23/+31
| |/ / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before, we looked only at the result type, which was silly. This was originally motivated by a hack to get to the error about conflicting paramaccessors. The error detection for that can now be formulated more directly. Fixes scala/scala-dev#244
| * | | | | | | | | | | Merge pull request #5429 from lrytz/sd224Adriaan Moors2016-10-1122-80/+428
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | Default -Xmixin-force-forwarders to true
| | * | | | | | | | | | | Test cases for super callsLukas Rytz2016-09-302-0/+308
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recovered and adapted some test cases for super calls from #5415
| | * | | | | | | | | | | Default -Xmixin-force-forwarders to trueLukas Rytz2016-09-3011-43/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also eliminates the warning when a mixin forwarder cannot be implemented because the target method is a java-defined default method in an interface that is not a direct parent of the class. The test t5148 is moved to neg, as expected: It was moved to pos when disabling mixin forwarders in 33e7106. Same for the changed error message in t4749.
| | * | | | | | | | | | | Explicit SerialVersionUID for all ClassTags / ManifestsLukas Rytz2016-09-305-16/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Looking at the class hierarchy around ClassTag and Manifest, the only class that had a serialVersionUID is AnyValManifest, where the hierarchy is something like: trait ClassTag // extends Serializable |- class GenericClassTag |- trait Manifest |- class ClassTypeManifest |- class SingletonTypeManifest |- ... |- abstract class AnyValManifest // has SerialVersionUID |- class DoubleManifest |- ... Note that AnyValManifest is an abstract class, so the SerialVersionUID annotation does not help there. This commit adds explicit SerialVersionUID annotations to (hopefully) all subclasses of ClassTag, to make sure they are stable under compatible changes (such as changing -Xmixin-force-forwarders).
| | * | | | | | | | | | | re-enable two tests (starr is up to date now)Lukas Rytz2016-09-306-20/+12
| | | | | | | | | | | | |
| | * | | | | | | | | | | Error message for super calls to indirect java parent interfacesLukas Rytz2016-09-302-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Super calls to indirect java parent interfaces cannot be emitted, an error message is emitted during SuperAccessors. The error message was missing if the super call was non-qualified, resulting in an assertion failure in the backend.
| * | | | | | | | | | | | Merge pull request #5442 from adriaanm/t9943Adriaan Moors2016-10-113-2/+12
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | SI-9943 sealed class does not yield SAM type
| | * | | | | | | | | | | | SI-9943 final/sealed class does not yield SAM typeAdriaan Moors2016-10-043-2/+12
| | |/ / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cannot subclass such a class. (Well, we could subclass a sealed class in the same compilation unit. We ignore this for simplicity.) This is a bit of a sneaky fix for this bug, but our hand is pretty much forced by other constraints, in this intersection of overload resolution involving built-in function types and SAMs, and type inference for higher-order function literals (#5307). Luckily, in this particular issue, the overloading clash seems accidental. The `sealed` `<:<` class is not a SAM type as it cannot be subclassed outside of `Predef`. For simplicity, we don't consider where the SAM conversion occurs and exclude all sealed classes from yielding SAM types. Thanks to Miles for pointing out that `final` was missing in my first iteration of this fix.
| * | | | | | | | | | | | Merge pull request #5452 from lrytz/sd242Adriaan Moors2016-10-102-2/+14
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the interface flag when re-writing a closure call to the body method