Converter icon indicating copy to clipboard operation
Converter copied to clipboard

StackOverflowError (TreeTransformation)

Open fdietze opened this issue 2 years ago • 2 comments

I'm trying to convert ethers (https://www.npmjs.com/package/ethers).

sbt-converter 1.0.0-beta37 Scala 2

"ethers" -> "5.5.3"

But the converter crashes with a StackOverflowError:

[error] PhaseRes.scala:81  StackOverflowError [thread => 146, project => webapp, ms => 12159, phase => typescript, id => ethers]java.lang.StackOverflowError
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsTypeObject(TreeTransformation.scala:433)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsTypeObject$(TreeTransformation.scala:432)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsTypeObject(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsType(TreeTransformation.scala:581)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsType$(TreeTransformation.scala:568)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsType(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.$anonfun$visitTsFunParam$1(TreeTransformation.scala:240)
[error] 	at scala.Option.map(Option.scala:230)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsFunParam(TreeTransformation.scala:240)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsFunParam$(TreeTransformation.scala:235)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsFunParam(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.$anonfun$visitTsFunSig$2(TreeTransformation.scala:248
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsFunSig(TreeTransformation.scala:248)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsFunSig$(TreeTransformation.scala:243)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsFunSig(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsTypeFunction(TreeTransformation.scala:383)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsTypeFunction$(TreeTransformation.scala:379)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsTypeFunction(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsType(TreeTransformation.scala:574)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsType$(TreeTransformation.scala:568)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsType(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.transforms.ExpandTypeMappings$Replace$$anonfun$1.applyOrElse(ExpandTypeMappings.scala:207)
[error] 	at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:38)
[error] 	at org.scalablytyped.converter.internal.ts.transforms.ExpandTypeMappings$Replace.enterTsType(ExpandTypeMappings.scala:203)
[error] 	at org.scalablytyped.converter.internal.ts.transforms.ExpandTypeMappings$Replace.enterTsType(ExpandTypeMappings.scala:195)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsType(TreeTransformation.scala:569)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsType$(TreeTransformation.scala:568)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsType(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsMemberTypeMapped(TreeTransformation.scala:333)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsMemberTypeMapped$(TreeTransformation.scala:320
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsMemberTypeMapped(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsMember(TreeTransformation.scala:599)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsMember$(TreeTransformation.scala:593)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsMember(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.$anonfun$visitTsTypeObject$1(TreeTransformation.scala:436)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsTypeObject(TreeTransformation.scala:436)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsTypeObject$(TreeTransformation.scala:432)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsTypeObject(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsType(TreeTransformation.scala:581)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.visitTsType$(TreeTransformation.scala:568)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformationScopedChanges.visitTsType(TreeTransformations.scala:4)
[error] 	at org.scalablytyped.converter.internal.ts.TreeTransformation.$anonfun$visitTsFunParam$1(TreeTransformation.scala:240)
[error] 	at scala.Option.map(Option.scala:230)

...

I already started to create a minified example, but I have to figure out how to resolve some other errors first...

fdietze avatar Jan 29 '22 01:01 fdietze

You don't seem to be having much luck!

This is ExpandTypeMappings. It's the most complex and least developed part.

I'm thinking it could just catch StackOverflowError for now and go on with its business. I'm working on refactoring and making it more competent and less likely to crash like this, but that work is not going to land for some weeks still.

oyvindberg avatar Jan 29 '22 22:01 oyvindberg

You don't seem to be having much luck!

Haha, yes :smile:

I hope I can help improve this awesome piece of software a bit!

Catching the error and "go on" sounds good enough for now.

fdietze avatar Jan 30 '22 01:01 fdietze