{"push_id":1266940609,"size":3,"distinct_size":3,"ref":"refs/heads/fields-lazies","head":"a09f89d26e6a9bf58d2091a5f8c15b418e2e7fff","before":"e61f06ebdc30df64ca1152f1b7dd96cb00138755","commits":[{"sha":"ea7dc602b65ebfd02848758a55e82ce4ffb30565","author":{"name":"Adriaan Moors","email":"b1bbc8f7d9b1f3f69d0e5ab77559c084f9d79d89@lightbend.com"},"message":"fixup ac3734d based on Jason's review","distinct":true,"url":"https://api.github.com/repos/adriaanm/scala/commits/ea7dc602b65ebfd02848758a55e82ce4ffb30565"},{"sha":"f2e50b5bf3553c7c6f3f7bdc403231ff61898138","author":{"name":"Adriaan Moors","email":"b1bbc8f7d9b1f3f69d0e5ab77559c084f9d79d89@lightbend.com"},"message":"small cleanup in lazy local tree","distinct":true,"url":"https://api.github.com/repos/adriaanm/scala/commits/f2e50b5bf3553c7c6f3f7bdc403231ff61898138"},{"sha":"a09f89d26e6a9bf58d2091a5f8c15b418e2e7fff","author":{"name":"Adriaan Moors","email":"b1bbc8f7d9b1f3f69d0e5ab77559c084f9d79d89@lightbend.com"},"message":"specialize erasure of `synchronized` primitive method\n\nThe goal is to avoid emitting unneeded `BoxedUnit` values,\nwhich are the result of adapting a `Unit`-typed expression\ninside a `synchronized(...)` to the erased type of\n`synchronized`'s argument -- `Object`.\n\nThe proposed solution gives `synchronized` a polymorphic\ntype (the info of the type param is still erased so that\nbounds checking works in the erased type system), so that\nan application `synchronized(println(\"boo\"))` erases to\n`synchronized[Unit])(println(\"boo\"))`, and no boxing is\nperformed on the `println(\"boo\")` argument, whose expected\ntype is now `Unit` instead of `Object`.","distinct":true,"url":"https://api.github.com/repos/adriaanm/scala/commits/a09f89d26e6a9bf58d2091a5f8c15b418e2e7fff"}]}
{"actor":{"display_login":"adriaanm"}}