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

Fix opacity of opaque types on Scala 3 #468

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Fix opacity of opaque types on Scala 3

bbb841f
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Open

Fix opacity of opaque types on Scala 3 #468

Fix opacity of opaque types on Scala 3
bbb841f
Select commit
Loading
Failed to load commit list.
GitHub Actions / Test reports (JDK 11, Scala 2.11) succeeded Jul 1, 2024 in 0s

353 passed, 0 failed and 0 skipped

Tests passed successfully

Report Passed Failed Skipped Time
izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.internal.fundamentals.collections.IzCollectionsTest.xml 1✅ 4ms
izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.internal.fundamentals.platform.IzStringTest.xml 1✅ 1ms
izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.BasicDottyTest.xml 1✅ 276ms
izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.LightTypeTagProgressionTest.xml 16✅ 328ms
izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.LightTypeTagTest.xml 60✅ 1s
izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.Scala213Plus_LightTypeTagTest.xml 2✅ 64ms
izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.TagMacroTest.xml 1✅ 8ms
izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.TagProgressionTest.xml 13✅ 158ms
izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.TagTest.xml 83✅ 1s
izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.internal.fundamentals.collections.IzCollectionsTest.xml 1✅ 20ms
izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.internal.fundamentals.platform.IzStringTest.xml 1✅ 27ms
izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.AllPartsStrongTestScala2Jvm.xml 6✅ 807ms
izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.BasicDottyTestMirror.xml 1✅ 251ms
izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.LightTypeTagProgressionTest.xml 15✅ 2s
izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.LightTypeTagTest.xml 57✅ 818ms
izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.TagMacroTest.xml 1✅ 12ms
izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.TagProgressionTest.xml 12✅ 2s
izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.TagTest.xml 81✅ 2s

✅ izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.internal.fundamentals.collections.IzCollectionsTest.xml

1 tests were completed in 4ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.internal.fundamentals.collections.IzCollectionsTest 1✅ 4ms

✅ izumi.reflect.internal.fundamentals.collections.IzCollectionsTest

✅ Collection utils should allow to convert mappings to multimaps

✅ izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.internal.fundamentals.platform.IzStringTest.xml

1 tests were completed in 1ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.internal.fundamentals.platform.IzStringTest 1✅ 1ms

✅ izumi.reflect.internal.fundamentals.platform.IzStringTest

✅ Extended string should support boolean parsing

✅ izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.BasicDottyTest.xml

1 tests were completed in 276ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.BasicDottyTest 1✅ 276ms

✅ izumi.reflect.test.BasicDottyTest

✅ super-basic test 1

✅ izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.LightTypeTagProgressionTest.xml

16 tests were completed in 328ms with 16 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.LightTypeTagProgressionTest 16✅ 328ms

✅ izumi.reflect.test.LightTypeTagProgressionTest

✅ [progression] lightweight type tags (all versions) should progression test: can't support subtyping of type prefixes
✅ [progression] lightweight type tags (all versions) should progression test: can't support subtyping of concrete type projections
✅ [progression] lightweight type tags (all versions) should progression test: subtype check fails when child type has absorbed a covariant type parameter of the supertype
✅ [progression] lightweight type tags (all versions) should progression test: bounds-based subtype checks for lambdas do not work properly (LambdaParameter must contain bounds and NameReferences shouldn't for this to work)
✅ [progression] lightweight type tags (all versions) should progression test: a portion of `support swapped parents` fails on Dotty
✅ [progression] lightweight type tags (all versions) should progression test: indirect structural checks do not work
✅ [progression] lightweight type tags (all versions) should progression test: combined intersection lambda tags still contain some junk bases (coming from the unsound same-arity assumption in LightTypeTag#combine)
✅ [progression] lightweight type tags (all versions) should progression test: combined lambda tags still contain some junk bases (coming from the unsound same-arity assumption in LightTypeTag#combine)
✅ [progression] lightweight type tags (all versions) should progression test: `applied tags should not contain junk bases` is not supported on Dotty
✅ [progression] lightweight type tags (all versions) should progression test: `lambda tags should not contain junk bases` is not supported on Dotty
✅ [progression] lightweight type tags (all versions) should progression test: Dotty fails to `support methods with type parameters in structural refinements`
✅ [progression] lightweight type tags (all versions) should fails to treat tautological refinements as equal to the underlying type
✅ [progression] lightweight type tags (all versions) should fails to support methods in refinements with multiple parameter lists
✅ [progression] lightweight type tags (all versions) should progression test: fails to `Any/Object relation is consistent with Scala`
✅ [progression] lightweight type tags (all versions) should progression test: can't distinguish between equal-bounded type and alias inside refinements in dotty
✅ [progression] lightweight type tag (Dotty) should fails to support polymorphic function types

✅ izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.LightTypeTagTest.xml

60 tests were completed in 1s with 60 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.LightTypeTagTest 60✅ 1s

✅ izumi.reflect.test.LightTypeTagTest

✅ lightweight type tags (all versions) should support distinction between subtypes
✅ lightweight type tags (all versions) should eradicate intersection tautologies with Any/Object
✅ lightweight type tags (all versions) should do not eradicate intersections with Nothing
✅ lightweight type tags (all versions) should eradicate self-intersection (X with X)
✅ lightweight type tags (all versions) should support subtype checks
✅ lightweight type tags (all versions) should support unsound subtype checks
✅ lightweight type tags (all versions) should support swapped parents
✅ lightweight type tags (all versions) should support subtyping of parents parameterized with type lambdas
✅ lightweight type tags (all versions) should support subtyping of parents parameterized with type lambdas in combined tags
✅ lightweight type tags (all versions) should support subtyping of parents parameterized with type lambdas in combined tags with multiple parameters
✅ lightweight type tags (all versions) should support PDTs
✅ lightweight type tags (all versions) should intersections are associative
✅ lightweight type tags (all versions) should runtime-combined intersections are associative
✅ lightweight type tags (all versions) should support type alias and refinement subtype checks
✅ lightweight type tags (all versions) should support refinement higher-kinded subtype checks
✅ lightweight type tags (all versions) should support literal types
✅ lightweight type tags (all versions) should resolve comparisons of object and trait with the same name
✅ lightweight type tags (all versions) should resolve prefixes of annotated types
✅ lightweight type tags (all versions) should `withoutArgs` comparison works
✅ lightweight type tags (all versions) should `typeArgs` works
✅ lightweight type tags (all versions) should support subtyping of a simple combined type
✅ lightweight type tags (all versions) should issue #762: properly strip away annotated types / empty refinements / type aliases
✅ lightweight type tags (all versions) should calculate identical hashCode in parsed and constructed instances
✅ lightweight type tags (all versions) should support non-positional typetag combination
✅ lightweight type tags (all versions) should support additional mixin traits after first trait with a HKT parameter
✅ lightweight type tags (all versions) should support LTagK* family summoners
✅ lightweight type tags (all versions) should support higher-kinded intersection type equality
✅ lightweight type tags (all versions) should support contravariance
✅ lightweight type tags (all versions) should support typetag combination
✅ lightweight type tags (all versions) should tautological intersections with Any/Object are discarded from internal structure
✅ lightweight type tags (all versions) should wildcards are supported
✅ lightweight type tags (all versions) should wildcards with bounds are supported
✅ lightweight type tags (all versions) should generate tags for wildcards with type boundaries
✅ lightweight type tags (all versions) should https://github.com/zio/izumi-reflect/issues/315 regression test 2.1.0-M1: IntegrationCheck[F] should not be related to IntegrationCheck[Identity]
✅ lightweight type tags (all versions) should normalize stable PDTs (https://github.com/zio/zio/issues/3390)
✅ lightweight type tags (all versions) should properly dealias and assign prefixes to existential types and wildcards
✅ lightweight type tags (all versions) should no redundant $ in object names
✅ lightweight type tags (all versions) should support basic None.type subtype check
✅ lightweight type tags (all versions) should supports complex type lambdas
✅ lightweight type tags (all versions) should intersection lambda tags should not contain junk bases
✅ lightweight type tags (all versions) should No degenerate lambdas (regression test https://github.com/zio/izumi-reflect/issues/345)
✅ lightweight type tags (all versions) should check subtyping when higher-kinds are involved on Scala 3
✅ lightweight type tags (all versions) should support higher-kinded intersection type subtyping
✅ lightweight type tags (all versions) should support higher-kinded intersection type combination isn't supported on Dotty
✅ lightweight type tags (all versions) should support structural & refinement type subtype checks
✅ lightweight type tags (all versions) should support structural & refinement type equality
✅ lightweight type tags (all versions) should strong summons test
✅ lightweight type tags (all versions) should distinguishes between val and type structural refinements
✅ lightweight type tags (all versions) should does not contain intersections in plain structural refinements
✅ lightweight type tags (all versions) should support equal-bounded types as paradoxical (before 2.3.0 and since 2.3.6 NOT equal to their underlying)
✅ lightweight type tags (all versions) should support structural subtype checks
✅ lightweight type tags (all versions) should what about non-empty refinements with intersections
✅ lightweight type tags (all versions) should support contravariance in refinement method comparisons
✅ lightweight type tags (all versions) should support human-readable representation
✅ lightweight type tags (Dotty) should tautological intersections with Matchable are discarded from internal structure (Scala 3 specific, Matchable)
✅ lightweight type tags (Dotty) should tautological intersections with Matchable are discarded from internal structure (Scala 3 specific, Matchable) (Tag)
✅ lightweight type tags (Dotty) should tautological unions with Any/AnyRef/Matchable/Object are discarded from internal structure (Scala 3 specific, Matchable)
✅ lightweight type tags (Dotty) should tautological unions with Any/AnyRef/Matchable/Object are discarded from internal structure (Scala 3 specific, Matchable) (Tag)
✅ lightweight type tags (Dotty) should support top-level abstract types (Scala 3 specific, top level type aliases)
✅ lightweight type tags (Dotty) should support opaque types

✅ izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.Scala213Plus_LightTypeTagTest.xml

2 tests were completed in 64ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.Scala213Plus_LightTypeTagTest 2✅ 64ms

✅ izumi.reflect.test.Scala213Plus_LightTypeTagTest

✅ lightweight type tags (2.13+) should literal types behave in sane manner https://github.com/zio/izumi-reflect/issues/284
✅ lightweight type tags (2.13+) should support string constant types (Scala 2.13+ syntax)

✅ izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.TagMacroTest.xml

1 tests were completed in 8ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.TagMacroTest 1✅ 8ms

✅ izumi.reflect.test.TagMacroTest

✅ Tag macro should reconstruct lambda tags

✅ izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.TagProgressionTest.xml

13 tests were completed in 158ms with 13 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.TagProgressionTest 13✅ 158ms

✅ izumi.reflect.test.TagProgressionTest

✅ [progression] Tag (all versions) should progression test: can't substitute type parameters inside defs/vals in structural types
✅ [progression] Tag (all versions) should progression test: cannot resolve a higher-kinded type in a higher-kinded tag in a named deeply-nested type lambda on Scala 2
✅ [progression] Tag (all versions) should progression test: cannot resolve a higher-kinded type in a higher-kinded tag in an anonymous deeply-nested type lambda
✅ [progression] Tag (all versions) should progression test: projections into singletons are not handled properly (on Scala 2)
✅ [progression] Tag (all versions) should Progression test: Scala 2 fails to Handle Tags outside of a predefined set (Somehow raw Tag.auto.T works on Scala 2, but not when defined as an alias)
✅ [progression] Tag (all versions) should progression test: fails to combine higher-kinded intersection types without losing ignored type arguments
✅ [progression] Tag (all versions) should progression test: Dotty fails to regression test: resolve correct closestClass for Scala vararg AnyVal (https://github.com/zio/izumi-reflect/issues/224)
✅ [progression] Tag (all versions) should progression test: fails to preserve lower bound when combining higher-kinded type members
✅ [progression] Tag (all versions) should progression test: fails on Scala 3 don't lose tautological intersection components other than Any/AnyRef
✅ [progression] Tag (all versions) should progression test: intersection tautologies are not removed automatically when constructing combined intersection type
✅ [progression] Tag (Dotty) should progression test: combine intersection path-dependent intersection types with inner tags doesn't work yet (Scala 3)
✅ [progression] Tag (Dotty) should progression test: fails to don't lose tautological union components other than Nothing
✅ [progression] Tag (Dotty) should progression test: union tautologies are not removed automatically when constructing combined union type

✅ izumi-reflect/izumi-reflect/.js/target/test-reports/TEST-izumi.reflect.test.TagTest.xml

83 tests were completed in 1s with 83 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.TagTest 83✅ 1s

✅ izumi.reflect.test.TagTest

✅ Tag (all versions) should Work for any concrete type
✅ Tag (all versions) should Support identity lambda type equality
✅ Tag (all versions) should regression test for https://github.com/zio/izumi-reflect/issues/98
✅ Tag (all versions) should Work for any abstract type with available Tag when obscured by empty refinement
✅ Tag (all versions) should handle function local type aliases
✅ Tag (all versions) should Can dealias transparent type members with class type parameters inside them when a tag is summoned _inside_ the class, because LightTypeTags are not affected by https://github.com/scala/bug/issues/11139
✅ Tag (all versions) should Tag.auto.T kind inference macro works for known cases
✅ Tag (all versions) should Shouldn't work for any abstract type without available TypeTag or Tag or TagK
✅ Tag (all versions) should handle Id type lambda
✅ Tag (all versions) should handle Id1 type lambda
✅ Tag (all versions) should handle singleton types
✅ Tag (all versions) should handle nested intersection aliases
✅ Tag (all versions) should handle nested refined intersection aliases
✅ Tag (all versions) should simple combined Tag
✅ Tag (all versions) should consider class member's this-prefix to be the defining template, not the most specific prefix from where the call is happening (deliberate omission of this for better ergonomics in cakes)
✅ Tag (all versions) should Does NOT synthesize Tags for abstract types, but recursively summons Tag[this.Abstract]
✅ Tag (all versions) should DOES synthesize Tags for abstract types (object X; X.T), does not summon Tag[X.T]
✅ Tag (all versions) should DOES synthesize Tags for abstract types (trait X; X#T), does not summon Tag[X#T]
✅ Tag (all versions) should DOES synthesize Tags for abstract types (val x; x.T), does not summon Tag[x.T]
✅ Tag (all versions) should Work for an abstract type with available TagK when obscured by empty refinement
✅ Tag (all versions) should Work for an abstract type with available TagK when TagK is requested through an explicit implicit
✅ Tag (all versions) should Work for an abstract type with available TagKK
✅ Tag (all versions) should Work for any configuration of parameters
✅ Tag (all versions) should handle Swap type lambda
✅ Tag (all versions) should Assemble from higher than TagKK tags
✅ Tag (all versions) should regression test: https://github.com/zio/izumi-reflect/issues/293 assemble tag for Builder[B, Collection[B]]
✅ Tag (all versions) should combine intersection types
✅ Tag (all versions) should summon HKT Tag for a Java type
✅ Tag (all versions) should regression test: https://github.com/zio/izumi-reflect/issues/76 derive tag for a parametric trait inside object
✅ Tag (all versions) should this.type tags should be generated, but are identical with their class / object tag
✅ Tag (all versions) should this.type should have correct prefix
✅ Tag (all versions) should regression test: https://github.com/zio/izumi-reflect/issues/83, convert trifunctor tag to bifunctor tag
✅ Tag (all versions) should resolve TagK from TagKK
✅ Tag (all versions) should can materialize TagK for type lambdas that close on a generic parameter with available Tag
✅ Tag (all versions) should can materialize TagK for type lambdas that close on a generic parameter with available Tag when the constructor is a type parameter
✅ Tag (all versions) should type parameter covariance works after combine
✅ Tag (all versions) should combine Const Lambda to TagK
✅ Tag (all versions) should combined TagK 3 & 2 parameter coherence
✅ Tag (all versions) should resolve TagKK from an odd higher-kinded Tag with swapped & ignored parameters
✅ Tag (all versions) should can resolve Tags of TagK's themselves correctly
✅ Tag (all versions) should regression test: ignore function-local anonymous classes (https://github.com/zio/zio/issues/4285)
✅ Tag (all versions) should equal path-dependent tags for singleton types are expected to be equal
✅ Tag (all versions) should return expected class tag
✅ Tag (all versions) should Work with term type prefixes
✅ Tag (all versions) should correctly resolve abstract types inside traits when summoned inside trait
✅ Tag (all versions) should combine higher-kinded type lambdas without losing ignored type arguments
✅ Tag (all versions) should resolve a higher-kinded type inside a named type lambda with ignored type arguments
✅ Tag (all versions) should resolve TagKK from an odd higher-kinded Tag with swapped & ignored parameters (low-level)
✅ Tag (all versions) should correctly resolve a higher-kinded nested type inside a named swap type lambda
✅ Tag (all versions) should support subtyping of parents parameterized with type lambdas in combined tags
✅ Tag (all versions) should support subtyping of parents parameterized with type lambdas in combined tags with multiple parameters
✅ Tag (all versions) should combine inside type lambdas with repeated usages of a type lambda type parameter
✅ Tag (all versions) should combine inside type lambdas with repeated usages of an outer type
✅ Tag (all versions) should combine inside type lambdas with repeated usages of an outer distinct type with the same type symbol
✅ Tag (all versions) should combine inside type lambdas where the type constructor of the type lambda result is a type lambda type parameter
✅ Tag (all versions) should regression test: https://github.com/zio/izumi-reflect/issues/82, convert trifunctor hkt to bifunctor when combining tags
✅ Tag (all versions) should combine higher-kinded types without losing ignored type arguments
✅ Tag (all versions) should resolve a higher-kinded type inside an anonymous type lambda with ignored & higher-kinded type arguments
✅ Tag (all versions) should correctly resolve a higher-kinded nested type inside an anonymous swap type lambda
✅ Tag (all versions) should handles abstract types instead of parameters
✅ Tag (all versions) should Generates lambda parents for lambda bases
✅ Tag (all versions) should subtyping for Invariant Java HKT
✅ Tag (all versions) should subtyping for Invariant Scala HKT
✅ Tag (all versions) should Work for structural concrete types
✅ Tag (all versions) should Work for any abstract type with available Tag while preserving additional type refinement
✅ Tag (all versions) should Work for any abstract type with available Tag while preserving additional method refinement
✅ Tag (all versions) should can resolve parameters in structural types
✅ Tag (all versions) should combine higher-kinded type members
✅ Tag (all versions) should regression test: do not be confused by a type alias of Set of an abstract type referred via this-prefix on Scala 3
✅ Tag (all versions) should support injecting runtime tags in place of type projections from type parameters / match types on type parameters
✅ Tag (all versions) should regression test for: Scala 2, https://github.com/zio/izumi-reflect/issues/189, parameterized type alias with intersection produces incorrect output
✅ Tag (all versions) should combining with wildcards is supported
✅ Tag (all versions) should other type members' bounds are not malformed when resolving parameters in structural types
✅ Tag (all versions) should form a correct type lambda for an equal-bounded abstract type
✅ Tag (all versions) should eradicate intersection tautologies with Any/Object (Tag)
✅ Tag (all versions) should tautological intersections with Any/Object are discarded from internal structure (Tag)
✅ Tag (Dotty) should Support union subtyping (Scala 3 specific, union types)
✅ Tag (Dotty) should Support HKTag for unapplied type lambdas with type bounds (Scala 3 specific, union types)
✅ Tag (Dotty) should Can create custom type tags to support bounded generics, e.g. <: Dep in TagK (Scala 3 HKTag Syntax)
✅ Tag (Dotty) should combine union types (Scala 3 specific, union types)
✅ Tag (Dotty) should type tags with bounds are successfully requested by TagMacro
✅ Tag (Dotty) should remove tautological unions with Nothing (LTT)
✅ Tag (Dotty) should remove tautological unions with Nothing (Tag)

✅ izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.internal.fundamentals.collections.IzCollectionsTest.xml

1 tests were completed in 20ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.internal.fundamentals.collections.IzCollectionsTest 1✅ 20ms

✅ izumi.reflect.internal.fundamentals.collections.IzCollectionsTest

✅ Collection utils should allow to convert mappings to multimaps

✅ izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.internal.fundamentals.platform.IzStringTest.xml

1 tests were completed in 27ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.internal.fundamentals.platform.IzStringTest 1✅ 27ms

✅ izumi.reflect.internal.fundamentals.platform.IzStringTest

✅ Extended string should support boolean parsing

✅ izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.AllPartsStrongTestScala2Jvm.xml

6 tests were completed in 807ms with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.AllPartsStrongTestScala2Jvm 6✅ 807ms

✅ izumi.reflect.test.AllPartsStrongTestScala2Jvm

✅ allPartsStrong for Identity typelambda
✅ allPartsStrong for eta-expansion typelambda
✅ allPartsStrong for application typelambda
✅ allPartsStrong for anonymous application typelambda
✅ allPartsStrong for x.F[x.Id] typelambda
✅ allPartsStrong for TC#DiscoveryNode type projection

✅ izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.BasicDottyTestMirror.xml

1 tests were completed in 251ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.BasicDottyTestMirror 1✅ 251ms

✅ izumi.reflect.test.BasicDottyTestMirror

✅ super-basic test 1

✅ izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.LightTypeTagProgressionTest.xml

15 tests were completed in 2s with 15 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.LightTypeTagProgressionTest 15✅ 2s

✅ izumi.reflect.test.LightTypeTagProgressionTest

✅ [progression] lightweight type tags (all versions) should progression test: can't support subtyping of type prefixes
✅ [progression] lightweight type tags (all versions) should progression test: can't support subtyping of concrete type projections
✅ [progression] lightweight type tags (all versions) should progression test: subtype check fails when child type has absorbed a covariant type parameter of the supertype
✅ [progression] lightweight type tags (all versions) should progression test: bounds-based subtype checks for lambdas do not work properly (LambdaParameter must contain bounds and NameReferences shouldn't for this to work)
✅ [progression] lightweight type tags (all versions) should progression test: a portion of `support swapped parents` fails on Dotty
✅ [progression] lightweight type tags (all versions) should progression test: indirect structural checks do not work
✅ [progression] lightweight type tags (all versions) should progression test: combined intersection lambda tags still contain some junk bases (coming from the unsound same-arity assumption in LightTypeTag#combine)
✅ [progression] lightweight type tags (all versions) should progression test: combined lambda tags still contain some junk bases (coming from the unsound same-arity assumption in LightTypeTag#combine)
✅ [progression] lightweight type tags (all versions) should progression test: `applied tags should not contain junk bases` is not supported on Dotty
✅ [progression] lightweight type tags (all versions) should progression test: `lambda tags should not contain junk bases` is not supported on Dotty
✅ [progression] lightweight type tags (all versions) should progression test: Dotty fails to `support methods with type parameters in structural refinements`
✅ [progression] lightweight type tags (all versions) should fails to treat tautological refinements as equal to the underlying type
✅ [progression] lightweight type tags (all versions) should fails to support methods in refinements with multiple parameter lists
✅ [progression] lightweight type tags (all versions) should progression test: fails to `Any/Object relation is consistent with Scala`
✅ [progression] lightweight type tags (all versions) should progression test: can't distinguish between equal-bounded type and alias inside refinements in dotty

✅ izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.LightTypeTagTest.xml

57 tests were completed in 818ms with 57 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.LightTypeTagTest 57✅ 818ms

✅ izumi.reflect.test.LightTypeTagTest

✅ lightweight type tags (all versions) should support distinction between subtypes
✅ lightweight type tags (all versions) should eradicate intersection tautologies with Any/Object
✅ lightweight type tags (all versions) should do not eradicate intersections with Nothing
✅ lightweight type tags (all versions) should eradicate self-intersection (X with X)
✅ lightweight type tags (all versions) should support subtype checks
✅ lightweight type tags (all versions) should support unsound subtype checks
✅ lightweight type tags (all versions) should support swapped parents
✅ lightweight type tags (all versions) should support subtyping of parents parameterized with type lambdas
✅ lightweight type tags (all versions) should support subtyping of parents parameterized with type lambdas in combined tags
✅ lightweight type tags (all versions) should support subtyping of parents parameterized with type lambdas in combined tags with multiple parameters
✅ lightweight type tags (all versions) should support PDTs
✅ lightweight type tags (all versions) should intersections are associative
✅ lightweight type tags (all versions) should runtime-combined intersections are associative
✅ lightweight type tags (all versions) should support type alias and refinement subtype checks
✅ lightweight type tags (all versions) should support refinement higher-kinded subtype checks
✅ lightweight type tags (all versions) should support literal types
✅ lightweight type tags (all versions) should resolve comparisons of object and trait with the same name
✅ lightweight type tags (all versions) should resolve prefixes of annotated types
✅ lightweight type tags (all versions) should `withoutArgs` comparison works
✅ lightweight type tags (all versions) should `typeArgs` works
✅ lightweight type tags (all versions) should support subtyping of a simple combined type
✅ lightweight type tags (all versions) should issue #762: properly strip away annotated types / empty refinements / type aliases
✅ lightweight type tags (all versions) should calculate identical hashCode in parsed and constructed instances
✅ lightweight type tags (all versions) should support non-positional typetag combination
✅ lightweight type tags (all versions) should support additional mixin traits after first trait with a HKT parameter
✅ lightweight type tags (all versions) should support LTagK* family summoners
✅ lightweight type tags (all versions) should support higher-kinded intersection type equality
✅ lightweight type tags (all versions) should support contravariance
✅ lightweight type tags (all versions) should support typetag combination
✅ lightweight type tags (all versions) should tautological intersections with Any/Object are discarded from internal structure
✅ lightweight type tags (all versions) should wildcards are supported
✅ lightweight type tags (all versions) should wildcards with bounds are supported
✅ lightweight type tags (all versions) should generate tags for wildcards with type boundaries
✅ lightweight type tags (all versions) should https://github.com/zio/izumi-reflect/issues/315 regression test 2.1.0-M1: IntegrationCheck[F] should not be related to IntegrationCheck[Identity]
✅ lightweight type tags (all versions) should normalize stable PDTs (https://github.com/zio/zio/issues/3390)
✅ lightweight type tags (all versions) should properly dealias and assign prefixes to existential types and wildcards
✅ lightweight type tags (all versions) should no redundant $ in object names
✅ lightweight type tags (all versions) should support basic None.type subtype check
✅ lightweight type tags (all versions) should supports complex type lambdas
✅ lightweight type tags (all versions) should intersection lambda tags should not contain junk bases
✅ lightweight type tags (all versions) should No degenerate lambdas (regression test https://github.com/zio/izumi-reflect/issues/345)
✅ lightweight type tags (all versions) should check subtyping when higher-kinds are involved on Scala 3
✅ lightweight type tags (all versions) should support higher-kinded intersection type subtyping
✅ lightweight type tags (all versions) should support higher-kinded intersection type combination isn't supported on Dotty
✅ lightweight type tags (all versions) should support structural & refinement type subtype checks
✅ lightweight type tags (all versions) should support structural & refinement type equality
✅ lightweight type tags (all versions) should strong summons test
✅ lightweight type tags (all versions) should distinguishes between val and type structural refinements
✅ lightweight type tags (all versions) should does not contain intersections in plain structural refinements
✅ lightweight type tags (all versions) should support equal-bounded types as paradoxical (before 2.3.0 and since 2.3.6 NOT equal to their underlying)
✅ lightweight type tags (all versions) should support structural subtype checks
✅ lightweight type tags (all versions) should what about non-empty refinements with intersections
✅ lightweight type tags (all versions) should support contravariance in refinement method comparisons
✅ lightweight type tags (all versions) should support human-readable representation
✅ lightweight type tags (Scala 2) should support structural & refinement type equality (Scala 2 specific, generic type projection)
✅ lightweight type tags (Scala 2) should strong summons test (Scala 2 specific, generic type projection)
✅ lightweight type tags (Scala 2) should there should be no unexpected lambdas in bases db produced from nested existential types (Scala 2 specific, unreducible application of higher-kinded type to wildcard arguments) (regression test https://github.com/zio/izumi-reflect/issues/345)

✅ izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.TagMacroTest.xml

1 tests were completed in 12ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.TagMacroTest 1✅ 12ms

✅ izumi.reflect.test.TagMacroTest

✅ Tag macro should reconstruct lambda tags

✅ izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.TagProgressionTest.xml

12 tests were completed in 2s with 12 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.TagProgressionTest 12✅ 2s

✅ izumi.reflect.test.TagProgressionTest

✅ [progression] Tag (all versions) should progression test: can't substitute type parameters inside defs/vals in structural types
✅ [progression] Tag (all versions) should progression test: cannot resolve a higher-kinded type in a higher-kinded tag in a named deeply-nested type lambda on Scala 2
✅ [progression] Tag (all versions) should progression test: cannot resolve a higher-kinded type in a higher-kinded tag in an anonymous deeply-nested type lambda
✅ [progression] Tag (all versions) should progression test: projections into singletons are not handled properly (on Scala 2)
✅ [progression] Tag (all versions) should Progression test: Scala 2 fails to Handle Tags outside of a predefined set (Somehow raw Tag.auto.T works on Scala 2, but not when defined as an alias)
✅ [progression] Tag (all versions) should progression test: fails to combine higher-kinded intersection types without losing ignored type arguments
✅ [progression] Tag (all versions) should progression test: Dotty fails to regression test: resolve correct closestClass for Scala vararg AnyVal (https://github.com/zio/izumi-reflect/issues/224)
✅ [progression] Tag (all versions) should progression test: fails to preserve lower bound when combining higher-kinded type members
✅ [progression] Tag (all versions) should progression test: fails on Scala 3 don't lose tautological intersection components other than Any/AnyRef
✅ [progression] Tag (all versions) should progression test: intersection tautologies are not removed automatically when constructing combined intersection type
✅ [progression] Tag (Scala 2) should progression test: combine intersection path-dependent intersection types with inner tags doesn't work yet (Scala 2 specific, generic type projection)
✅ [progression] Tag (Scala 2) should progression test: type tags with bounds are not currently requested by the macro on Scala 2

✅ izumi-reflect/izumi-reflect/.jvm/target/test-reports/TEST-izumi.reflect.test.TagTest.xml

81 tests were completed in 2s with 81 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
izumi.reflect.test.TagTest 81✅ 2s

✅ izumi.reflect.test.TagTest

✅ Tag (all versions) should Work for any concrete type
✅ Tag (all versions) should Support identity lambda type equality
✅ Tag (all versions) should regression test for https://github.com/zio/izumi-reflect/issues/98
✅ Tag (all versions) should Work for any abstract type with available Tag when obscured by empty refinement
✅ Tag (all versions) should handle function local type aliases
✅ Tag (all versions) should Can dealias transparent type members with class type parameters inside them when a tag is summoned _inside_ the class, because LightTypeTags are not affected by https://github.com/scala/bug/issues/11139
✅ Tag (all versions) should Tag.auto.T kind inference macro works for known cases
✅ Tag (all versions) should Shouldn't work for any abstract type without available TypeTag or Tag or TagK
✅ Tag (all versions) should handle Id type lambda
✅ Tag (all versions) should handle Id1 type lambda
✅ Tag (all versions) should handle singleton types
✅ Tag (all versions) should handle nested intersection aliases
✅ Tag (all versions) should handle nested refined intersection aliases
✅ Tag (all versions) should simple combined Tag
✅ Tag (all versions) should consider class member's this-prefix to be the defining template, not the most specific prefix from where the call is happening (deliberate omission of this for better ergonomics in cakes)
✅ Tag (all versions) should Does NOT synthesize Tags for abstract types, but recursively summons Tag[this.Abstract]
✅ Tag (all versions) should DOES synthesize Tags for abstract types (object X; X.T), does not summon Tag[X.T]
✅ Tag (all versions) should DOES synthesize Tags for abstract types (trait X; X#T), does not summon Tag[X#T]
✅ Tag (all versions) should DOES synthesize Tags for abstract types (val x; x.T), does not summon Tag[x.T]
✅ Tag (all versions) should Work for an abstract type with available TagK when obscured by empty refinement
✅ Tag (all versions) should Work for an abstract type with available TagK when TagK is requested through an explicit implicit
✅ Tag (all versions) should Work for an abstract type with available TagKK
✅ Tag (all versions) should Work for any configuration of parameters
✅ Tag (all versions) should handle Swap type lambda
✅ Tag (all versions) should Assemble from higher than TagKK tags
✅ Tag (all versions) should regression test: https://github.com/zio/izumi-reflect/issues/293 assemble tag for Builder[B, Collection[B]]
✅ Tag (all versions) should combine intersection types
✅ Tag (all versions) should summon HKT Tag for a Java type
✅ Tag (all versions) should regression test: https://github.com/zio/izumi-reflect/issues/76 derive tag for a parametric trait inside object
✅ Tag (all versions) should this.type tags should be generated, but are identical with their class / object tag
✅ Tag (all versions) should this.type should have correct prefix
✅ Tag (all versions) should regression test: https://github.com/zio/izumi-reflect/issues/83, convert trifunctor tag to bifunctor tag
✅ Tag (all versions) should resolve TagK from TagKK
✅ Tag (all versions) should can materialize TagK for type lambdas that close on a generic parameter with available Tag
✅ Tag (all versions) should can materialize TagK for type lambdas that close on a generic parameter with available Tag when the constructor is a type parameter
✅ Tag (all versions) should type parameter covariance works after combine
✅ Tag (all versions) should combine Const Lambda to TagK
✅ Tag (all versions) should combined TagK 3 & 2 parameter coherence
✅ Tag (all versions) should resolve TagKK from an odd higher-kinded Tag with swapped & ignored parameters
✅ Tag (all versions) should can resolve Tags of TagK's themselves correctly
✅ Tag (all versions) should regression test: ignore function-local anonymous classes (https://github.com/zio/zio/issues/4285)
✅ Tag (all versions) should equal path-dependent tags for singleton types are expected to be equal
✅ Tag (all versions) should return expected class tag
✅ Tag (all versions) should Work with term type prefixes
✅ Tag (all versions) should correctly resolve abstract types inside traits when summoned inside trait
✅ Tag (all versions) should combine higher-kinded type lambdas without losing ignored type arguments
✅ Tag (all versions) should resolve a higher-kinded type inside a named type lambda with ignored type arguments
✅ Tag (all versions) should resolve TagKK from an odd higher-kinded Tag with swapped & ignored parameters (low-level)
✅ Tag (all versions) should correctly resolve a higher-kinded nested type inside a named swap type lambda
✅ Tag (all versions) should support subtyping of parents parameterized with type lambdas in combined tags
✅ Tag (all versions) should support subtyping of parents parameterized with type lambdas in combined tags with multiple parameters
✅ Tag (all versions) should combine inside type lambdas with repeated usages of a type lambda type parameter
✅ Tag (all versions) should combine inside type lambdas with repeated usages of an outer type
✅ Tag (all versions) should combine inside type lambdas with repeated usages of an outer distinct type with the same type symbol
✅ Tag (all versions) should combine inside type lambdas where the type constructor of the type lambda result is a type lambda type parameter
✅ Tag (all versions) should regression test: https://github.com/zio/izumi-reflect/issues/82, convert trifunctor hkt to bifunctor when combining tags
✅ Tag (all versions) should combine higher-kinded types without losing ignored type arguments
✅ Tag (all versions) should resolve a higher-kinded type inside an anonymous type lambda with ignored & higher-kinded type arguments
✅ Tag (all versions) should correctly resolve a higher-kinded nested type inside an anonymous swap type lambda
✅ Tag (all versions) should handles abstract types instead of parameters
✅ Tag (all versions) should Generates lambda parents for lambda bases
✅ Tag (all versions) should subtyping for Invariant Java HKT
✅ Tag (all versions) should subtyping for Invariant Scala HKT
✅ Tag (all versions) should Work for structural concrete types
✅ Tag (all versions) should Work for any abstract type with available Tag while preserving additional type refinement
✅ Tag (all versions) should Work for any abstract type with available Tag while preserving additional method refinement
✅ Tag (all versions) should can resolve parameters in structural types
✅ Tag (all versions) should combine higher-kinded type members
✅ Tag (all versions) should regression test: do not be confused by a type alias of Set of an abstract type referred via this-prefix on Scala 3
✅ Tag (all versions) should support injecting runtime tags in place of type projections from type parameters / match types on type parameters
✅ Tag (all versions) should regression test for: Scala 2, https://github.com/zio/izumi-reflect/issues/189, parameterized type alias with intersection produces incorrect output
✅ Tag (all versions) should combining with wildcards is supported
✅ Tag (all versions) should other type members' bounds are not malformed when resolving parameters in structural types
✅ Tag (all versions) should form a correct type lambda for an equal-bounded abstract type
✅ Tag (all versions) should eradicate intersection tautologies with Any/Object (Tag)
✅ Tag (all versions) should tautological intersections with Any/Object are discarded from internal structure (Tag)
✅ Tag (Scala 2) should Work for an abstract type with available TagK when TagK is requested through an explicit implicit (Scala 2 HKTag Syntax)
✅ Tag (Scala 2) should Handle Tags outside of a predefined set (Scala 2 HKTag Syntax)
✅ Tag (Scala 2) should Can create custom type tags to support bounded generics, e.g. <: Dep in TagK (Scala 2 HKTag Syntax)
✅ Tag (Scala 2) should can find HKTag when obscured by type lambda (Scala 2 HKTag Syntax)
✅ Tag (Scala 2) should we no longer accidentally materialize tags for type parameters that are prefixes of type projections (Scala 2 specific, generic type projection)