Skip to content

Commit 9408f31

Browse files
committed
v0.20.0+luau716
1 parent 2fb39fd commit 9408f31

72 files changed

Lines changed: 3807 additions & 1231 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "luau0-src"
3-
version = "0.19.1+luau714"
3+
version = "0.20.0+luau716"
44
authors = ["Aleksandr Orlenko <zxteam@protonmail.com>"]
55
edition = "2024"
66
repository = "https://github.com/mlua-rs/luau-src-rs"

luau/Ast/include/Luau/Ast.h

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,7 @@ enum class ConstantNumberParseResult
338338
Malformed,
339339
BinOverflow,
340340
HexOverflow,
341+
IntOverflow,
341342
};
342343

343344
class AstExprConstantNumber : public AstExpr
@@ -353,6 +354,18 @@ class AstExprConstantNumber : public AstExpr
353354
ConstantNumberParseResult parseResult;
354355
};
355356

357+
class AstExprConstantInteger : public AstExpr
358+
{
359+
public:
360+
LUAU_RTTI(AstExprConstantInteger)
361+
362+
AstExprConstantInteger(const Location& location, int64_t value, ConstantNumberParseResult parseResult = ConstantNumberParseResult::Ok);
363+
364+
void visit(AstVisitor* visitor) override;
365+
366+
int64_t value;
367+
ConstantNumberParseResult parseResult;
368+
};
356369
class AstExprConstantString : public AstExpr
357370
{
358371
public:
@@ -819,13 +832,15 @@ class AstStatLocal : public AstStat
819832
const Location& location,
820833
const AstArray<AstLocal*>& vars,
821834
const AstArray<AstExpr*>& values,
822-
const std::optional<Location>& equalsSignLocation
835+
const std::optional<Location>& equalsSignLocation,
836+
bool isConst = false
823837
);
824838

825839
void visit(AstVisitor* visitor) override;
826840

827841
AstArray<AstLocal*> vars;
828842
AstArray<AstExpr*> values;
843+
bool isConst;
829844

830845
std::optional<Location> equalsSignLocation;
831846
};
@@ -932,12 +947,13 @@ class AstStatLocalFunction : public AstStat
932947
public:
933948
LUAU_RTTI(AstStatLocalFunction)
934949

935-
AstStatLocalFunction(const Location& location, AstLocal* name, AstExprFunction* func);
950+
AstStatLocalFunction(const Location& location, AstLocal* name, AstExprFunction* func, bool isConst = false);
936951

937952
void visit(AstVisitor* visitor) override;
938953

939954
AstLocal* name;
940955
AstExprFunction* func;
956+
bool isConst;
941957
};
942958

943959
class AstStatTypeAlias : public AstStat
@@ -1052,20 +1068,21 @@ class AstStatDeclareFunction : public AstStat
10521068
AstTypePack* retTypes;
10531069
};
10541070

1071+
enum class AstTableAccess
1072+
{
1073+
Read = 0b01,
1074+
Write = 0b10,
1075+
ReadWrite = 0b11,
1076+
};
1077+
10551078
struct AstDeclaredExternTypeProperty
10561079
{
10571080
AstName name;
10581081
Location nameLocation;
10591082
AstType* ty = nullptr;
10601083
bool isMethod = false;
10611084
Location location;
1062-
};
1063-
1064-
enum class AstTableAccess
1065-
{
1066-
Read = 0b01,
1067-
Write = 0b10,
1068-
ReadWrite = 0b11,
1085+
AstTableAccess access = AstTableAccess::ReadWrite;
10691086
};
10701087

10711088
struct AstTableIndexer
@@ -1413,6 +1430,10 @@ class AstVisitor
14131430
{
14141431
return visit(static_cast<AstExpr*>(node));
14151432
}
1433+
virtual bool visit(class AstExprConstantInteger* node)
1434+
{
1435+
return visit(static_cast<AstExpr*>(node));
1436+
}
14161437
virtual bool visit(class AstExprConstantString* node)
14171438
{
14181439
return visit(static_cast<AstExpr*>(node));

luau/Ast/include/Luau/Cst.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,20 @@ class CstExprConstantNumber : public CstNode
6161
AstArray<char> value;
6262
};
6363

64+
class CstExprConstantInteger : public CstNode
65+
{
66+
public:
67+
LUAU_CST_RTTI(CstExprConstantInteger)
68+
69+
explicit CstExprConstantInteger(const AstArray<char>& value);
70+
71+
AstArray<char> value;
72+
};
73+
6474
class CstExprConstantString : public CstNode
6575
{
6676
public:
67-
LUAU_CST_RTTI(CstExprConstantNumber)
77+
LUAU_CST_RTTI(CstExprConstantString)
6878

6979
enum QuoteStyle
7080
{

luau/Ast/src/Ast.cpp

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,18 @@ void AstExprConstantNumber::visit(AstVisitor* visitor)
171171
visitor->visit(this);
172172
}
173173

174+
AstExprConstantInteger::AstExprConstantInteger(const Location& location, int64_t value, ConstantNumberParseResult parseResult)
175+
: AstExpr(ClassIndex(), location)
176+
, value(value)
177+
, parseResult(parseResult)
178+
{
179+
}
180+
181+
void AstExprConstantInteger::visit(AstVisitor* visitor)
182+
{
183+
visitor->visit(this);
184+
}
185+
174186
AstExprConstantString::AstExprConstantString(const Location& location, const AstArray<char>& value, QuoteStyle quoteStyle)
175187
: AstExpr(ClassIndex(), location)
176188
, value(value)
@@ -698,11 +710,13 @@ AstStatLocal::AstStatLocal(
698710
const Location& location,
699711
const AstArray<AstLocal*>& vars,
700712
const AstArray<AstExpr*>& values,
701-
const std::optional<Location>& equalsSignLocation
713+
const std::optional<Location>& equalsSignLocation,
714+
bool isConst
702715
)
703716
: AstStat(ClassIndex(), location)
704717
, vars(vars)
705718
, values(values)
719+
, isConst(isConst)
706720
, equalsSignLocation(equalsSignLocation)
707721
{
708722
}
@@ -850,10 +864,11 @@ void AstStatFunction::visit(AstVisitor* visitor)
850864
}
851865
}
852866

853-
AstStatLocalFunction::AstStatLocalFunction(const Location& location, AstLocal* name, AstExprFunction* func)
867+
AstStatLocalFunction::AstStatLocalFunction(const Location& location, AstLocal* name, AstExprFunction* func, bool isConst)
854868
: AstStat(ClassIndex(), location)
855869
, name(name)
856870
, func(func)
871+
, isConst(isConst)
857872
{
858873
}
859874

luau/Ast/src/Cst.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ CstExprConstantString::CstExprConstantString(AstArray<char> sourceString, QuoteS
2323
LUAU_ASSERT(blockDepth == 0 || quoteStyle == QuoteStyle::QuotedRaw);
2424
}
2525

26+
CstExprConstantInteger::CstExprConstantInteger(const AstArray<char>& value)
27+
: CstNode(CstClassIndex())
28+
, value(value)
29+
{
30+
}
31+
2632
CstExprCall::CstExprCall(std::optional<Position> openParens, std::optional<Position> closeParens, AstArray<Position> commaPositions)
2733
: CstNode(CstClassIndex())
2834
, openParens(openParens)

0 commit comments

Comments
 (0)