scala-dev
scala-dev copied to clipboard
Scala 2 team issues. Not for user-facing bugs or directly actionable user-facing improvements. For build/test/infra and for longer-term planning and idea tracking. Our bug tracker is at https://github...
with the latest heuristics (not yet merged): - when compiling all of the library, `mapConserve` has its `loop` method inlined, but `dropWhile` has a call to `loop$3` - when only...
The old optimizer makes synthetic and paramaccessor methods public to enable inlining methods that invoke them. https://github.com/scala/scala/blob/2.11.x/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala#L659
If there's a cycle of invocations of `@inline` annotated methods, issue a warning for the callsite that is not inlined. Simplest example: ``` scala class C { @inline final def...
after eta-expansion, inline the method body into the lambda body method ➡️ eliminate outer capture
https://issues.scala-lang.org/browse/SI-9390 ``` class C { def methodLift = { def isPrime(c: Int) = BigInt(c).isProbablePrime(1) val f: Int => Boolean = isPrime f(0) } } ``` compiles to ``` class C...
Existing partest tests: `patmat_opt_ignore_underscore`, `patmat_opt_no_nullcheck`, `patmat_opt_primitive_typetest`. Also talk to adriaan. Maybe some of the optimizations that are currently in the patmat phase can be performed in the backend instead.
`array.exists(_ == 10)` should perform like a `while` loop.
In code like: ``` scala class Outer { var a, b = 0 class Inner { def test = { (a, b) } } } ``` Rather than emitting: ```...
In Zinc meeting with Scala Center 2020-07-21 (@lrytz, @dwijnand, @sjrd, @eed3si9n), an idea came up today about informal hook for Class dependency tracking. In addition (or instead) of Zinc injecting...
After inlining the module instance field loads remain - they have to, the static initializer of the module class may have side effects: ``` scala object T { println("hui") @inline...