Skip to content

Commit

Permalink
Merge pull request #93 from frawa/scala-steward-update/scala3-library…
Browse files Browse the repository at this point in the history
…-3.4.1

Scala steward update/scala3 library 3.4.1
  • Loading branch information
frawa committed Mar 28, 2024
2 parents 2964755 + f93a95b commit 71de1c8
Show file tree
Hide file tree
Showing 35 changed files with 77 additions and 7 deletions.
2 changes: 1 addition & 1 deletion build.sbt
Expand Up @@ -11,7 +11,7 @@ lazy val npmRunCI = taskKey[Unit]("npm run ci")

lazy val publishToDocs = taskKey[Unit]("publish to docs/, aka GitHub Pages")

lazy val scalaVersion3 = "3.3.3"
lazy val scalaVersion3 = "3.4.1"

import xerial.sbt.Sonatype._

Expand Down
Expand Up @@ -23,6 +23,7 @@ import org.typelevel.jawn.{FContext, ParseException}

import scala.annotation.tailrec
import scala.collection.mutable
import scala.collection.immutable

class JawnParser extends Parser with OffsetParser:
import OffsetParser.ParseError
Expand Down Expand Up @@ -71,7 +72,7 @@ class JawnParser extends Parser with OffsetParser:
override def isObj: Boolean = false

override def arrayContext(startIndex: Int): FContext[Offset.Value] = new FContext[Offset.Value]:
private var vs: Seq[Offset.Value] = Seq.empty
private var vs: immutable.Seq[Offset.Value] = Seq.empty

override def add(s: CharSequence, index: Int): Unit =
vs = vs :+ string(s, index)
Expand Down Expand Up @@ -119,24 +120,24 @@ class JawnParser extends Parser with OffsetParser:

private class RecoveringFacade[T](private val facade: jawn.Facade[T]) extends jawn.Facade[T]:

private val stack: mutable.Stack[FContext[T]] = mutable.Stack.empty[FContext[T]]
private val stack: mutable.ArrayDeque[FContext[T]] = mutable.Stack.empty[FContext[T]]

def recover(index: Int, dummy: T): T =
@tailrec
def go(v0: T): T =
if stack.isEmpty then v0
else
val c = stack.pop()
val c = stack.removeHead()
c.add(v0, index)
go(c.finish(index))
go(dummy)

private def delegatingContext(delegate: jawn.FContext[T]): jawn.FContext[T] = new FContext[T]:
stack.push(delegate)
stack.prepend(delegate)
override def add(s: CharSequence, index: Int): Unit = delegate.add(s, index)
override def add(v: T, index: Int): Unit = delegate.add(v, index)
override def finish(index: Int): T =
stack.pop()
stack.removeHead()
delegate.finish(index)
override def isObj: Boolean = delegate.isObj

Expand Down
Expand Up @@ -18,6 +18,7 @@ package frawa.typedjson.parser

import frawa.typedjson.parser.Offset.ObjectValue
import frawa.typedjson.pointer.{FieldToken, Pointer}
import scala.collection.immutable.Seq

trait OffsetParser:
import Offset.*
Expand Down
2 changes: 2 additions & 0 deletions parser/src/main/scala/frawa/typedjson/parser/Parser.scala
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.parser

import scala.collection.immutable.Seq

trait Parser:
def parse(json: String): Either[String, Value]

Expand Down
2 changes: 2 additions & 0 deletions parser/src/main/scala/frawa/typedjson/pointer/Pointer.scala
Expand Up @@ -19,6 +19,8 @@ package frawa.typedjson.pointer
import frawa.typedjson.parser.{Offset, Value}
import frawa.typedjson.parser.Value.{ArrayValue, ObjectValue}

import scala.collection.immutable.Seq

object Pointer:
def empty = new Pointer(Nil)

Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.js

import scala.collection.immutable.Seq

import frawa.typedjson.{TypedJson}
import frawa.typedjson.TypedJson.Validation
import frawa.typedjson.parser.jawn.JawnParser
Expand Down Expand Up @@ -92,7 +94,7 @@ case class TypedJsonJS(
case Right(value) =>
this.copy(value = Some(value)).validate()
case Left(error) =>
this.copy(value = error.recoveredValue, Seq(Marker.fromParsingError(error)))
this.copy(value = error.recoveredValue, _markers = Seq(Marker.fromParsingError(error)))
}
}

Expand Down
2 changes: 2 additions & 0 deletions typed-json/src/main/scala/frawa/typedjson/TypedJson.scala
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson

import scala.collection.immutable.Seq

import frawa.typedjson.parser.Parser
import frawa.typedjson.keywords.SchemaValue
import frawa.typedjson.meta.MetaSchemas
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.eval

import scala.collection.immutable.Seq

import frawa.typedjson.keywords.*
import frawa.typedjson.parser.Value
import frawa.typedjson.util.UriUtil
Expand Down
2 changes: 2 additions & 0 deletions typed-json/src/main/scala/frawa/typedjson/eval/Eval.scala
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.eval

import scala.collection.immutable.Seq

import frawa.typedjson.keywords.*
import frawa.typedjson.parser.Value
import frawa.typedjson.parser.Value.*
Expand Down
2 changes: 2 additions & 0 deletions typed-json/src/main/scala/frawa/typedjson/eval/Verify.scala
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.eval

import scala.collection.immutable.Seq

import frawa.typedjson.keywords.{Keyword}
import frawa.typedjson.util.WithPointer
import frawa.typedjson.parser.Value
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.keywords

import scala.collection.immutable.Seq

import frawa.typedjson.pointer.Pointer

import java.net.URI
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.keywords

import scala.collection.immutable.Seq

import frawa.typedjson.keywords.SchemaProblems.{
InvalidSchemaValue,
MissingDynamicReference,
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.keywords

import scala.collection.immutable.Seq

import frawa.typedjson.parser.Value
import frawa.typedjson.parser.Value.*
import frawa.typedjson.util.UriUtil
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.keywords

import scala.collection.immutable.Seq

import frawa.typedjson.parser.Value
import frawa.typedjson.pointer.Pointer

Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.keywords

import scala.collection.immutable.Seq

import frawa.typedjson.parser.Value
import frawa.typedjson.parser.Value.*
import frawa.typedjson.util.EitherUtil
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.output

import scala.collection.immutable.Seq

import frawa.typedjson.util.WithPointer
import frawa.typedjson.validation.ValidationError
import frawa.typedjson.validation.ValidationAnnotation
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.output

import scala.collection.immutable.Seq

import frawa.typedjson.util.WithPointer
import frawa.typedjson.validation.ValidationError
import frawa.typedjson.validation.ValidationAnnotation
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.output

import scala.collection.immutable.Seq

import frawa.typedjson.validation.ValidationAnnotation
import frawa.typedjson.pointer.Pointer
import frawa.typedjson.validation.ValidationError
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.output

import scala.collection.immutable.Seq

import frawa.typedjson.parser.Value
import frawa.typedjson.parser.Value.*
import frawa.typedjson.validation.ValidationError
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.output

import scala.collection.immutable.Seq

import frawa.typedjson.pointer.Pointer
import frawa.typedjson.validation.ValidationError
import frawa.typedjson.keywords.Evaluated
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.output

import scala.collection.immutable.Seq

import frawa.typedjson.util.WithPointer
import frawa.typedjson.validation.ValidationError
import frawa.typedjson.validation.ValidationAnnotation
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.suggest

import scala.collection.immutable.Seq

import frawa.typedjson.pointer.Pointer
import frawa.typedjson.parser.Value
import frawa.typedjson.parser.Value.*
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.suggest

import scala.collection.immutable.Seq

import frawa.typedjson.util.WithPointer
import frawa.typedjson.validation.ValidationError
import frawa.typedjson.validation.ValidationAnnotation
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.util

import scala.collection.immutable.Seq

object EitherUtil:

def sequenceAllLefts[E, V](as: Seq[Either[E, V]]): Either[Seq[E], Seq[V]] =
Expand Down
2 changes: 2 additions & 0 deletions typed-json/src/main/scala/frawa/typedjson/util/FP.scala
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.util

import scala.collection.immutable.Seq

object FP:
def sequence[A, F[A]](cs: Seq[F[A]])(using monad: Monad[F]): F[Seq[A]] =
cs.foldLeft(monad.unit(Seq.empty)) { (acc, c) =>
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.util

import scala.collection.immutable.Seq

import frawa.typedjson.parser.Value
import frawa.typedjson.parser.Value.*

Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.validation

import scala.collection.immutable.Seq

import frawa.typedjson.keywords.*
import frawa.typedjson.parser.*
import frawa.typedjson.parser.Value.*
Expand Down
2 changes: 2 additions & 0 deletions typed-json/src/test/scala/frawa/typedjson/eval/Util.scala
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.eval

import scala.collection.immutable.Seq

import frawa.typedjson.eval.CacheState.R
import frawa.typedjson.keywords.*
import frawa.typedjson.parser.Value
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.jsonSchemaTestSuite

import scala.collection.immutable.Seq

import frawa.inlinefiles.InlineFiles.*
import frawa.typedjson.parser.*
import frawa.typedjson.testutil.TestUtil.{*, given}
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.jsonSchemaTestSuite

import scala.collection.immutable.Seq

import frawa.inlinefiles.InlineFiles.*
import frawa.typedjson.macros.Macros
import frawa.typedjson.testutil.TestUtil.{*, given}
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.jsonSchemaTestSuite

import scala.collection.immutable.Seq

import frawa.inlinefiles.InlineFiles
import frawa.typedjson.eval.CacheState.R
import frawa.typedjson.eval.*
Expand Down
Expand Up @@ -24,6 +24,7 @@ import frawa.typedjson.testutil.TestUtil.{*, given}
import frawa.typedjson.util.UriUtil.uri
import munit.FunSuite
import frawa.typedjson.util.WithPointer
import munit.Compare

class KeywordsTest extends FunSuite:
private val vocabularyForTest = dialect(Seq(Vocabulary.coreId, Vocabulary.validationId, Vocabulary.applicatorId)).get
Expand All @@ -49,6 +50,11 @@ class KeywordsTest extends FunSuite:
case Right(_) => fail("parsing keywords expected to fail")
case Left(errors) => f(errors)

given Compare[Set[Keyword], Set[WithLocation]] with
def isEqual(obtained: Set[Keyword], expected: Set[WithLocation]): Boolean =
obtained.filter(_.isInstanceOf[WithLocation]).map(_.asInstanceOf[WithLocation])
== expected

test("null") {
withSchema(nullSchema) { schema =>
assertKeywords(schema) { keywords =>
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.meta

import scala.collection.immutable.Seq

import frawa.typedjson.eval.Eval
import frawa.typedjson.eval.CacheState.R
import frawa.typedjson.eval.Util.{doApply, withCompiledSchemaValue}
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.testutil

import scala.collection.immutable.Seq

import frawa.typedjson.keywords.*
import frawa.typedjson.parser.jawn.JawnParser
import frawa.typedjson.parser.{Parser, Value}
Expand Down
Expand Up @@ -16,6 +16,8 @@

package frawa.typedjson.util

import scala.collection.immutable.Seq

import frawa.typedjson.util.EitherUtil.*
import munit.FunSuite

Expand Down

0 comments on commit 71de1c8

Please sign in to comment.