mirror of
https://github.com/luau-lang/luau.git
synced 2024-11-15 14:25:44 +08:00
551a43c424
- Updated Roblox copyright to 2023 - Floor division operator `//` (implements #832) - Autocomplete now shows `end` within `do` blocks - Restore BraceType when using `Lexer::lookahead` (fixes #1019) # New typechecker - Subtyping tests between metatables and tables - Subtyping tests between string singletons and tables - Subtyping tests for class types # Native codegen - Fixed macOS test failure (wrong spill restore offset) - Fixed clobbering of non-volatile xmm registers on Windows - Fixed wrong storage location of SSA reg spills - Implemented A64 support for add/sub extended - Eliminated zextReg from A64 lowering - Remove identical table slot lookups - Propagate values from predecessor into the linear block - Disabled reuse slot optimization - Keep `LuaNode::val` check for nil when optimizing `CHECK_SLOT_MATCH` - Implemented IR translation of `table.insert` builtin - Fixed mmap error handling on macOS/Linux # Tooling - Used `|` as a column separator instead of `+` in `bench.py` - Added a `table.sort` micro-benchmark - Switched `libprotobuf-mutator` to a less problematic version
34 lines
1.0 KiB
C++
34 lines
1.0 KiB
C++
// This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details
|
|
#pragma once
|
|
|
|
#include "Luau/Ast.h"
|
|
|
|
#include <unordered_map>
|
|
|
|
namespace Luau
|
|
{
|
|
|
|
static const std::unordered_map<AstExprBinary::Op, const char*> kBinaryOpMetamethods{
|
|
{AstExprBinary::Op::CompareEq, "__eq"},
|
|
{AstExprBinary::Op::CompareNe, "__eq"},
|
|
{AstExprBinary::Op::CompareGe, "__lt"},
|
|
{AstExprBinary::Op::CompareGt, "__le"},
|
|
{AstExprBinary::Op::CompareLe, "__le"},
|
|
{AstExprBinary::Op::CompareLt, "__lt"},
|
|
{AstExprBinary::Op::Add, "__add"},
|
|
{AstExprBinary::Op::Sub, "__sub"},
|
|
{AstExprBinary::Op::Mul, "__mul"},
|
|
{AstExprBinary::Op::Div, "__div"},
|
|
{AstExprBinary::Op::FloorDiv, "__idiv"},
|
|
{AstExprBinary::Op::Pow, "__pow"},
|
|
{AstExprBinary::Op::Mod, "__mod"},
|
|
{AstExprBinary::Op::Concat, "__concat"},
|
|
};
|
|
|
|
static const std::unordered_map<AstExprUnary::Op, const char*> kUnaryOpMetamethods{
|
|
{AstExprUnary::Op::Minus, "__unm"},
|
|
{AstExprUnary::Op::Len, "__len"},
|
|
};
|
|
|
|
} // namespace Luau
|