From 2ac62b5af7f3eef2d10fd21bb400d081f5554fa9 Mon Sep 17 00:00:00 2001 From: Mark Canlas Date: Tue, 3 Oct 2023 16:15:10 -0400 Subject: [PATCH] scala3 fmt --- .scalafmt.conf | 2 ++ .../com/htmlism/firepower/core/AsmBlock.scala | 11 +++----- .../firepower/core/CodeGenerator.scala | 4 +-- .../htmlism/firepower/core/Subroutine.scala | 2 +- .../htmlism/firepower/core/FeatureSpec.scala | 4 +-- .../htmlism/firepower/core/MoveSuite.scala | 2 +- .../com/htmlism/firepower/demo/Easy6502.scala | 6 ++--- .../htmlism/firepower/demo/FeatureDemo.scala | 8 +++--- .../firepower/demo/PrintPrograms.scala | 8 +++--- .../htmlism/firepower/demo/PrintThree.scala | 8 +++--- .../firepower/demo/SnakeEasy6502.scala | 4 +-- .../htmlism/nescant/dsl/ByteSinkSpec.scala | 4 +-- .../htmlism/nescant/dsl/ByteSourceSpec.scala | 4 +-- .../htmlism/nescant/dsl/PostFixOpsSpec.scala | 4 +-- project/CatsEffectForkPlugin.scala | 2 +- project/GitHubPackages.scala | 4 +-- project/LintingPlugin.scala | 6 ++--- project/ProjectPlugin.scala | 4 +-- project/Scala3Plugin.scala | 8 +++--- src/main/scala/com/htmlism/MatchOpcodes.scala | 25 ++++++++----------- .../scala/com/htmlism/ShiftExtractor.scala | 6 ++--- .../mos6502/dsl/AsmDocumentContext.scala | 2 +- .../com/htmlism/mos6502/dsl/DslDemo.scala | 4 +-- .../dsl/IndexedAddressCollection.scala | 2 +- .../mos6502/dsl/ReadWriteLocation.scala | 2 +- .../com/htmlism/mos6502/dsl/Statement.scala | 2 +- .../mos6502/dsl/syntax/AsmSyntax.scala | 2 +- .../com/htmlism/mos6502/dsl/DslSpec.scala | 4 +-- .../mos6502/dsl/snake/Easy6502Spec.scala | 8 +++--- 29 files changed, 72 insertions(+), 80 deletions(-) diff --git a/.scalafmt.conf b/.scalafmt.conf index 3a6a8a3..f2e17a3 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -48,3 +48,5 @@ docstrings.blankFirstLine = yes includeNoParensInSelectChains = true optIn.breakChainOnFirstMethodDot = true + +rewrite.scala3.convertToNewSyntax = true diff --git a/firepower-core/src/main/scala/com/htmlism/firepower/core/AsmBlock.scala b/firepower-core/src/main/scala/com/htmlism/firepower/core/AsmBlock.scala index 6c6535b..a51d3c6 100644 --- a/firepower-core/src/main/scala/com/htmlism/firepower/core/AsmBlock.scala +++ b/firepower-core/src/main/scala/com/htmlism/firepower/core/AsmBlock.scala @@ -1,6 +1,6 @@ package com.htmlism.firepower.core -import cats.syntax.all._ +import cats.syntax.all.* sealed trait AsmBlock @@ -55,12 +55,9 @@ object AsmBlock: def toHex(n: Int): String = val hex = - if (n < 16 * 16) - String.format("%1$02x", n) - else if (n < 16 * 16 * 16) - String.format("%1$03x", n) - else - String.format("%1$04x", n) + if n < 16 * 16 then String.format("%1$02x", n) + else if n < 16 * 16 * 16 then String.format("%1$03x", n) + else String.format("%1$04x", n) "$" + hex.toUpperCase diff --git a/firepower-core/src/main/scala/com/htmlism/firepower/core/CodeGenerator.scala b/firepower-core/src/main/scala/com/htmlism/firepower/core/CodeGenerator.scala index 074f314..5ee0a5d 100644 --- a/firepower-core/src/main/scala/com/htmlism/firepower/core/CodeGenerator.scala +++ b/firepower-core/src/main/scala/com/htmlism/firepower/core/CodeGenerator.scala @@ -5,7 +5,7 @@ object CodeGenerator extends App: ('A' to 'Z') .map(_.toString) - for (n <- 1 to 3) + for n <- 1 to 3 do val letters = allLetters.take(n) @@ -44,7 +44,7 @@ object CodeGenerator extends App: println(" copy(oComment = Some(s))") println - for (n <- 1 to 3) + for n <- 1 to 3 do val classNum = n diff --git a/firepower-core/src/main/scala/com/htmlism/firepower/core/Subroutine.scala b/firepower-core/src/main/scala/com/htmlism/firepower/core/Subroutine.scala index 383d94e..c1ca276 100644 --- a/firepower-core/src/main/scala/com/htmlism/firepower/core/Subroutine.scala +++ b/firepower-core/src/main/scala/com/htmlism/firepower/core/Subroutine.scala @@ -1,6 +1,6 @@ package com.htmlism.firepower.core -import com.htmlism.firepower.core.AsmBlock._ +import com.htmlism.firepower.core.AsmBlock.* case class Subroutine(name: String, description: String, intents: () => List[MetaIntent]): def call: MetaIntent = diff --git a/firepower-core/src/test/scala/com/htmlism/firepower/core/FeatureSpec.scala b/firepower-core/src/test/scala/com/htmlism/firepower/core/FeatureSpec.scala index 990d1da..dcf82c6 100644 --- a/firepower-core/src/test/scala/com/htmlism/firepower/core/FeatureSpec.scala +++ b/firepower-core/src/test/scala/com/htmlism/firepower/core/FeatureSpec.scala @@ -1,9 +1,9 @@ package com.htmlism.firepower.core import org.scalatest.funsuite.AnyFunSuite -import org.scalatest.matchers.should._ +import org.scalatest.matchers.should.* -import com.htmlism.firepower.core.syntax._ +import com.htmlism.firepower.core.syntax.* object ExampleRegister extends ZeroPageAddress(0x01, "example") with WriteOnlyByteAddress[ExampleRegister] diff --git a/firepower-core/src/test/scala/com/htmlism/firepower/core/MoveSuite.scala b/firepower-core/src/test/scala/com/htmlism/firepower/core/MoveSuite.scala index 2fd1599..958eefb 100644 --- a/firepower-core/src/test/scala/com/htmlism/firepower/core/MoveSuite.scala +++ b/firepower-core/src/test/scala/com/htmlism/firepower/core/MoveSuite.scala @@ -1,6 +1,6 @@ package com.htmlism.firepower.core -import weaver._ +import weaver.* object MoveSuite extends FunSuite: test("TODO move constant"): diff --git a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/Easy6502.scala b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/Easy6502.scala index fec7b5e..6329ccf 100644 --- a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/Easy6502.scala +++ b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/Easy6502.scala @@ -60,10 +60,8 @@ object Easy6502: extension (x: Pixel) def toDefine: String = - if (x.offset == 0) - "SCREEN" - else - "TODO" + if x.offset == 0 then "SCREEN" + else "TODO" extension (x: Pixel) def toDefineWithMath: String = diff --git a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/FeatureDemo.scala b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/FeatureDemo.scala index 7f7d06e..c8e8b3b 100644 --- a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/FeatureDemo.scala +++ b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/FeatureDemo.scala @@ -1,11 +1,11 @@ package com.htmlism.firepower.demo -import scala.util.chaining._ +import scala.util.chaining.* -import cats.syntax.all._ +import cats.syntax.all.* -import com.htmlism.firepower.core.AsmBlock._ -import com.htmlism.firepower.core._ +import com.htmlism.firepower.core.AsmBlock.* +import com.htmlism.firepower.core.* object FeatureDemo: val program: List[String] = diff --git a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/PrintPrograms.scala b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/PrintPrograms.scala index 73236fd..a2a8f7f 100644 --- a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/PrintPrograms.scala +++ b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/PrintPrograms.scala @@ -1,12 +1,12 @@ package com.htmlism.firepower.demo -import scala.util.chaining._ +import scala.util.chaining.* import zio.* -import com.htmlism.firepower.core.AsmBlock._ -import com.htmlism.firepower.core.AssemblerOptions._ -import com.htmlism.firepower.core._ +import com.htmlism.firepower.core.AsmBlock.* +import com.htmlism.firepower.core.AssemblerOptions.* +import com.htmlism.firepower.core.* import com.htmlism.rufio.withzio.* object PrintPrograms extends ZIOAppDefault: diff --git a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/PrintThree.scala b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/PrintThree.scala index 00c6739..8ea2b31 100644 --- a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/PrintThree.scala +++ b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/PrintThree.scala @@ -1,11 +1,11 @@ package com.htmlism.firepower.demo -import scala.util.chaining._ +import scala.util.chaining.* -import cats.syntax.all._ +import cats.syntax.all.* -import com.htmlism.firepower.core.AsmBlock._ -import com.htmlism.firepower.core._ +import com.htmlism.firepower.core.AsmBlock.* +import com.htmlism.firepower.core.* object PrintThree: def build(screen: Easy6502.Screen): List[MetaIntent.Move[Easy6502.Color, Easy6502.Screen.Pixel]] = diff --git a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/SnakeEasy6502.scala b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/SnakeEasy6502.scala index 966c6df..72e156d 100644 --- a/firepower-demo/src/main/scala/com/htmlism/firepower/demo/SnakeEasy6502.scala +++ b/firepower-demo/src/main/scala/com/htmlism/firepower/demo/SnakeEasy6502.scala @@ -4,7 +4,7 @@ import scala.annotation.tailrec import scala.collection.immutable.ListMap import scala.util.chaining.* -import cats.syntax.all._ +import cats.syntax.all.* import com.htmlism.firepower.core.AsmBlock.Intent import com.htmlism.firepower.core.* @@ -51,7 +51,7 @@ object SnakeEasy6502: ): ListMap[String, AsmBlock.NamedCodeBlock] = todo.collect { case x: MetaIntent.Jump => x } match case head :: tail => - if (callGraph.contains(head.target)) callGraphRecur(callGraph, tail) + if callGraph.contains(head.target) then callGraphRecur(callGraph, tail) else val rts = AsmBlock.Intent( diff --git a/nescant/src/test/scala/com/htmlism/nescant/dsl/ByteSinkSpec.scala b/nescant/src/test/scala/com/htmlism/nescant/dsl/ByteSinkSpec.scala index 0dd5bb6..9a06787 100644 --- a/nescant/src/test/scala/com/htmlism/nescant/dsl/ByteSinkSpec.scala +++ b/nescant/src/test/scala/com/htmlism/nescant/dsl/ByteSinkSpec.scala @@ -1,8 +1,8 @@ package com.htmlism.nescant package dsl -import org.scalatest.flatspec._ -import org.scalatest.matchers._ +import org.scalatest.flatspec.* +import org.scalatest.matchers.* class ByteSinkSpec extends AnyFlatSpec with should.Matchers: "A zero page address" should "be a byte-wide sync" in: diff --git a/nescant/src/test/scala/com/htmlism/nescant/dsl/ByteSourceSpec.scala b/nescant/src/test/scala/com/htmlism/nescant/dsl/ByteSourceSpec.scala index 1e007e5..c7cf6b6 100644 --- a/nescant/src/test/scala/com/htmlism/nescant/dsl/ByteSourceSpec.scala +++ b/nescant/src/test/scala/com/htmlism/nescant/dsl/ByteSourceSpec.scala @@ -1,8 +1,8 @@ package com.htmlism.nescant package dsl -import org.scalatest.flatspec._ -import org.scalatest.matchers._ +import org.scalatest.flatspec.* +import org.scalatest.matchers.* class ByteSourceSpec extends AnyFlatSpec with should.Matchers: private val sink = diff --git a/nescant/src/test/scala/com/htmlism/nescant/dsl/PostFixOpsSpec.scala b/nescant/src/test/scala/com/htmlism/nescant/dsl/PostFixOpsSpec.scala index 701214d..5d7f26f 100644 --- a/nescant/src/test/scala/com/htmlism/nescant/dsl/PostFixOpsSpec.scala +++ b/nescant/src/test/scala/com/htmlism/nescant/dsl/PostFixOpsSpec.scala @@ -1,8 +1,8 @@ package com.htmlism.nescant package dsl -import org.scalatest.flatspec._ -import org.scalatest.matchers._ +import org.scalatest.flatspec.* +import org.scalatest.matchers.* class PostFixOpsSpec extends AnyFlatSpec with should.Matchers: "Numbers" should "support zero page ops" in: diff --git a/project/CatsEffectForkPlugin.scala b/project/CatsEffectForkPlugin.scala index d5f2e92..114abce 100644 --- a/project/CatsEffectForkPlugin.scala +++ b/project/CatsEffectForkPlugin.scala @@ -14,7 +14,7 @@ object CatsEffectForkPlugin extends AutoPlugin { // cats-effect prefers to run in its own main thread // https://github.com/typelevel/cats-effect/pull/3774 - override val buildSettings: Seq[Setting[_]] = Seq( + override val buildSettings: Seq[Setting[?]] = Seq( fork := true ) } diff --git a/project/GitHubPackages.scala b/project/GitHubPackages.scala index 0b2d9fc..91f79e3 100644 --- a/project/GitHubPackages.scala +++ b/project/GitHubPackages.scala @@ -1,5 +1,5 @@ -import sbt._ -import sbt.Keys._ +import sbt.* +import sbt.Keys.* /** * Automatically enriches projects with the following settings (despite the word "override"). diff --git a/project/LintingPlugin.scala b/project/LintingPlugin.scala index 5295f97..9caf62a 100644 --- a/project/LintingPlugin.scala +++ b/project/LintingPlugin.scala @@ -1,6 +1,6 @@ -import sbt.Keys._ -import sbt._ -import scalafix.sbt.ScalafixPlugin.autoImport._ +import sbt.Keys.* +import sbt.* +import scalafix.sbt.ScalafixPlugin.autoImport.* object LintingPlugin extends AutoPlugin { override def trigger = diff --git a/project/ProjectPlugin.scala b/project/ProjectPlugin.scala index 31d64ec..0e29ffa 100644 --- a/project/ProjectPlugin.scala +++ b/project/ProjectPlugin.scala @@ -1,5 +1,5 @@ -import sbt.Keys._ -import sbt._ +import sbt.Keys.* +import sbt.* object ProjectPlugin extends AutoPlugin { override def trigger = allRequirements diff --git a/project/Scala3Plugin.scala b/project/Scala3Plugin.scala index c568aa2..7cd4039 100644 --- a/project/Scala3Plugin.scala +++ b/project/Scala3Plugin.scala @@ -1,5 +1,5 @@ -import sbt.Keys._ -import sbt._ +import sbt.Keys.* +import sbt.* /** * Automatically enriches projects with the following settings (despite the word "override"). @@ -11,11 +11,11 @@ object Scala3Plugin extends AutoPlugin { */ override def trigger: PluginTrigger = AllRequirements - override val buildSettings: Seq[Setting[_]] = Seq( + override val buildSettings: Seq[Setting[?]] = Seq( scalaVersion := "3.3.1" ) - override val projectSettings: Seq[Setting[_]] = Seq( + override val projectSettings: Seq[Setting[?]] = Seq( scalacOptions ++= Seq("-indent", "-rewrite") ) } diff --git a/src/main/scala/com/htmlism/MatchOpcodes.scala b/src/main/scala/com/htmlism/MatchOpcodes.scala index 08df56f..1e594b9 100644 --- a/src/main/scala/com/htmlism/MatchOpcodes.scala +++ b/src/main/scala/com/htmlism/MatchOpcodes.scala @@ -2,9 +2,9 @@ package com.htmlism import java.io.PrintWriter -import cats.syntax.all._ +import cats.syntax.all.* -import com.htmlism.mos6502.model._ +import com.htmlism.mos6502.model.* object MatchOpcodes: def paddedBinary(n: Int, width: Int) = @@ -95,18 +95,17 @@ object MatchOpcodes: b <- 0 to 7 } yield b * 4 + c - for (f <- fancyColumns) - out.print(s"${paddedBinary(f, 8)}") + for f <- fancyColumns do out.print(s"${paddedBinary(f, 8)}") out.print("") - for (r <- Seq(0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0)) + for r <- Seq(0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0) do out.print("") // left header out.print(s"${paddedBinary(r, 3)}") - for (f <- fancyColumns) + for f <- fancyColumns do val fullInt = r + f lookup.get(fullInt) match @@ -129,18 +128,17 @@ object MatchOpcodes: out.print("") out.print("") - for (c <- wideColumns) - out.print(s"${paddedBinary(c, 5)}") + for c <- wideColumns do out.print(s"${paddedBinary(c, 5)}") out.print("") - for (r <- wideRows) + for r <- wideRows do out.print("") // left header out.print(s"${paddedBinary(r, 3)}") - for (c <- wideColumns) + for c <- wideColumns do val fullInt = (r << 5) + c lookup.get(fullInt) match @@ -181,18 +179,17 @@ object MatchOpcodes: val rows = 0 to 7 - for (c <- columns) - out.print(s"${paddedBinary(c, 3)}") + for c <- columns do out.print(s"${paddedBinary(c, 3)}") out.print("") - for (r <- rows) + for r <- rows do out.print("") // left header out.print(s"${paddedBinary(r, 3)}") - for (c <- columns) + for c <- columns do val fullInt = (r << (3 + 2)) + (c << 2) + n lookup.get(fullInt) match diff --git a/src/main/scala/com/htmlism/ShiftExtractor.scala b/src/main/scala/com/htmlism/ShiftExtractor.scala index ae17b13..a3baccb 100644 --- a/src/main/scala/com/htmlism/ShiftExtractor.scala +++ b/src/main/scala/com/htmlism/ShiftExtractor.scala @@ -29,10 +29,8 @@ trait BitExtractor[A]: object AtomExtractor: @tailrec def pow(ex: Int, acc: Int = 1): Int = - if (ex == 0) - acc - else - pow(ex - 1, acc * 2) + if ex == 0 then acc + else pow(ex - 1, acc * 2) abstract class PrimitiveBitExtractor(val length: Int) extends BitExtractor[Int]: private lazy val mask = diff --git a/src/main/scala/com/htmlism/mos6502/dsl/AsmDocumentContext.scala b/src/main/scala/com/htmlism/mos6502/dsl/AsmDocumentContext.scala index f6e1db1..01a4292 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/AsmDocumentContext.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/AsmDocumentContext.scala @@ -3,7 +3,7 @@ package com.htmlism.mos6502.dsl import scala.collection.immutable.ListSet import scala.collection.mutable.ListBuffer -import cats.syntax.all._ +import cats.syntax.all.* case class AsmDocument(xs: List[TopLevelAsmDocumentFragment]): def toAsm: String = diff --git a/src/main/scala/com/htmlism/mos6502/dsl/DslDemo.scala b/src/main/scala/com/htmlism/mos6502/dsl/DslDemo.scala index 11eac5a..ab91913 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/DslDemo.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/DslDemo.scala @@ -3,9 +3,9 @@ package com.htmlism.mos6502.dsl import scala.collection.immutable.ListSet import scala.collection.mutable.ListBuffer -import cats.syntax.all._ +import cats.syntax.all.* -import com.htmlism.mos6502.model._ +import com.htmlism.mos6502.model.* object DslDemo extends App: val cpu = diff --git a/src/main/scala/com/htmlism/mos6502/dsl/IndexedAddressCollection.scala b/src/main/scala/com/htmlism/mos6502/dsl/IndexedAddressCollection.scala index d44a6e4..bd51339 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/IndexedAddressCollection.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/IndexedAddressCollection.scala @@ -1,6 +1,6 @@ package com.htmlism.mos6502.dsl -import com.htmlism.mos6502.model._ +import com.htmlism.mos6502.model.* /** * A typed collection, like memory mapped to screen pixels. Access by index instead of by address. diff --git a/src/main/scala/com/htmlism/mos6502/dsl/ReadWriteLocation.scala b/src/main/scala/com/htmlism/mos6502/dsl/ReadWriteLocation.scala index de6686e..83daac3 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/ReadWriteLocation.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/ReadWriteLocation.scala @@ -1,6 +1,6 @@ package com.htmlism.mos6502.dsl -import com.htmlism.mos6502.model._ +import com.htmlism.mos6502.model.* /** * @param name diff --git a/src/main/scala/com/htmlism/mos6502/dsl/Statement.scala b/src/main/scala/com/htmlism/mos6502/dsl/Statement.scala index e3efda1..982e53d 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/Statement.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/Statement.scala @@ -1,6 +1,6 @@ package com.htmlism.mos6502.dsl -import cats.syntax.all._ +import cats.syntax.all.* import com.htmlism.mos6502.model.Instruction diff --git a/src/main/scala/com/htmlism/mos6502/dsl/syntax/AsmSyntax.scala b/src/main/scala/com/htmlism/mos6502/dsl/syntax/AsmSyntax.scala index 1dd907d..eeb901a 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/syntax/AsmSyntax.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/syntax/AsmSyntax.scala @@ -1,7 +1,7 @@ package com.htmlism.mos6502.dsl package syntax -import com.htmlism.mos6502.model._ +import com.htmlism.mos6502.model.* trait AsmSyntax: def label(s: String)(using ctx: AssemblyContext): Unit = diff --git a/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala b/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala index 7d20dd8..bce4db3 100644 --- a/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala +++ b/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala @@ -1,8 +1,8 @@ package com.htmlism.mos6502.dsl import cats.data.NonEmptyList -import org.scalatest.flatspec._ -import org.scalatest.matchers._ +import org.scalatest.flatspec.* +import org.scalatest.matchers.* class DslSpec extends AnyFlatSpec with should.Matchers: diff --git a/src/test/scala/com/htmlism/mos6502/dsl/snake/Easy6502Spec.scala b/src/test/scala/com/htmlism/mos6502/dsl/snake/Easy6502Spec.scala index e6f7fd6..6ab5fb9 100644 --- a/src/test/scala/com/htmlism/mos6502/dsl/snake/Easy6502Spec.scala +++ b/src/test/scala/com/htmlism/mos6502/dsl/snake/Easy6502Spec.scala @@ -1,11 +1,11 @@ package com.htmlism.mos6502.dsl package snake -import cats.syntax.all._ -import org.scalatest.flatspec._ -import org.scalatest.matchers._ +import cats.syntax.all.* +import org.scalatest.flatspec.* +import org.scalatest.matchers.* -import com.htmlism.mos6502.model._ +import com.htmlism.mos6502.model.* class Easy6502Spec extends AnyFlatSpec with should.Matchers: