Skip to content
Success

Changes

Summary

  1. Add __cast__ function and syntax (commit: 19d690c) (details)
  2. Warn on casts to same type + Error on impossible casts (commit: e2698cc) (details)
  3. Optimize __cast__() (commit: c530cec) (details)
  4. Fix unknown Target for sugared __cast__() syntax (commit: 99f21b3) (details)
  5. Clone IVariables in IVariableList clone (commit: 541100b) (details)
  6. Optimize assign() to __unsafe_assign__ () (commit: 8a3b73d) (details)
  7. Reduce assign() runtime actions (commit: e017fc2) (details)
  8. Fix compile error on post-assign non-cast parenthesis (commit: bd0a1fe) (details)
  9. Add soft cast syntax compile test (commit: 4ddda9e) (details)
  10. Add cast to operators table in documentation (commit: 8ee2774) (details)
  11. Rewrite proc parameter execution (commit: 4f3dbd9) (details)
  12. Fix syntax mistake in SignatureBuilder.varParam() docs (commit: c4bc341) (details)
  13. Fix missing default value in untyped parameter declarations (commit: 9ecb896) (details)
  14. Fix core errors in throw(type, string) with invalid type (commit: c6af4a4) (details)
  15. Fix forward declaration procedure parsing (commit: 507e0f0) (details)
  16. Fix checking functions too early during compile (commit: 983b153) (details)
  17. Add salmon type to entity_spec (commit: 5004975) (details)
  18. Add arrow particle color to entity_spec (commit: 96e367e) (details)
Commit 19d690cf1c475ffa180facd59c4b1c345227a46f by Pieter12345
Add __cast__ function and syntax

Add `__cast__(val, type)` function and syntax. Syntax is `(type) val`.
(commit: 19d690c)
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/Compiler.java
Commit e2698cc4de93bbdfb0b5a00072a2ce6784a08f4e by Pieter12345
Warn on casts to same type + Error on impossible casts
(commit: e2698cc)
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/Compiler.java
Commit c530cece4609f479888fce2d01d28dd4e0c2f105 by Pieter12345
Optimize __cast__()

- Mark `__cast__()` for constant and cached returns.
- Remove nested casts where the second executed cast is removed if the first executed cast passing ensures that the second executed cast will pass.
(commit: c530cec)
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/Compiler.java
Commit 99f21b3da35cf83f7254ce79c54cbafbdc5aef19 by Pieter12345
Fix unknown Target for sugared __cast__() syntax
(commit: 99f21b3)
The file was modifiedsrc/main/java/com/laytonsmith/core/MethodScriptCompiler.java
Commit 541100bfc9b9e57e3385f714227c0e362875c261 by Pieter12345
Clone IVariables in IVariableList clone

Allows for not recreating a new `IVariable` for every assign operation.
(commit: 541100b)
The file was modifiedsrc/main/java/com/laytonsmith/core/constructs/IVariable.java
The file was modifiedsrc/main/java/com/laytonsmith/core/constructs/IVariableList.java
Commit 8a3b73d52293647deba253a92f18ffaf35fdc806 by Pieter12345
Optimize assign() to __unsafe_assign__ ()

Optimize `assign()` to `__unsafe_assign__ ()` when it is known that the `assign()` typecheck will always pass.
(commit: 8a3b73d)
The file was modifiedsrc/main/java/com/laytonsmith/core/constructs/IVariableList.java
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/Compiler.java
The file was modifiedsrc/test/java/com/laytonsmith/core/NewExceptionHandlingTest.java
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/Exceptions.java
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/DataHandling.java
The file was modifiedsrc/test/java/com/laytonsmith/core/OptimizationTest.java
Commit e017fc2713e67ae66c244b464cd0500439448990 by Pieter12345
Reduce assign() runtime actions

- Do not redefine variables in variable list when not necessary.
- Unwrap IVariable values only once.
- Directly create new IVariable with correct values when necessary.
(commit: e017fc2)
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/DataHandling.java
Commit bd0a1fe3b74f630826da88fedb510cdf742faecd by Pieter12345
Fix compile error on post-assign non-cast parenthesis

Fixes compile error in the following example code:
```
@a = (1 + 2)
msg(123)
```
(commit: bd0a1fe)
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/Compiler.java
Commit 4ddda9e34f758a074699382cfe0a5a160d4f0ba7 by Pieter12345
Add soft cast syntax compile test
(commit: 4ddda9e)
The file was modifiedsrc/test/java/com/laytonsmith/core/MethodScriptCompilerTest.java
Commit 8ee27742482a8f66bcd5821ebf36557684591054 by Pieter12345
Add cast to operators table in documentation
(commit: 8ee2774)
The file was modifiedsrc/main/resources/docs/Operators
Commit 4f3dbd90d56d243dbf6c4c64c73f1910fc3dced9 by Pieter12345
Rewrite proc parameter execution

Fixes issue where variables in default parameter value expressions resolve to previous parameters instead of variables from the outer scope in runtime.
(commit: 4f3dbd9)
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/DataHandling.java
Commit c4bc3418f4c0241685fad2823b82adfc8037e1e0 by Pieter12345
Fix syntax mistake in SignatureBuilder.varParam() docs
(commit: c4bc341)
The file was modifiedsrc/main/java/com/laytonsmith/core/compiler/signature/SignatureBuilder.java
Commit 9ecb89627b2e4c0320389074d5c21b223c593e76 by Pieter12345
Fix missing default value in untyped parameter declarations

Only affects static analysis.
(commit: 9ecb896)
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/DataHandling.java
Commit c6af4a4b59fa9e3f0b376c223cf08cb9286771f3 by Pieter12345
Fix core errors in throw(type, string) with invalid type

Fix core errors in `throw(type, string)` when passing non-exception types.
(commit: c6af4a4)
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/Exceptions.java
Commit 507e0f01cdcd065c300dcddcabf093e155375cf2 by Pieter12345
Fix forward declaration procedure parsing

- Fix forward declaration procedures not parsing correctly if they are not followed by an AST term. This seems to only be an issue in interpreter mode as far as was tested.
- Add comments to clarify proc keyword rewriting logic.
(commit: 507e0f0)
The file was modifiedsrc/main/java/com/laytonsmith/core/compiler/keywords/ProcKeyword.java
Commit 983b1535a9f3b895ba850baa17316c711e256b1c by PseudoKnight
Fix checking functions too early during compile

Caused a compile error when a function did not exist but was inside a proper function_exists() or extension_exists() code block.
(commit: 983b153)
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/Compiler.java
Commit 5004975204e5364d22cd9641d3fae16e521de638 by PseudoKnight
Add salmon type to entity_spec
(commit: 5004975)
The file was addedsrc/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCSalmon.java
The file was modifiedsrc/main/resources/functionDocs/entity_spec
The file was addedsrc/main/java/com/laytonsmith/abstraction/entities/MCSalmon.java
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/EntityManagement.java
Commit 96e367ed10853844694fb990264b7276f7ab1a35 by PseudoKnight
Add arrow particle color to entity_spec
(commit: 96e367e)
The file was modifiedsrc/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCArrow.java
The file was modifiedsrc/main/java/com/laytonsmith/core/functions/EntityManagement.java
The file was modifiedsrc/main/resources/functionDocs/entity_spec
The file was modifiedsrc/main/java/com/laytonsmith/abstraction/entities/MCArrow.java