Skip to content

Commit 1598192

Browse files
committed
com.lihaoyi.unroll annotation
1 parent 1b0270a commit 1598192

File tree

32 files changed

+52
-49
lines changed

32 files changed

+52
-49
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ See this original discussion for more context:
4040
### Methods
4141

4242
```scala
43-
import scala.annotation.unroll
43+
import com.lihaoyi.unroll
4444

4545
object Unrolled{
4646
def foo(s: String, n: Int = 1, @unroll b: Boolean = true, l: Long = 0) = s + n + b + l
@@ -50,7 +50,7 @@ object Unrolled{
5050
Unrolls to:
5151

5252
```scala
53-
import scala.annotation.unroll
53+
import com.lihaoyi.unroll
5454

5555
object Unrolled{
5656
def foo(s: String, n: Int = 1, @unroll b: Boolean = true, l: Long = 0) = s + n + b + l
@@ -62,7 +62,7 @@ object Unrolled{
6262
### Classes
6363

6464
```scala
65-
import scala.annotation.unroll
65+
import com.lihaoyi.unroll
6666

6767
class Unrolled(s: String, n: Int = 1, @unroll b: Boolean = true, l: Long = 0){
6868
def foo = s + n + b + l
@@ -72,7 +72,7 @@ class Unrolled(s: String, n: Int = 1, @unroll b: Boolean = true, l: Long = 0){
7272
Unrolls to:
7373

7474
```scala
75-
import scala.annotation.unroll
75+
import com.lihaoyi.unroll
7676

7777
class Unrolled(s: String, n: Int = 1, @unroll b: Boolean = true, l: Long = 0){
7878
def foo = s + n + b + l
@@ -85,7 +85,7 @@ class Unrolled(s: String, n: Int = 1, @unroll b: Boolean = true, l: Long = 0){
8585
### Constructors
8686

8787
```scala
88-
import scala.annotation.unroll
88+
import com.lihaoyi.unroll
8989

9090
class Unrolled() {
9191
var foo = ""
@@ -100,7 +100,7 @@ class Unrolled() {
100100
Unrolls to:
101101

102102
```scala
103-
import scala.annotation.unroll
103+
import com.lihaoyi.unroll
104104

105105
class Unrolled() {
106106
var foo = ""
@@ -118,7 +118,7 @@ class Unrolled() {
118118
### Case Classes
119119

120120
```scala
121-
import scala.annotation.unroll
121+
import com.lihaoyi.unroll
122122

123123
case class Unrolled(s: String, n: Int = 1, @unroll b: Boolean = true){
124124
def foo = s + n + b
@@ -128,7 +128,7 @@ case class Unrolled(s: String, n: Int = 1, @unroll b: Boolean = true){
128128
Unrolls to:
129129

130130
```scala
131-
import scala.annotation.unroll
131+
import com.lihaoyi.unroll
132132

133133
case class Unrolled(s: String, n: Int = 1, @unroll b: Boolean = true, l: Long = 0L){
134134
def this(s: String, n: Int) = this(s, n, true, 0L)
@@ -148,7 +148,7 @@ object Unrolled{
148148
### Abstract Methods
149149

150150
```scala
151-
import scala.annotation.unroll
151+
import com.lihaoyi.unroll
152152

153153
trait Unrolled{
154154
def foo(s: String, n: Int = 1, @unroll b: Boolean = true): String

unroll/annotation/src/Unroll.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
package scala.annotation
1+
package com.lihaoyi
22

33
class unroll extends scala.annotation.StaticAnnotation

unroll/plugin/src-2/UnrollPhaseScala2.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class UnrollPhaseScala2(val global: Global) extends PluginComponent with TypingT
2121

2222
def findUnrollAnnotations(params: Seq[Symbol]): Seq[Int] = {
2323
params.toList.zipWithIndex.collect {
24-
case (v, i) if v.annotations.exists(_.tpe =:= typeOf[scala.annotation.unroll]) => i
24+
case (v, i) if v.annotations.exists(_.tpe =:= typeOf[com.lihaoyi.unroll]) => i
2525
}
2626
}
2727

unroll/plugin/src-3/UnrollPhaseScala3.scala

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import scala.language.implicitConversions
2222
class UnrollPhaseScala3() extends PluginPhase {
2323
import tpd._
2424

25-
val phaseName = "unroll"
25+
val phaseName = "unroll2"
2626

2727
override val runsAfter = Set(transform.Pickler.name)
2828

@@ -44,7 +44,7 @@ class UnrollPhaseScala3() extends PluginPhase {
4444
params
4545
.zipWithIndex
4646
.collect {
47-
case (v, i) if v.annotations.exists(_.symbol.fullName.toString == "scala.annotation.unroll") =>
47+
case (v, i) if v.annotations.exists(_.symbol.fullName.toString == "com.lihaoyi.unroll") =>
4848
i
4949
}
5050
}
@@ -155,17 +155,20 @@ class UnrollPhaseScala3() extends PluginPhase {
155155
rhs = Match(
156156
ref(defdef.paramss.head.head.asInstanceOf[ValDef].symbol).select(termName("productArity")),
157157
startParamIndices.map { paramIndex =>
158-
val Apply(select, args) = defdef.rhs
158+
val Block(stmts, Apply(select, args)) = defdef.rhs
159159
CaseDef(
160160
Literal(Constant(paramIndex)),
161161
EmptyTree,
162-
Apply(
163-
select,
164-
args.take(paramIndex) ++
165-
Range(paramIndex, paramCount).map(n =>
166-
ref(defdef.symbol.owner.companionModule)
167-
.select(DefaultGetterName(defdef.symbol.owner.primaryConstructor.name.toTermName, n))
168-
)
162+
Block(
163+
stmts,
164+
Apply(
165+
select,
166+
args.take(paramIndex) ++
167+
Range(paramIndex, paramCount).map(n =>
168+
ref(defdef.symbol.owner.companionModule)
169+
.select(DefaultGetterName(defdef.symbol.owner.primaryConstructor.name.toTermName, n))
170+
)
171+
)
169172
)
170173
)
171174
} ++ Seq(

unroll/tests/abstractClassMethod/v2/downstream/src/Downstream.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package unroll
22

3-
import scala.annotation.unroll
3+
import com.lihaoyi.unroll
44

55
object UnrolledObj extends Unrolled {
66
def foo(s: String, n: Int = 1, @unroll b: Boolean = true) = s + n + b.toString.take(4)

unroll/tests/abstractClassMethod/v2/src/Unrolled.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package unroll
22

3-
import scala.annotation.unroll
3+
import com.lihaoyi.unroll
44

55
abstract class Unrolled{
66
def foo(s: String, n: Int = 1, @unroll b: Boolean = true): String

unroll/tests/abstractClassMethod/v3/downstream/src/Downstream.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package unroll
22

3-
import scala.annotation.unroll
3+
import com.lihaoyi.unroll
44

55
object UnrolledObj extends Unrolled {
66
def foo(s: String, n: Int = 1, @unroll b: Boolean = true, @unroll l: Long = 0) = s + n + b.toString.take(4) + l

unroll/tests/abstractClassMethod/v3/src/Unrolled.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package unroll
22

3-
import scala.annotation.unroll
3+
import com.lihaoyi.unroll
44

55
abstract class Unrolled{
66
def foo(s: String, n: Int = 1, @unroll b: Boolean = true, @unroll l: Long = 0): String

unroll/tests/abstractTraitMethod/v2/downstream/src/Downstream.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package unroll
22

3-
import scala.annotation.unroll
3+
import com.lihaoyi.unroll
44

55
object UnrolledObj extends Unrolled {
66
def foo(s: String, n: Int = 1, @unroll b: Boolean = true) = s + n + b.toString.take(4)

unroll/tests/abstractTraitMethod/v2/src/Unrolled.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package unroll
22

3-
import scala.annotation.unroll
3+
import com.lihaoyi.unroll
44

55
trait Unrolled{
66
def foo(s: String, n: Int = 1, @unroll b: Boolean = true): String

0 commit comments

Comments
 (0)