Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4,622 changes: 2,314 additions & 2,308 deletions release/tigerpython-parser.js

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions release/tigerpython-parser.js.map

Large diffs are not rendered by default.

31,708 changes: 15,959 additions & 15,749 deletions release/tigerpython-parser.mjs

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions release/tigerpython-parser.mjs.map

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ object BuiltinTypes {
val ECHO2_TYPE = AbstractType("<echo2>")
val ECHO_ITEM_TYPE = AbstractType("<echo-item>")
val ECHO_RETURN_TYPE = AbstractType("<echo-return>")
val ECHO_SELF_ITEM_TYPE = AbstractType("<echo-self-item>")
val SUPER_TYPE = AbstractType("<super>")
val UNKNOWN_TYPE = AbstractType("<unknown>")

Expand Down Expand Up @@ -97,13 +98,13 @@ object BuiltinTypes {

val MUTABLE_SEQ = PrimitiveType("<mutable-seq>", SEQ_TYPE)
MUTABLE_SEQ.addFields(
BuiltinFunction("append", Array("x"), MUTABLE_SEQ, null),
BuiltinFunction("extend", Array("x"), MUTABLE_SEQ, null),
BuiltinFunction("insert", Array(), MUTABLE_SEQ, null),
BuiltinFunction("pop", Array(), MUTABLE_SEQ, null),
BuiltinFunction("remove", Array("x"), MUTABLE_SEQ, null),
BuiltinFunction("reverse", Array(), MUTABLE_SEQ, "reverses the items of the sequence in place"),
BuiltinFunction("sort", Array(), MUTABLE_SEQ, "sort the items of the sequence in place")
BuiltinFunction("append", Array("x"), NONE_TYPE, null),
BuiltinFunction("extend", Array("x"), NONE_TYPE, null),
BuiltinFunction("insert", Array(), NONE_TYPE, null),
BuiltinFunction("pop", Array(), ECHO_SELF_ITEM_TYPE, null),
BuiltinFunction("remove", Array("x"), NONE_TYPE, null),
BuiltinFunction("reverse", Array(), NONE_TYPE, "reverses the items of the sequence in place"),
BuiltinFunction("sort", Array(), NONE_TYPE, "sort the items of the sequence in place")
)
val LIST_TYPE: PrimitiveType = PrimitiveType("list", MUTABLE_SEQ).registerTo(builtins)
LIST_TYPE.addFields(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,13 @@ class TypeAstWalker {
ANY_TYPE
} else
ANY_TYPE
case BuiltinTypes.ECHO_SELF_ITEM_TYPE =>
call.function match {
case attr: AstNode.Attribute =>
getType(attr.base).getItemType
case _ =>
ANY_TYPE
}
case ret =>
Instance(ret)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ object BuiltinTypes {
val ECHO2_TYPE = AbstractType("<echo2>")
val ECHO_ITEM_TYPE = AbstractType("<echo-item>")
val ECHO_RETURN_TYPE = AbstractType("<echo-return>")
val ECHO_SELF_ITEM_TYPE = AbstractType("<echo-self-item>")
val SUPER_TYPE = AbstractType("<super>")
val UNKNOWN_TYPE = AbstractType("<unknown>")

Expand Down Expand Up @@ -99,13 +100,13 @@ object BuiltinTypes {

val MUTABLE_SEQ = PrimitiveType("<mutable-seq>", SEQ_TYPE)
MUTABLE_SEQ.addFields(
BuiltinFunction("append", Array("x"), MUTABLE_SEQ, null),
BuiltinFunction("extend", Array("x"), MUTABLE_SEQ, null),
BuiltinFunction("insert", Array(), MUTABLE_SEQ, null),
BuiltinFunction("pop", Array(), MUTABLE_SEQ, null),
BuiltinFunction("remove", Array("x"), MUTABLE_SEQ, null),
BuiltinFunction("reverse", Array(), MUTABLE_SEQ, "reverses the items of the sequence in place"),
BuiltinFunction("sort", Array(), MUTABLE_SEQ, "sort the items of the sequence in place")
BuiltinFunction("append", Array("x"), NONE_TYPE, null),
BuiltinFunction("extend", Array("x"), NONE_TYPE, null),
BuiltinFunction("insert", Array(), NONE_TYPE, null),
BuiltinFunction("pop", Array(), ECHO_SELF_ITEM_TYPE, null),
BuiltinFunction("remove", Array("x"), NONE_TYPE, null),
BuiltinFunction("reverse", Array(), NONE_TYPE, "reverses the items of the sequence in place"),
BuiltinFunction("sort", Array(), NONE_TYPE, "sort the items of the sequence in place")
)
val LIST_TYPE = PrimitiveType("list", MUTABLE_SEQ)
val TUPLE_TYPE = PrimitiveType("tuple", SEQ_TYPE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,13 @@ class TypeAstWalker {
ANY_TYPE
} else
ANY_TYPE
case BuiltinTypes.ECHO_SELF_ITEM_TYPE =>
call.function match {
case attr: AstNode.Attribute =>
getType(attr.base).getItemType
case _ =>
ANY_TYPE
}
case ret =>
Instance(ret)
}
Expand Down Expand Up @@ -203,8 +210,8 @@ class TypeAstWalker {
private def isUsableEvidenceType(dataType: DataType): Boolean =
dataType != null && dataType != ANY_TYPE && dataType != BuiltinTypes.ECHO_TYPE &&
dataType != BuiltinTypes.ECHO2_TYPE && dataType != BuiltinTypes.ECHO_ITEM_TYPE &&
dataType != BuiltinTypes.ECHO_RETURN_TYPE && dataType != BuiltinTypes.SUPER_TYPE &&
dataType != BuiltinTypes.UNKNOWN_TYPE
dataType != BuiltinTypes.ECHO_RETURN_TYPE && dataType != BuiltinTypes.ECHO_SELF_ITEM_TYPE &&
dataType != BuiltinTypes.SUPER_TYPE && dataType != BuiltinTypes.UNKNOWN_TYPE

protected def getTypeOfLambda(lambda: AstNode.Lambda): DataType =
if (lambda != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# pyi:issue1003.actors
# class Actor:
# def remove(self) -> None: ...
# def get_actors() -> list[Actor]: ...
# 50
#
from issue1003.actors import *
get_actors().pop().remove()
Loading