scala-rewrites icon indicating copy to clipboard operation
scala-rewrites copied to clipboard

NoSuchMethodError error on ScalafixGlobal while trying to run ExplicitNonNullaryApply rule

Open ttj4 opened this issue 2 years ago • 1 comments

I'm trying to upgrade my codebase from 2.11 to 2.13. I have a wrapper application for scalafix (it just invokes scalafix programatically - which is on scala 2.12, and rewrite - 0.1.3) While trying to invoke ExplicitNonNullaryApply I get the following error:

scala-meta : "org.scalameta" %% "scalameta" % "4.5.4" scalafix : "ch.epfl.scala" % "scalafix-cli" % "0.10.0" cross CrossVersion.full

java.lang.NoSuchMethodError: 'scala.meta.internal.pc.ScalafixGlobal scala.meta.internal.pc.ScalafixGlobal$.newCompiler(scala.collection.immutable.List, scala.collection.immutable.List, scala.collection.immutable.Map)' at fix.scala213.ExplicitNonNullaryApply.$anonfun$withConfiguration$1(ExplicitNonNullaryApply.scala:127) at scalafix.internal.v1.LazyValue.$anonfun$computeValue$1(LazyValue.scala:25) at scala.util.Try$.apply(Try.scala:213) at scalafix.internal.v1.LazyValue.computeValue(LazyValue.scala:23) at scalafix.internal.v1.LazyValue.value(LazyValue.scala:30) at fix.scala213.ExplicitNonNullaryApply.power$lzycompute$1(ExplicitNonNullaryApply.scala:43) at fix.scala213.ExplicitNonNullaryApply.power$1(ExplicitNonNullaryApply.scala:43) at fix.scala213.ExplicitNonNullaryApply.isJavaDefined$1(ExplicitNonNullaryApply.scala:52) at fix.scala213.ExplicitNonNullaryApply.$anonfun$unsafeFix$12(ExplicitNonNullaryApply.scala:76) at fix.scala213.ExplicitNonNullaryApply.$anonfun$unsafeFix$12$adapted(ExplicitNonNullaryApply.scala:66) at scala.Option$WithFilter.$anonfun$withFilter$1(Option.scala:332) at scala.Option$WithFilter.$anonfun$withFilter$1$adapted(Option.scala:332) at scala.Option.filter(Option.scala:289) at scala.Option$WithFilter.map(Option.scala:329) at fix.scala213.ExplicitNonNullaryApply.$anonfun$unsafeFix$8(ExplicitNonNullaryApply.scala:66) at scala.Option$WithFilter.flatMap(Option.scala:271) at fix.scala213.ExplicitNonNullaryApply.fix$scala213$ExplicitNonNullaryApply$$fix$1(ExplicitNonNullaryApply.scala:57) at fix.scala213.ExplicitNonNullaryApply$$anonfun$unsafeFix$15.applyOrElse(ExplicitNonNullaryApply.scala:93) at fix.scala213.ExplicitNonNullaryApply$$anonfun$unsafeFix$15.applyOrElse(ExplicitNonNullaryApply.scala:91) at scala.PartialFunction$Lifted.apply(PartialFunction.scala:228) at scala.PartialFunction$Lifted.apply(PartialFunction.scala:224) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:32) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1(SimpleTraverser.scala:5) at scala.meta.transversers.SimpleTraverser.$anonfun$apply$1$adapted(SimpleTraverser.scala:5) at scala.collection.immutable.List.foreach(List.scala:431) at scala.meta.transversers.SimpleTraverser.apply(SimpleTraverser.scala:5) at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:33) at scala.meta.transversers.Api$XtensionCollectionLikeUI.collect(Api.scala:36) at fix.scala213.ExplicitNonNullaryApply.unsafeFix(ExplicitNonNullaryApply.scala:91) at fix.scala213.ExplicitNonNullaryApply.fix(ExplicitNonNullaryApply.scala:27) at scalafix.internal.v1.Rules.$anonfun$semanticPatch$1(Rules.scala:78) at scala.collection.immutable.List.map(List.scala:297) at scalafix.internal.v1.Rules.semanticPatch(Rules.scala:76) at scalafix.internal.v1.MainOps$.getPatchesAndDiags(MainOps.scala:305) at scalafix.internal.v1.MainOps$.unsafeHandleFile(MainOps.scala:255) at scalafix.internal.v1.MainOps$.handleFile(MainOps.scala:360) at scalafix.internal.v1.MainOps$.$anonfun$run$3(MainOps.scala:404) at scalafix.internal.v1.MainOps$.$anonfun$run$3$adapted(MainOps.scala:398) at scala.collection.Iterator.foreach(Iterator.scala:943) at scala.collection.Iterator.foreach$(Iterator.scala:943) at scala.collection.AbstractIterator.foreach(Iterator.scala:1431) at scala.collection.IterableLike.foreach(IterableLike.scala:74) at scala.collection.IterableLike.foreach$(IterableLike.scala:73) at scala.collection.AbstractIterable.foreach(Iterable.scala:56) at scalafix.internal.v1.MainOps$.run(MainOps.scala:398) at scalafix.internal.v1.MainOps$.run(MainOps.scala:78) at scalafix.internal.interfaces.ScalafixArgumentsImpl.run(ScalafixArgumentsImpl.scala:38)

ttj4 avatar Apr 19 '22 03:04 ttj4

A new release will be needed for compatbility with scalafix 0.10.0, see https://github.com/scala/scala-rewrites/pull/153. For the time being, stick to scalafix 0.9.x as mentioned in the README.

bjaglin avatar Apr 26 '22 05:04 bjaglin