Skip to content

regression: Integer overflow in nesting level of a Macro expansion (PolyType/TypeBounds) between 3.1.1 and 3.1.2 #14921

Closed
@arixmkii

Description

@arixmkii

Compiler version

3.1.2

Minimized code

It requires some macro magic to reproduce and I didn't manage to extract the minimal reproducible code. But it manifests with one specific open source project https://github.com/davenverse/epimetheus

If you perform git clone and then run sbt (in my case JDK 17 was used) with these commands it will encounter compilation errors.

++ 3.1.2; Test / compile

Output

sbt log

[error] -- Error: ~/epimetheus/core/src/test/scala/io/chrisdavenport/epimetheus/CounterSpec.scala:30:68 
[error] 30 |        counter <- Counter.labelled(cr, Name("boo"), "Boo Counter", Sized(Label("foo")), {(s: String) => Sized(s)})
[error]    |                                                                    ^
[error]    |Could not decrease the nesting level of a from 2147483647 to 6 in

And a lot more of PolyType and TypeBounds output.

Expectation

Compile w/o errors like it was with 3.1.1

++ 3.1.1; Test / compile

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions