-
Notifications
You must be signed in to change notification settings - Fork 223
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
bugfix: Shade sourcecode as it's a dependency of fastparse #3468
Conversation
Notice it in some error reprots we were sent: java.lang.NoClassDefFoundError: sourcecode/Name ``` scala.meta.internal.tokenizers.XmlParser$Xml$.UnpStart(XmlParser.scala:48) scala.meta.internal.tokenizers.XmlParser$Xml$.Unparsed(XmlParser.scala:47) scala.meta.internal.tokenizers.XmlParser$Xml$.XmlContent(XmlParser.scala:43) scala.meta.internal.tokenizers.XmlParser.$anonfun$XmlExpr$1(XmlParser.scala:24) scala.meta.shaded.internal.fastparse.internal.RepImpls$.rec$4(RepImpls.scala:226) scala.meta.shaded.internal.fastparse.internal.RepImpls$.rep$extension(RepImpls.scala:266) scala.meta.shaded.internal.fastparse.package$ByNameOps$.rep$extension(package.scala:202) scala.meta.internal.tokenizers.XmlParser.XmlExpr(XmlParser.scala:24) scala.meta.internal.tokenizers.LegacyScanner.$anonfun$getXml$2(LegacyScanner.scala:932) scala.meta.shaded.internal.fastparse.SharedPackageDefs.parseInputRaw(SharedPackageDefs.scala:69) scala.meta.shaded.internal.fastparse.SharedPackageDefs.parseInputRaw$(SharedPackageDefs.scala:45) scala.meta.shaded.internal.fastparse.package$.parseInputRaw(package.scala:6) scala.meta.shaded.internal.fastparse.Parsed$Extra.trace(Parsed.scala:139) scala.meta.shaded.internal.fastparse.Parsed$Extra.traced(Parsed.scala:118) scala.meta.internal.tokenizers.LegacyScanner.getXml(LegacyScanner.scala:936) scala.meta.internal.tokenizers.LegacyScanner.fetchLT$1(LegacyScanner.scala:295) scala.meta.internal.tokenizers.LegacyScanner.fetchToken(LegacyScanner.scala:303) scala.meta.internal.tokenizers.LegacyScanner.nextToken(LegacyScanner.scala:211) scala.meta.internal.tokenizers.LegacyScanner.foreach(LegacyScanner.scala:1011) scala.meta.internal.tokenizers.ScalametaTokenizer.uncachedTokenize(ScalametaTokenizer.scala:24) scala.meta.internal.tokenizers.ScalametaTokenizer.$anonfun$tokenize$1(ScalametaTokenizer.scala:17) scala.collection.concurrent.TrieMap.getOrElseUpdate(TrieMap.scala:962) scala.meta.internal.tokenizers.ScalametaTokenizer.tokenize(ScalametaTokenizer.scala:17) scala.meta.internal.tokenizers.ScalametaTokenizer$$anon$2.apply(ScalametaTokenizer.scala:332) scala.meta.tokenizers.Api$XtensionTokenizeDialectInput.tokenize(Api.scala:25) scala.meta.tokenizers.Api$XtensionTokenizeInputLike.tokenize(Api.scala:14) scala.meta.internal.pc.ScriptFirstImportPosition$.tokenize(ScriptFirstImportPosition.scala:112) scala.meta.internal.pc.ScriptFirstImportPosition$.skipPrefixesOffset(ScriptFirstImportPosition.scala:62) scala.meta.internal.pc.ScriptFirstImportPosition$.skipUsingDirectivesOffset(ScriptFirstImportPosition.scala:59) scala.meta.internal.pc.AutoImports$.forScalaSource$1$$anonfun$1(AutoImports.scala:324) scala.Option.map(Option.scala:242) scala.meta.internal.pc.AutoImports$.forScalaSource$1(AutoImports.scala:334) scala.meta.internal.pc.AutoImports$.autoImportPosition$$anonfun$1(AutoImports.scala:376) scala.Option.orElse(Option.scala:477) scala.meta.internal.pc.AutoImports$.autoImportPosition(AutoImports.scala:376) scala.meta.internal.pc.AutoImports$.generator(AutoImports.scala:98) scala.meta.internal.pc.completions.CompletionProvider.completions(CompletionProvider.scala:70) scala.meta.internal.pc.ScalaPresentationCompiler.complete$$anonfun$1(ScalaPresentationCompiler.scala:136) ```
@tgodzik now we have another problem of the same type. scalafmt uses i don't think they can provide their own version of these types, less alone unshaded. what now? |
Could scalafmt use the shaded version then instead of the original? They should be available on the classpath. |
how would that happen? in the case of FileLine, it wasn't using it directly, just complained that using FileLine leads to unrecognized type. |
So the macro here is trying to get unshaded classes instead of the shaded ones? I guess macros might have an issue here. 🤔 We could try to inline the logger, where is it used? |
Ok, I found it, so the options currently are:
I think we can just revert, what do you think? |
I'm for reverting |
Ok, let's do that, if we encounter any more issues we can try to inline the implementation of sourcecode into scalameta, since it's pretty small. |
Notice it in some error reprots we were sent:
java.lang.NoClassDefFoundError: sourcecode/Name