Skip to content

Instantly share code, notes, and snippets.

package fix
import scala.meta._
import scalafix.v1._
class ImplicitClassExtension extends SyntacticRule("ImplicitClassExtension") {
val exclude: Seq[String] = Seq(
// 書き換えるとoverload衝突する場合や、呼び出しの優先順位変わってエラーになるものなど、
// 下記の条件で除外しきれなかった例外的なものをfile単位で除くためにここに記述
)
import scala.compiletime.ops.int
import scala.compiletime.ops.long
import scala.compiletime.ops.double
type Factorial[A <: Int] =
Factorial0[A, 1L]
type Factorial0[A <: Int, B <: Long] <: Long =
int.<[A, 1] match
case true =>
import scala.compiletime.ops.int
import scala.compiletime.ops.double
type F1[A <: Int] <: Double =
int.%[A, 2] match
case 0 =>
1d
case 1 =>
-1d
package x;
class A {
public int a() { return 2; }
}
public class B extends A{}
@xuwei-k
xuwei-k / SudokuSolver.scala
Last active September 8, 2024 08:48
Scala 3 match type sudoku solver
import scala.compiletime.ops.boolean.&&
import scala.compiletime.ops.boolean
import scala.compiletime.ops.string
import scala.compiletime.ops.int
import scala.compiletime.ops.any
type ToSquare = (
0, 0, 0, 1, 1, 1, 2, 2, 2,
0, 0, 0, 1, 1, 1, 2, 2, 2,
0, 0, 0, 1, 1, 1, 2, 2, 2,
import scala.compiletime.ops.boolean.&&
import scala.compiletime.ops.boolean
import scala.compiletime.ops.int
import scala.compiletime.ops.any
type ToSquare = (
0, 0, 0, 1, 1, 1, 2, 2, 2,
0, 0, 0, 1, 1, 1, 2, 2, 2,
0, 0, 0, 1, 1, 1, 2, 2, 2,
3, 3, 3, 4, 4, 4, 5, 5, 5,
@xuwei-k
xuwei-k / Sudoku.scala
Created September 7, 2024 11:32
sudoku
import scala.compiletime.ops.boolean.&&
type Sudoku[A <: Tuple] = A match {
case (
_1_1 *: _1_2 *: _1_3 *: _1_4 *: _1_5 *: _1_6 *: _1_7 *: _1_8 *: _1_9 *:
_2_1 *: _2_2 *: _2_3 *: _2_4 *: _2_5 *: _2_6 *: _2_7 *: _2_8 *: _2_9 *:
_3_1 *: _3_2 *: _3_3 *: _3_4 *: _3_5 *: _3_6 *: _3_7 *: _3_8 *: _3_9 *:
_4_1 *: _4_2 *: _4_3 *: _4_4 *: _4_5 *: _4_6 *: _4_7 *: _4_8 *: _4_9 *:
_5_1 *: _5_2 *: _5_3 *: _5_4 *: _5_5 *: _5_6 *: _5_7 *: _5_8 *: _5_9 *:
_6_1 *: _6_2 *: _6_3 *: _6_4 *: _6_5 *: _6_6 *: _6_7 *: _6_8 *: _6_9 *:
import scala.compiletime.ops.boolean.&&
type Sudoku[A <: Tuple] = A match {
case (
_1_1 *: _1_2 *: _1_3 *: _1_4 *: _1_5 *: _1_6 *: _1_7 *: _1_8 *: _1_9 *:
_2_1 *: _2_2 *: _2_3 *: _2_4 *: _2_5 *: _2_6 *: _2_7 *: _2_8 *: _2_9 *:
_3_1 *: _3_2 *: _3_3 *: _3_4 *: _3_5 *: _3_6 *: _3_7 *: _3_8 *: _3_9 *:
_4_1 *: _4_2 *: _4_3 *: _4_4 *: _4_5 *: _4_6 *: _4_7 *: _4_8 *: _4_9 *:
_5_1 *: _5_2 *: _5_3 *: _5_4 *: _5_5 *: _5_6 *: _5_7 *: _5_8 *: _5_9 *:
_6_1 *: _6_2 *: _6_3 *: _6_4 *: _6_5 *: _6_6 *: _6_7 *: _6_8 *: _6_9 *:
import sbt._
import sbt.Keys._
import sbt.internal.util.ManagedLogger
import sbt.librarymanagement.DependencyResolution
import sbtlicensereport.SbtLicenseReport.autoImportImpl.LicenseCategory
import scala.xml.XML
import sjsonnew.BasicJsonProtocol._
import sjsonnew.JsonFormat
import sjsonnew.JsonWriter
import sjsonnew.support.scalajson.unsafe.PrettyPrinter