{
"@context": "https://nxdlang.org/schema",
"doc_id": "FT202",
"title": "FT202",
"description": "Specialty Semantics Correctly Failed",
"layer": "Failed Tests",
"category": "Incorrectly Failed Specialty Test",
"keywords": [],
"doc_version": "1.0",
"status": "active"
}
### FT202 (intentional failure specialty test)
NXD Sample:
```nxd
MODULE NIM_MOIVE_INVALID_REUSE
FUNC MAIN()
LET SOURCE SET "NXD"
MOVE SOURCE TO TARGET
PRINTLN(SOURCE)
// EXPECTED RESULT SEMANTIC ERROR: Cannot use SOURCE after it has been moved to TARGET.
// TESTING USE AFTER MOVE. SOURCE IS MOVED TO TARGET AND THEN PRINTLN IS CALLED ON SOURCE. THIS SHOULD FAIL.
```
Result:
PASS
Expected Output:
PASS
Expected Rejection Stage:
[ ] Lexer
[ ] Parser
[ ] AST
[ ] IR
[X] Semantics
[ ] Backend
Actual Output:
```json
{
"module": {
"name": "NIM_MOIVE_INVALID_REUSE",
"imports": []
},
"types": [],
"traits": [],
"impls": [],
"functions": [
{
"name": "MAIN",
"params": [],
"return_type": null,
"body": [
{
"Let": {
"name": "SOURCE",
"value": {
"Literal": {
"String": "NXD"
}
}
}
},
{
"Expr": {
"Unary": {
"kind": "MOVE",
"expr": {
"Var": "SOURCE"
}
}
}
},
{
"Expr": {
"Var": "TO"
}
},
{
"Expr": {
"Var": "TARGET"
}
},
{
"Expr": {
"Call": {
"func": "PRINTLN",
"args": [
{
"Var": "SOURCE"
}
]
}
}
}
]
}
],
"statements": []
}
```
```nim
# nim_move_basic
proc main() =
var source = "NXD"
```
Notes:
THIS PASSED SEMANTICS WHEN IT SHOULD FAIL IN SEMANTICS
Documentation