Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.IllegalArgumentException: Could not find proxy for case val x1 when using ~~ &("("). #325

Open
He-Pin opened this issue Dec 14, 2024 · 0 comments

Comments

@He-Pin
Copy link
Contributor

He-Pin commented Dec 14, 2024

The code below will cause error on Scala 2.13.x with fastparse 3.1.1

  private def `function-expr0`[_: P]: P[(PathFunctionDefinition, java.util.List[Expression])] = {
    P(`function-name` ~~ &("(")).flatMap { name =>
      val function = FunctionRegistry.getFunction(name)
      if (function eq null) {
        Fail(s"Unknown function: $name")
      } else {
        val f = function.asInstanceOf[AbstractFunctionDefinition[_]]
        val argTypes = java.util.Arrays.asList(f.getArgumentTypes(): _*)
        P("("~ functionParameterParser(argTypes) ~ ")")
          .map(args => (f, args))
      }
    }
  }

which throws:

scalac: Error: Could not find proxy for case val x1: fastparse.ParsingRun in List(value x1, method $anonfun$function-expr0$1, value x1, value lhs, method function-expr0, object JsonPathParser, package jsonpath, package mtop, package ultramax, package alibaba, package com, package <root>) (currentOwner= value input )
java.lang.IllegalArgumentException: Could not find proxy for case val x1: fastparse.ParsingRun in List(value x1, method $anonfun$function-expr0$1, value x1, value lhs, method function-expr0, object JsonPathParser, package jsonpath, package mtop, package ultramax, package alibaba, package com, package <root>) (currentOwner= value input )
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:324)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$proxy$4(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$proxy$4(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$proxy$4(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$proxy$4(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$proxy$4(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$proxy$4(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$proxy$4(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$proxy$4(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$proxy$4(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:329)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxy(LambdaLift.scala:338)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxyRef(LambdaLift.scala:378)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.postTransform(LambdaLift.scala:529)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Select.transform(Trees.scala:856)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Apply.transform(Trees.scala:790)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$ValDef.$anonfun$transform$4(Trees.scala:435)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2636)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:43)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:32)
	at scala.reflect.internal.Trees$ValDef.transform(Trees.scala:434)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.transformTrees(Trees.scala:2594)
	at scala.reflect.internal.Trees$Apply.transform(Trees.scala:790)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$LabelDef.transform(Trees.scala:498)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Typed.transform(Trees.scala:747)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$DefDef.$anonfun$transform$5(Trees.scala:455)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2636)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:43)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:32)
	at scala.reflect.internal.Trees$DefDef.transform(Trees.scala:453)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.transformTrees(Trees.scala:2594)
	at scala.reflect.internal.Trees$Apply.transform(Trees.scala:790)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$If.transform(Trees.scala:683)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$If.transform(Trees.scala:683)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.transformTrees(Trees.scala:2594)
	at scala.reflect.internal.Trees$Apply.transform(Trees.scala:790)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$LabelDef.transform(Trees.scala:498)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.transformTrees(Trees.scala:2594)
	at scala.reflect.internal.Trees$Apply.transform(Trees.scala:790)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$LabelDef.transform(Trees.scala:498)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Typed.transform(Trees.scala:747)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$ValDef.$anonfun$transform$4(Trees.scala:435)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2636)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:43)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:32)
	at scala.reflect.internal.Trees$ValDef.transform(Trees.scala:434)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.transformTrees(Trees.scala:2594)
	at scala.reflect.internal.Trees$Apply.transform(Trees.scala:790)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$LabelDef.transform(Trees.scala:498)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Typed.transform(Trees.scala:747)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.transformTrees(Trees.scala:2594)
	at scala.reflect.internal.Trees$Apply.transform(Trees.scala:790)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$ValDef.$anonfun$transform$4(Trees.scala:435)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2636)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:43)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:32)
	at scala.reflect.internal.Trees$ValDef.transform(Trees.scala:434)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Block.transform(Trees.scala:560)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Typed.transform(Trees.scala:747)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$DefDef.$anonfun$transform$5(Trees.scala:455)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2636)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:43)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:32)
	at scala.reflect.internal.Trees$DefDef.transform(Trees.scala:453)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$Template.transform(Trees.scala:548)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.$anonfun$transform$1(TypingTransformers.scala:53)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2636)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:43)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2598)
	at scala.reflect.internal.Trees$ClassDef.$anonfun$transform$2(Trees.scala:363)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2636)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:43)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:32)
	at scala.reflect.internal.Trees$ClassDef.transform(Trees.scala:362)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:57)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:60)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2625)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2623)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:577)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:60)
	at scala.reflect.internal.Trees$PackageDef.$anonfun$transform$1(Trees.scala:344)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2636)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:43)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:32)
	at scala.reflect.internal.Trees$PackageDef.transform(Trees.scala:344)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.$anonfun$transform$2(TypingTransformers.scala:55)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2636)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:43)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:309)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:551)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:559)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:182)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.super$transformUnit(LambdaLift.scala:583)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.$anonfun$transformUnit$1(LambdaLift.scala:583)
	at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformUnit(LambdaLift.scala:583)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:32)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:483)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:430)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1564)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1548)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1540)
	at scala.tools.nsc.Global$Run.compileFiles(Global.scala:1653)
	at scala.tools.xsbt.CachedCompiler0.run(CompilerBridge.scala:176)
	at scala.tools.xsbt.CachedCompiler0.run(CompilerBridge.scala:139)
	at scala.tools.xsbt.CompilerBridge.run(CompilerBridge.scala:43)
	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
	at org.jetbrains.jps.incremental.scala.local.IdeaIncrementalCompiler.compile(IdeaIncrementalCompiler.scala:49)
	at org.jetbrains.jps.incremental.scala.local.LocalServer.doCompile(LocalServer.scala:51)
	at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:29)
	at org.jetbrains.jps.incremental.scala.remote.Main$.compileLogic(Main.scala:210)
	at org.jetbrains.jps.incremental.scala.remote.Main$.$anonfun$handleCommand$1(Main.scala:191)
	at org.jetbrains.jps.incremental.scala.remote.Main$.decorated$1(Main.scala:178)
	at org.jetbrains.jps.incremental.scala.remote.Main$.handleCommand(Main.scala:188)
	at org.jetbrains.jps.incremental.scala.remote.Main$.serverLogic(Main.scala:161)
	at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:101)
	at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at com.facebook.nailgun.NGSession.runImpl(NGSession.java:312)
	at com.facebook.nailgun.NGSession.run(NGSession.java:198)

But if I change the code to :

  private def `function-expr0`[_: P]: P[(PathFunctionDefinition, java.util.List[Expression])] = {
    P(`function-name` ~~ "(").flatMap { name =>
      val function = FunctionRegistry.getFunction(name)
      if (function eq null) {
        Fail(s"Unknown function: $name")
      } else {
        val f = function.asInstanceOf[AbstractFunctionDefinition[_]]
        val argTypes = java.util.Arrays.asList(f.getArgumentTypes(): _*)
        P(functionParameterParser(argTypes) ~ ")")
          .map(args => (f, args))
      }
    }
  }

It compiles, I encounter this when parse: https://datatracker.ietf.org/doc/html/rfc9535#name-function-extensions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant