Commit Graph

8 Commits

Author SHA1 Message Date
Dmitri Gribenko
196188b9c8 stdlib: add 'to:' label to dump() 2016-02-22 18:16:38 -08:00
Dmitri Gribenko
5c9214329d Annotate tests as executable 2016-02-04 09:42:26 -08:00
Erik Eckstein
adef0368bb tests: add import statements to workaround linker errors in all relevant tests.
This is needed if we compile StdlibUnittest with -sil-serialize-all
So far I added the imports only in files which needed them. But this may change, depending on the optimizer (inlining).
Adding them in all files doesn't harm and avoids confusion if someone makes an unrelated change which would result in such a linker error.
2016-01-21 09:59:50 -08:00
Slava Pestov
54b22f4455 Re-apply "IRGen: Make case numbering consistent for enums with empty payloads"
Now with a small fix.
2015-12-22 00:17:00 -08:00
Slava Pestov
6c2d8839ec Speculatively revert "IRGen: Make case numbering consistent for enums with empty payloads"
I suspect its breaking the build. I must've screwed up my testing.

This reverts commit 86e6b81336.
2015-12-21 14:50:16 -08:00
Slava Pestov
86e6b81336 IRGen: Make case numbering consistent for enums with empty payloads
If an enum case has a payload but the unsubstituted payload type is
zero-sized, we would convert the case into a no-payload case.
This was valid when the only invariant that had to be preserved
is that an enum's layout is the same between all substitutions
of a generic type.

However this is now wrong if the payload type is resiliently-sized,
because other resilience domains may not have knowledge that it is
zero-sized.

The new utility methods will also be used in class layout.
2015-12-21 13:50:24 -08:00
Slava Pestov
304f4f051f IRGen: Fix for fixed-layout enum with resilient payload
If an enum is fixed-layout in our resilience domain but not
universally fixed-layout, other resilience domains will use
runtime functions to project and inject payloads.

These expect to find the payload size in the metadata, so
emit it if the enum is not universally fixed-layout.

Note that we do know the payload size, so it is constant
for us; there's no runtime call required to initialize
the metadata.
2015-12-19 00:47:47 -08:00
Slava Pestov
c31b209c81 Interpreter tests for resilient enums 2015-12-11 08:58:52 -08:00