Skip to content

Commit bd6e00c

Browse files
committed
adopted to upcoming dotty-cps-async release
1 parent dcb3242 commit bd6e00c

File tree

6 files changed

+20
-17
lines changed

6 files changed

+20
-17
lines changed

build.sbt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
//val dottyVersion = "3.0.0-RC2-bin-SNAPSHOT"
2-
val dottyVersion = "3.2.2"
2+
val dottyVersion = "3.3.0"
33
//val dottyVersion = "3.1.3-RC1-bin-SNAPSHOT"
44
//val dottyVersion = dottyLatestNightlyBuild.get
55

6-
ThisBuild/version := "3.0.7"
6+
ThisBuild/version := "3.0.8-SNAPSHOT"
77
ThisBuild/versionScheme := Some("semver-spec")
88

99
val sharedSettings = Seq(
1010
organization := "com.github.rssh",
1111
scalaVersion := dottyVersion,
1212
name := "scala-gopher",
1313
//resolvers += "Local Ivy Repository" at "file://"+Path.userHome.absolutePath+"/.ivy2/local",
14-
libraryDependencies += "com.github.rssh" %%% "dotty-cps-async" % "0.9.16",
14+
libraryDependencies += "com.github.rssh" %%% "dotty-cps-async" % "0.9.17-RC1",
1515
libraryDependencies += "org.scalameta" %%% "munit" % "0.7.29" % Test,
1616
)
1717

@@ -34,7 +34,9 @@ lazy val gopher = crossProject(JSPlatform, JVMPlatform)
3434
.disablePlugins(SitePlugin)
3535
.disablePlugins(SitePreviewPlugin)
3636
.jvmSettings(
37-
scalacOptions ++= Seq( "-unchecked", "-Xcheck-macros", "-Ycheck:macro", "-uniqid", "-Xprint:types", "-explain" ),
37+
//scalacOptions ++= Seq( "-unchecked", "-Xcheck-macros", "-Ycheck:macro", "-uniqid", "-Xprint:types", "-explain" ),
38+
// Error in dotty
39+
scalacOptions ++= Seq( "-unchecked", "-Xprint:types" ),
3840
fork := true,
3941
/*
4042
javaOptions ++= Seq(

shared/src/main/scala/gopher/ReadChannel.scala

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,13 @@ trait ReadChannel[F[_], A]:
5252
* Can be used only inside async block.
5353
* If stream is closed and no values to read left in the stream - throws StreamClosedException
5454
**/
55-
transparent inline def read[G[_]]()(using mc:CpsMonadContext[G]): A = await(aread())(using rAsyncMonad, mc)
55+
transparent inline def read[G[_]]()(using mc:CpsMonadContext[G], fg:CpsMonadConversion[F,G]): A =
56+
await(aread())
5657

5758
/**
5859
* Synonim for read.
5960
*/
60-
transparent inline def ?(using mc:CpsMonadContext[F]) : A = await(aread())(using rAsyncMonad, mc)
61+
transparent inline def ?(using mc:CpsMonadContext[F]) : A = await(aread())
6162

6263
/**
6364
* return F which contains sequence from first `n` elements.
@@ -84,7 +85,7 @@ trait ReadChannel[F[_], A]:
8485
* should be called inside async block.
8586
**/
8687
transparent inline def take(n: Int)(using CpsMonadContext[F]): IndexedSeq[A] =
87-
await(atake(n))(using rAsyncMonad)
88+
await(atake(n))
8889

8990
/**
9091
* read value and return future with
@@ -107,7 +108,7 @@ trait ReadChannel[F[_], A]:
107108
*
108109
* should be called inside async block.
109110
**/
110-
transparent inline def optRead()(using CpsMonadContext[F]): Option[A] = await(aOptRead())(using rAsyncMonad)
111+
transparent inline def optRead()(using CpsMonadContext[F]): Option[A] = await(aOptRead())
111112

112113
def foreach_async(f: A=>F[Unit]): F[Unit] =
113114
given CpsAsyncMonad[F] = asyncMonad
@@ -131,7 +132,7 @@ trait ReadChannel[F[_], A]:
131132
* until end of stream is not reached
132133
**/
133134
transparent inline def foreach(inline f: A=>Unit)(using CpsMonadContext[F]): Unit =
134-
await(aforeach(f))(using rAsyncMonad)
135+
await(aforeach(f))
135136

136137

137138
def map[B](f: A=>B): ReadChannel[F,B] =
@@ -171,7 +172,7 @@ trait ReadChannel[F[_], A]:
171172
}
172173

173174
transparent inline def fold[S](inline s0:S)(inline f: (S,A) => S )(using mc:CpsMonadContext[F]): S =
174-
await[F,S,F](afold(s0)(f))(using rAsyncMonad, mc)
175+
await[F,S,F](afold(s0)(f))
175176

176177
def zip[B](x: ReadChannel[F,B]): ReadChannel[F,(A,B)] =
177178
given CpsSchedulingMonad[F] = asyncMonad

shared/src/main/scala/gopher/SelectListeners.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ trait SelectListeners[F[_],S, R]:
1616

1717
def runAsync():F[R]
1818

19-
transparent inline def run()(using CpsMonadContext[F]): R = await(runAsync())(using asyncMonad)
19+
transparent inline def run()(using CpsMonadContext[F]): R = await(runAsync())
2020

2121

2222

shared/src/main/scala/gopher/SelectMacro.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ object SelectMacro:
5656
)(using Quotes): Expr[R] =
5757
val g = selectListenerBuilder(constructor, caseDefs)
5858
// dotty bug if g.run
59-
val r = '{ await($g.runAsync())(using ${api}.asyncMonad, $monadContext) }
59+
val r = '{ await($g.runAsync())(using $monadContext, CpsMonadConversion.identityConversion[F]) }
6060
r.asExprOf[R]
6161

6262
def buildSelectListenerRunAsync[F[_]:Type, S:Type, R:Type, L <: SelectListeners[F,S,R]:Type](

shared/src/main/scala/gopher/WriteChannel.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ trait WriteChannel[F[_], A]:
2323
// inline def apply(a:A): Unit = await(awrite(a))(using asyncMonad)
2424
// inline def unapply(a:A): Some[A] = ???
2525

26-
transparent inline def write(inline a:A)(using CpsMonadContext[F]): Unit = await(awrite(a))(using asyncMonad)
26+
transparent inline def write(inline a:A)(using CpsMonadContext[F]): Unit = await(awrite(a))
2727

2828
@targetName("write1")
29-
transparent inline def <~ (inline a:A)(using CpsMonadContext[F]): Unit = await(awrite(a))(using asyncMonad)
29+
transparent inline def <~ (inline a:A)(using CpsMonadContext[F]): Unit = await(awrite(a))
3030

3131
@targetName("write2")
32-
transparent inline def ! (inline a:A)(using CpsMonadContext[F]): Unit = await(awrite(a))(using asyncMonad)
32+
transparent inline def ! (inline a:A)(using CpsMonadContext[F]): Unit = await(awrite(a))
3333

3434

3535
//def Write(x:A):WritePattern = new WritePattern(x)
@@ -52,7 +52,7 @@ trait WriteChannel[F[_], A]:
5252
}
5353

5454
transparent inline def writeAll(inline collection: IterableOnce[A])(using mc: CpsMonadContext[F]): Unit =
55-
await(awriteAll(collection))(using asyncMonad, mc)
55+
await(awriteAll(collection))
5656

5757

5858
def withWriteExpiration(ttl: FiniteDuration, throwTimeouts: Boolean)(using gopherApi: Gopher[F]): WriteChannelWithExpiration[F,A] =

shared/src/main/scala/gopher/monads/ReadChannelCpsMonad.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import gopher.impl._
77

88

99

10-
given ReadChannelCpsMonad[F[_]](using Gopher[F]): CpsMonadInstanceContext[[A] =>> ReadChannel[F,A]] with
10+
given ReadChannelCpsMonad[F[_]](using Gopher[F]): CpsPureMonadInstanceContext[[A] =>> ReadChannel[F,A]] with
1111

1212

1313
def pure[T](t:T): ReadChannel[F,T] =

0 commit comments

Comments
 (0)