• Tobias Tebbi's avatar
    [torque] fix variables, returns and conditionals with constexpr · 81186ff4
    Tobias Tebbi authored
    Variables/return values with constexpr type cannot have multiple
    assignments. We check this now.
    For conditionals, it is important to always infer a non-constexpr type.
    This CL adds the ability to map any type (including union types) to be
    mapped to their non-constexpr variant. Conditionals infer their type as
    the non-constexpr version of a combination of the two branch types.
    
    In addition, this improves subtyping for constexpr types:
    If A extends B, then constexpr A extends constexpr B.
    This makes it necessary to clean up "constexpr String", which has nothing
    to do with tagged values.
    
    Bug: v8:7793
    Change-Id: Ia4d3cd5dc98f45b0ec89adf05c5c6111a0e51cc6
    Reviewed-on: https://chromium-review.googlesource.com/1122864
    Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#54167}
    81186ff4
types.h 11.6 KB