Skip to content

Commit cb39c93

Browse files
authored
Merge pull request #993 from japgolly/topic/scala302
Upgrade to Scala 3.0.2
2 parents 00cf92d + 249d572 commit cb39c93

File tree

6 files changed

+88
-69
lines changed

6 files changed

+88
-69
lines changed

coreGeneric/src/main/scala-2/japgolly/scalajs/react/vdom/Attr.scala

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,22 +63,24 @@ object Attr {
6363
O.foreach(callback)(prepare(_)())
6464
}
6565

66-
trait EventCallback0 {
67-
implicit def dispatch[F[_]](implicit F: Dispatch[F]): EventCallback[F[Unit]] =
68-
new EventCallback(fa => F.dispatchFn(fa))
69-
66+
trait EventCallback1 {
7067
implicit def reusableDispatch[F[_]](implicit F: Dispatch[F]): EventCallback[Reusable[F[Unit]]] =
7168
new EventCallback(fa => F.dispatchFn(fa))
7269
}
7370

74-
object EventCallback extends EventCallback0 {
75-
import DefaultEffects.{Sync => D}
71+
trait EventCallback2 extends EventCallback1 {
72+
implicit def dispatch[F[_]](implicit F: Dispatch[F]): EventCallback[F[Unit]] =
73+
new EventCallback(fa => F.dispatchFn(fa))
74+
}
7675

77-
implicit val defaultSync: EventCallback[D[Unit]] =
78-
dispatch(D)
76+
trait EventCallback3 extends EventCallback2 {
77+
implicit lazy val reusableDefaultSync: EventCallback[Reusable[DefaultEffects.Sync[Unit]]] =
78+
reusableDispatch(DefaultEffects.Sync)
79+
}
7980

80-
implicit lazy val reusableDefaultSync: EventCallback[Reusable[D[Unit]]] =
81-
reusableDispatch(D)
81+
object EventCallback extends EventCallback3 {
82+
implicit val defaultSync: EventCallback[DefaultEffects.Sync[Unit]] =
83+
dispatch(DefaultEffects.Sync)
8284
}
8385

8486
type EventHandler[E[+x <: dom.Node] <: facade.SyntheticEvent[x]] =

coreGeneric/src/main/scala-3/japgolly/scalajs/react/vdom/Attr.scala

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,24 @@ object Attr {
7979
O.foreach(callback)(prepare(_)())
8080
}
8181

82-
trait EventCallback0 {
83-
implicit def dispatch[F[_]](implicit F: Dispatch[F]): EventCallback[F[Unit]] =
84-
new EventCallback(fa => F.dispatchFn(fa))
85-
82+
trait EventCallback1 {
8683
implicit def reusableDispatch[F[_]](implicit F: Dispatch[F]): EventCallback[Reusable[F[Unit]]] =
8784
new EventCallback(fa => F.dispatchFn(fa))
8885
}
8986

90-
object EventCallback extends EventCallback0 {
91-
import DefaultEffects.{Sync => D}
87+
trait EventCallback2 extends EventCallback1 {
88+
implicit def dispatch[F[_]](implicit F: Dispatch[F]): EventCallback[F[Unit]] =
89+
new EventCallback(fa => F.dispatchFn(fa))
90+
}
9291

93-
implicit val defaultSync: EventCallback[D[Unit]] =
94-
dispatch(D)
92+
trait EventCallback3 extends EventCallback2 {
93+
implicit lazy val reusableDefaultSync: EventCallback[Reusable[DefaultEffects.Sync[Unit]]] =
94+
reusableDispatch(DefaultEffects.Sync)
95+
}
9596

96-
implicit lazy val reusableDefaultSync: EventCallback[Reusable[D[Unit]]] =
97-
reusableDispatch(D)
97+
object EventCallback extends EventCallback3 {
98+
implicit val defaultSync: EventCallback[DefaultEffects.Sync[Unit]] =
99+
dispatch(DefaultEffects.Sync)
98100
}
99101

100102
type EventHandler[E[+x <: dom.Node] <: facade.SyntheticEvent[x]] =

project/Dependencies.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ object Dependencies {
1515
val monocle2 = "2.1.0"
1616
val monocle3 = "3.1.0"
1717
val scala2 = "2.13.6"
18-
val scala3 = "3.0.1"
18+
val scala3 = "3.0.2"
1919
val scalaJsDom = "1.2.0"
2020
val sourcecode = "0.2.7"
2121

tests/src/test/scala/japgolly/scalajs/react/core/vdom/ReactAttrTest.scala

Lines changed: 51 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,57 @@ package japgolly.scalajs.react.core.vdom
33
import japgolly.scalajs.react._
44
import japgolly.scalajs.react.vdom.html_<^._
55
import scala.scalajs.js
6+
7+
object ReactAttrTestSep {
8+
import utest.compileError
9+
10+
val anything = VdomAttr[Any]("")
11+
val intOnly = ^.colSpan
12+
val stringOnly = ^.href
13+
val style = ^.style
14+
val mouse = ^.onMouseDown
15+
val focus = ^.onFocus
16+
17+
def jsObj: js.Object = new js.Object()
18+
def jsDict: js.Dictionary[String] = js.Dictionary.empty
19+
val unit = ()
20+
def callback = Callback.empty
21+
def anyEH: ReactEvent => Callback = _ => callback
22+
def mouseEH: ReactMouseEvent => Callback = _ => callback
23+
def focusEH: ReactFocusEvent => Callback = _ => callback
24+
def mouseInputEH: ReactMouseEventFromInput => Callback = _ => callback
25+
26+
def mouseEvent(): Unit = {
27+
mouse --> callback
28+
mouse ==> anyEH
29+
mouse ==> mouseEH
30+
mouse ==> mouseInputEH
31+
compileError("mouse ==> focusEH")
32+
compileError("mouse := \"\"")
33+
compileError("mouse := 5")
34+
compileError("mouse := jsObj")
35+
compileError("mouse := jsDict")
36+
compileError("mouse := unit").msg
37+
}
38+
39+
def focusEvent(): Unit = {
40+
focus --> callback
41+
focus ==> anyEH
42+
focus ==> focusEH
43+
compileError("focus ==> mouseEH")
44+
compileError("focus ==> mouseInputEH")
45+
compileError("focus := \"\"")
46+
compileError("focus := 5")
47+
compileError("focus := jsObj")
48+
compileError("focus := jsDict")
49+
compileError("focus := unit").msg
50+
}
51+
}
52+
653
import utest._
754

855
object ReactAttrTest extends TestSuite {
9-
10-
private val anything = VdomAttr[Any]("")
11-
private val intOnly = ^.colSpan
12-
private val stringOnly = ^.href
13-
private val style = ^.style
14-
private val mouse = ^.onMouseDown
15-
private val focus = ^.onFocus
16-
17-
private def jsObj: js.Object = new js.Object()
18-
private def jsDict: js.Dictionary[String] = js.Dictionary.empty
19-
private val unit = ()
20-
private def callback = Callback.empty
21-
private def anyEH: ReactEvent => Callback = _ => callback
22-
private def mouseEH: ReactMouseEvent => Callback = _ => callback
23-
private def focusEH: ReactFocusEvent => Callback = _ => callback
24-
private def mouseInputEH: ReactMouseEventFromInput => Callback = _ => callback
56+
import ReactAttrTestSep._
2557

2658
override def tests = Tests {
2759

@@ -58,34 +90,10 @@ object ReactAttrTest extends TestSuite {
5890
compileError("style := \"\"")
5991
compileError("style := unit").msg
6092
}
61-
62-
"mouseEvent" - {
63-
mouse --> callback
64-
mouse ==> anyEH
65-
mouse ==> mouseEH
66-
mouse ==> mouseInputEH
67-
compileError("mouse ==> focusEH")
68-
compileError("mouse := \"\"")
69-
compileError("mouse := 5")
70-
compileError("mouse := jsObj")
71-
compileError("mouse := jsDict")
72-
compileError("mouse := unit").msg
73-
}
74-
75-
"focusEvent" - {
76-
focus --> callback
77-
focus ==> anyEH
78-
focus ==> focusEH
79-
compileError("focus ==> mouseEH")
80-
compileError("focus ==> mouseInputEH")
81-
compileError("focus := \"\"")
82-
compileError("focus := 5")
83-
compileError("focus := jsObj")
84-
compileError("focus := jsDict")
85-
compileError("focus := unit").msg
86-
}
87-
8893
}
8994

95+
"mouseEvent" - mouseEvent()
96+
"focusEvent" - focusEvent()
97+
9098
}
9199
}

tests/src/test/scala/japgolly/scalajs/react/extra/router/Router2Test.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ import scala.annotation.nowarn
1212
import scala.scalajs.LinkingInfo.developmentMode
1313
import utest._
1414

15-
object Router2Test extends TestSuite {
16-
15+
object Router2TestRoutes {
1716
sealed trait Module
1817
case object ModuleRoot extends Module
1918
case object Module1 extends Module
@@ -143,8 +142,12 @@ object Router2Test extends TestSuite {
143142
.logToConsole
144143
}
145144
}
145+
}
146146

147-
// -------------------------------------------------------------------------------------------------------------------
147+
// ===================================================================================================================
148+
149+
object Router2Test extends TestSuite {
150+
import Router2TestRoutes._
148151

149152
implicit def str2path(s: String): Path = Path(s)
150153
def htmlFor(r: Resolution[_]) = ReactDOMServer.renderToStaticMarkup(r.render())

tests/src/test/scala/japgolly/scalajs/react/extra/router/RouterP2Test.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import scala.annotation.nowarn
1212
import scala.scalajs.LinkingInfo.developmentMode
1313
import utest._
1414

15-
object RouterP2Test extends TestSuite {
15+
object RouterP2TestRoutes {
1616
class Ctx(val int: Int) extends AnyVal
1717

1818
sealed trait Module
@@ -146,8 +146,12 @@ object RouterP2Test extends TestSuite {
146146
.logToConsole
147147
}
148148
}
149+
}
149150

150-
// -------------------------------------------------------------------------------------------------------------------
151+
// ===================================================================================================================
152+
153+
object RouterP2Test extends TestSuite {
154+
import RouterP2TestRoutes._
151155

152156
implicit def str2path(s: String): Path = Path(s)
153157

0 commit comments

Comments
 (0)