Files
Odin/tests/issues/test_issue_2395.odin
finn ec32967daa [check-type] fix faulty #no_nil variants error
- when checking the variants of a union type we will skip adding
  the variants if we have an unspecialized polymorphic, hence our
  union_type variants will be empty and have a count of 0

- so when checking if we violate the #no_nil error, if we are in the
  unspecialized polymorphic case and there exists at least one variant
  in the original variants then we should not raise this error

- test checks that we do not raise the error anymore, and that we still
  detect the #no_nil error in the described circumstances
2023-06-13 22:07:01 +02:00

30 lines
578 B
Odin

// Tests issue #2395 https://github.com/odin-lang/Odin/issues/2395
// Ensures that we no longer raise the faulty error for #no_nil unions when
// then are 2 variants with the polymorphic type. Also ensure that we raise
// exactly 2 errors from the invalid unions
package test_issues
import "core:testing"
ValidUnion :: union($T: typeid) #no_nil {
T,
f32,
}
OtherValidUnion :: union($T: typeid, $S: typeid) #no_nil {
T,
S,
}
InvalidUnion :: union($T: typeid) #no_nil {
T,
}
OtherInvalidUnion :: union($T: typeid) #no_nil {
u8,
}
main :: proc() {
}