Skip to content

Commit 26e66e7

Browse files
committed
move AWST validation step into puya core
1 parent c7d43c2 commit 26e66e7

File tree

11 files changed

+52
-55
lines changed

11 files changed

+52
-55
lines changed

src/puyapy/awst_build/validation/arc4_copy.py renamed to src/puya/awst/validation/arc4_copy.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from collections.abc import Iterator
22

33
import attrs
4+
45
from puya import log
56
from puya.awst import (
67
nodes as awst_nodes,
File renamed without changes.

src/puyapy/awst_build/validation/main.py renamed to src/puya/awst/validation/main.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
from puya.awst import nodes as awst_nodes
2-
3-
from puyapy.awst_build.validation.arc4_copy import ARC4CopyValidator
4-
from puyapy.awst_build.validation.base_invoker import BaseInvokerValidator
5-
from puyapy.awst_build.validation.inner_transactions import (
2+
from puya.awst.validation.arc4_copy import ARC4CopyValidator
3+
from puya.awst.validation.base_invoker import BaseInvokerValidator
4+
from puya.awst.validation.inner_transactions import (
65
InnerTransactionsValidator,
76
InnerTransactionUsedInALoopValidator,
87
StaleInnerTransactionsValidator,
98
)
10-
from puyapy.awst_build.validation.labels import LabelsValidator
11-
from puyapy.awst_build.validation.scratch_slots import ScratchSlotReservationValidator
12-
from puyapy.awst_build.validation.storage import StorageTypesValidator
9+
from puya.awst.validation.labels import LabelsValidator
10+
from puya.awst.validation.scratch_slots import ScratchSlotReservationValidator
11+
from puya.awst.validation.storage import StorageTypesValidator
1312

1413

1514
def validate_awst(module: awst_nodes.AWST) -> None:
File renamed without changes.

src/puya/compile.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from puya.arc32 import create_arc32_json
1111
from puya.artifact_sorter import ArtifactCompilationSorter
1212
from puya.awst.nodes import AWST
13+
from puya.awst.validation.main import validate_awst
1314
from puya.context import CompileContext
1415
from puya.errors import CodeError, InternalError
1516
from puya.ir.main import awst_to_ir, optimize_and_destructure_ir
@@ -52,6 +53,8 @@ def awst_to_teal(
5253
*,
5354
write: bool = True,
5455
) -> list[CompilationArtifact]:
56+
validate_awst(awst)
57+
log_ctx.exit_if_errors()
5558
context = CompileContext(
5659
options=options,
5760
compilation_set=compilation_set,

src/puyapy/awst_build/module.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
get_decorators_by_fullname,
2828
get_unaliased_fullname,
2929
)
30-
from puyapy.awst_build.validation.main import validate_awst
3130

3231
logger = log.get_logger(__name__)
3332

@@ -67,7 +66,6 @@ def convert(self) -> AWST:
6766
for deferred in deferrals:
6867
awst_node = deferred(self.context)
6968
awst.append(awst_node)
70-
validate_awst(awst) # TODO: move/split this to/with puya core
7169
return awst
7270

7371
# Supported Statements

0 commit comments

Comments
 (0)