Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 05:52
    som-snytt commented #10603
  • Oct 16 23:34
    SethTisue edited #12171
  • Oct 16 23:34
    SethTisue unlabeled #10603
  • Oct 16 23:33
    SethTisue demilestoned #10603
  • Oct 16 23:33
    SethTisue closed #10603
  • Oct 16 23:33
    SethTisue commented #10603
  • Oct 15 19:04
    NthPortal review_requested #9786
  • Oct 15 17:20
    Kordyjan commented #1284
  • Oct 15 17:14
    Kordyjan synchronize #1284
  • Oct 15 17:13
    Kordyjan opened #1284
  • Oct 15 16:31
    som-snytt commented #12473
  • Oct 15 15:22
    NthPortal commented #12473
  • Oct 15 15:18
    NthPortal commented #12473
  • Oct 15 15:16
    NthPortal commented #12473
  • Oct 15 15:15
    NthPortal commented #12473
  • Oct 15 15:11
    NthPortal commented #12473
  • Oct 15 14:49
    ches commented #12378
  • Oct 15 13:15
    bishabosha edited #2205
  • Oct 15 13:15
    bishabosha assigned #2205
  • Oct 15 13:14
    bishabosha review_requested #2205
Tom Grigg
@griggt
jinx
shvahabi
@shvahabi:matrix.org
[m]
Thanks @griggt and @BalmungSan it seems to be the right answer. But that library seems neither have a release nor being published to scaladex. How can I add it as a dependency? Any solution other than an unmanaged dependency in lib folder?
It also is not available under dotty here https://dotty.epfl.ch/api/index.html
Luis Miguel Mejía Suárez
@BalmungSan
@shvahabi:matrix.org lampepfl/xml-interpolator#17
1 reply
It seems that repo is just a PoC (that apparently was successful)
So the final results should be merged into scala-xml and published soon.
As of today, it seems there is not easy way of using it.
You may want to pop up in that issue and show interest in it being merged.
Felix Bruckmeier
@felixbr

Hi, I've noticed that getting the name of method parameters seems to have changed between 2.13.4 and 2.13.5.

When I have a method

def listCars(`airport-code`: String): Seq[String] = ???

and try to get the names via

classOf[RentalStation].getMethod("listCars", classOf[String]).getParameters.map(_.getName)

Previously it returned "airport-code" for the parameter and now it seems to return "airport$minuscode". My guess is the internal representation has changed and therefore the java reflection no longer works as expected. Is there any other way to solve this than a bandaid-solution using .replaceAll() ?

(This is not my code, so please don't explain to me that reflection is bad, I know that. I'm just trying to upgrade this very commonly used library)

Luis Miguel Mejía Suárez
@BalmungSan
Maybe using Scala reflection over Java one would provide better results?
(just a pointer, no idea how to do that, sorry)
Felix Bruckmeier
@felixbr
The end goal of my efforts is to make this library Scala 3 compatible. So using scala-reflect might indeed work but introducing it doesn't exactly help with the Scala 3 migration 🙂
Guillaume Martres
@smarter
The names had to be encoded because you can't store any random String as a parameter name
to get back the original names you'd have to decode them
Felix Bruckmeier
@felixbr
Is there a function to do that?
(it's in scala.reflect but it's actually part of scala-library)
Felix Bruckmeier
@felixbr
Thank you, this helps a lot :)
gitleet
@gitleet
does scala3 require a specific java version?
Rob Norris
@tpolecat
8+
gitleet
@gitleet
I have openjdk 14.02
Rob Norris
@tpolecat
I think it should work on any JVM >= 8
Luis Miguel Mejía Suárez
@BalmungSan
Are you getting some error?
gitleet
@gitleet
Why does the scala3 g8 template reference this scala version? https://github.com/scala/scala3.g8/blob/main/build.sbt#L4
2.12.13
Rob Norris
@tpolecat
That's for the g8 template project. The actual template code is down in https://github.com/scala/scala3.g8/tree/main/src/main/g8
gitleet
@gitleet
ah ok! Yes doing scalaVersion shows scala 3.0.0
Elvis Opoku Amoako
@Elvis020
any new things with scala3.0.0??
Rob Norris
@tpolecat
yes lots of new things
Elvis Opoku Amoako
@Elvis020
yaay..havenet had time to check to new stuff out yet, wil do very soon
Rob Norris
@tpolecat
http://dotty.epfl.ch/docs/reference/overview.html <- this section of the doc covers the changes
D Cameron Mauch
@DCameronMauch
Is it possible to create a class alias? I am reading this Spark parquet data, which apparently marks the type of one column as com.vividsolutions.jts.geom.Geometry. But now, in my updated code, it’s called org.locationtech.jts.geom.Geometry. Thus it fails to find an Encoder[Geometry]. I was wondering if I could somehow tell the JVM that the first one is actually at the second one.
heksesang
@heksenlied:matrix.org
[m]
You can create a type alias, might work if I understand your scenario correctly.
ollijh
@liff:matrix.org
[m]
will there ever be better-monadic-for for scala 3?
heksenlied
@heksenlied:matrix.org
[m]
The problems that it was made to solve are fixed in Scala 3, I think.
Rob Norris
@tpolecat
Not entirely fixed but the intent is that they will be. There is an open issue.
Fabio Epifani
@epifab

hello! In scala 2 I could have a type class to prove that another type class instance cannot exist:

sealed trait Negative[A]

object Negative {
  implicit def negative[T](implicit t: T): Negative[T] = new Negative[T] {}
  @implicitAmbiguous("Cannot negate ${T}")
  implicit def positive[T]: Negative[T] = new Negative[T] {}
}

What's the canonical way of achieving this in Scala 3?

heksesang
@heksenlied:matrix.org
[m]
NotGiven
Fabio Epifani
@epifab
awesome! thanks
Marco F.
@mfirry
Ichoran
@Ichoran
@Swoorup - No, Scala doesn't have the equivalent of dbg!, not exactly. You can get something close by building it with https://github.com/com-lihaoyi/sourcecode
Rob Norris
@tpolecat
scala> @implicitNotFound("oops, it's a subtype!") type <:!<[A,B] = NotGiven[A <:< B]
// defined alias type <:!<[A, B] = util.NotGiven[A <:< B]

scala> summon[String <:!< Int]
val res2: util.NotGiven[Nothing] = scala.util.NotGiven@10c23a76

scala> summon[String <:!< Object]
1 |summon[String <:!< Object]
  |                          ^
  |                          oops, it's a subtype!
Neato. The type argument interpolator foo ${A} bar doesn't work on type aliases, hm.
known issue lampepfl/dotty#7092
Guillaume Martres
@smarter
as a side-note, be careful about using a type like the <:!< you defined here, it doesn't mean "A is not a subtype of B", it means "I can't prove that A is a subtype of B"
Rob Norris
@tpolecat
:+1: indeed
idk-kid
@idk-kid

I have a nested schema dataframe.
I wanted to traverse and get some information out.
I was writing this function

def func(struct: StructType) = {
    struct match {
      case StructType(arr) => {
        arr.map{ fields =>
          fields match {
            case StructField(field, dataType, _, _) =>
              dataType match {
                case StructType(_) => func(dataType)
                case ArrayType(structTyp: StructType, _) => func(structTyp)
                case _ => .....
              }
          }
        }
      }
    }
  }

This line case StructType(_) => func(dataType) why is it of type DataType by default?
I tried making it StructType but it said cannot upcast.

Can anybody help?

Luis Miguel Mejía Suárez
@BalmungSan
Try with case struct @ StructType(_) => func(struct)
idk-kid
@idk-kid
So, how does this help? I never used that before