• 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
Name
Last commit
Last update
..
Torque.g4 Loading commit data...
TorqueBaseListener.cpp Loading commit data...
TorqueBaseListener.h Loading commit data...
TorqueBaseVisitor.cpp Loading commit data...
TorqueBaseVisitor.h Loading commit data...
TorqueLexer.cpp Loading commit data...
TorqueLexer.h Loading commit data...
TorqueListener.cpp Loading commit data...
TorqueListener.h Loading commit data...
TorqueParser.cpp Loading commit data...
TorqueParser.h Loading commit data...
TorqueVisitor.cpp Loading commit data...
TorqueVisitor.h Loading commit data...
ast-generator.cc Loading commit data...
ast-generator.h Loading commit data...
ast.h Loading commit data...
contextual.h Loading commit data...
declarable.cc Loading commit data...
declarable.h Loading commit data...
declaration-visitor.cc Loading commit data...
declaration-visitor.h Loading commit data...
declarations.cc Loading commit data...
declarations.h Loading commit data...
file-visitor.cc Loading commit data...
file-visitor.h Loading commit data...
global-context.h Loading commit data...
implementation-visitor.cc Loading commit data...
implementation-visitor.h Loading commit data...
parameter-difference.h Loading commit data...
scope.cc Loading commit data...
scope.h Loading commit data...
torque.cc Loading commit data...
type-oracle.h Loading commit data...
types.cc Loading commit data...
types.h Loading commit data...
utils.cc Loading commit data...
utils.h Loading commit data...