<mavenBuild _class='hudson.maven.MavenBuild'><action _class='hudson.maven.reporters.SurefireReport'><failCount>0</failCount><skipCount>16</skipCount><totalCount>846</totalCount><urlName>testReport</urlName></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><attachedArtifact><artifactId>commandhelper</artifactId><canonicalName>commandhelper-3.3.5-SNAPSHOT-full.jar</canonicalName><classifier>full</classifier><fileName>commandhelper-3.3.5-SNAPSHOT-full.jar</fileName><groupId>com.sk89q</groupId><md5sum>6a158b5d6518eff1f3f514594ac05f14</md5sum><type>jar</type><version>3.3.5-SNAPSHOT</version></attachedArtifact><mainArtifact><artifactId>commandhelper</artifactId><canonicalName>commandhelper-3.3.5-SNAPSHOT.jar</canonicalName><fileName>commandhelper-3.3.5-SNAPSHOT.jar</fileName><groupId>com.sk89q</groupId><md5sum>a9a4ad26ae0ac2f75dd001a2e785b61e</md5sum><type>jar</type><version>3.3.5-SNAPSHOT</version></mainArtifact><parent><number>13</number><url>https://letsbuild.net/jenkins/job/CommandHelper/com.sk89q$commandhelper/13/</url></parent><pomArtifact><artifactId>commandhelper</artifactId><canonicalName>commandhelper-3.3.5-SNAPSHOT.pom</canonicalName><fileName>dependency-reduced-pom.xml</fileName><groupId>com.sk89q</groupId><md5sum>5f9ecd0dde983e3b62806a5e3c622a33</md5sum><type>pom</type><version>3.3.5-SNAPSHOT</version></pomArtifact><url>https://letsbuild.net/jenkins/job/CommandHelper/com.sk89q$commandhelper/13/mavenArtifacts/</url></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://letsbuild.net/jenkins/job/CommandHelper/13/com.sk89q$commandhelper/artifact</artifactsUrl><changesUrl>https://letsbuild.net/jenkins/job/CommandHelper/com.sk89q$commandhelper/changes</changesUrl><displayUrl>https://letsbuild.net/jenkins/job/CommandHelper/13/com.sk89q$commandhelper/</displayUrl><testsUrl>https://letsbuild.net/jenkins/job/CommandHelper/13/com.sk89q$commandhelper/testReport</testsUrl></action><building>false</building><displayName>CommandHelper</displayName><duration>806130</duration><estimatedDuration>680280</estimatedDuration><fullDisplayName>CommandHelper » CommandHelper CommandHelper</fullDisplayName><id>13</id><inProgress>false</inProgress><keepLog>false</keepLog><number>13</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1765720428556</timestamp><url>https://letsbuild.net/jenkins/job/CommandHelper/com.sk89q$commandhelper/13/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/Compiler.java</affectedPath><commitId>19d690cf1c475ffa180facd59c4b1c345227a46f</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>Add __cast__ function and syntax

Add `__cast__(val, type)` function and syntax. Syntax is `(type) val`.
</comment><date>2025-11-26 22:39:04 +0100</date><id>19d690cf1c475ffa180facd59c4b1c345227a46f</id><msg>Add __cast__ function and syntax</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/Compiler.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/Compiler.java</affectedPath><commitId>e2698cc4de93bbdfb0b5a00072a2ce6784a08f4e</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>Warn on casts to same type + Error on impossible casts
</comment><date>2025-11-26 22:39:04 +0100</date><id>e2698cc4de93bbdfb0b5a00072a2ce6784a08f4e</id><msg>Warn on casts to same type + Error on impossible casts</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/Compiler.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/Compiler.java</affectedPath><commitId>c530cece4609f479888fce2d01d28dd4e0c2f105</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>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.
</comment><date>2025-11-26 22:39:04 +0100</date><id>c530cece4609f479888fce2d01d28dd4e0c2f105</id><msg>Optimize __cast__()</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/Compiler.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/MethodScriptCompiler.java</affectedPath><commitId>99f21b3da35cf83f7254ce79c54cbafbdc5aef19</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>Fix unknown Target for sugared __cast__() syntax
</comment><date>2025-11-26 22:39:04 +0100</date><id>99f21b3da35cf83f7254ce79c54cbafbdc5aef19</id><msg>Fix unknown Target for sugared __cast__() syntax</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/MethodScriptCompiler.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/constructs/IVariable.java</affectedPath><affectedPath>src/main/java/com/laytonsmith/core/constructs/IVariableList.java</affectedPath><commitId>541100bfc9b9e57e3385f714227c0e362875c261</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>Clone IVariables in IVariableList clone

Allows for not recreating a new `IVariable` for every assign operation.
</comment><date>2025-11-26 22:39:04 +0100</date><id>541100bfc9b9e57e3385f714227c0e362875c261</id><msg>Clone IVariables in IVariableList clone</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/constructs/IVariable.java</file></path><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/constructs/IVariableList.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/test/java/com/laytonsmith/core/OptimizationTest.java</affectedPath><affectedPath>src/main/java/com/laytonsmith/core/functions/Compiler.java</affectedPath><affectedPath>src/main/java/com/laytonsmith/core/functions/DataHandling.java</affectedPath><affectedPath>src/test/java/com/laytonsmith/core/NewExceptionHandlingTest.java</affectedPath><affectedPath>src/main/java/com/laytonsmith/core/constructs/IVariableList.java</affectedPath><affectedPath>src/main/java/com/laytonsmith/core/functions/Exceptions.java</affectedPath><commitId>8a3b73d52293647deba253a92f18ffaf35fdc806</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>Optimize assign() to __unsafe_assign__ ()

Optimize `assign()` to `__unsafe_assign__ ()` when it is known that the `assign()` typecheck will always pass.
</comment><date>2025-11-26 22:39:04 +0100</date><id>8a3b73d52293647deba253a92f18ffaf35fdc806</id><msg>Optimize assign() to __unsafe_assign__ ()</msg><path><editType>edit</editType><file>src/test/java/com/laytonsmith/core/OptimizationTest.java</file></path><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/Compiler.java</file></path><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/DataHandling.java</file></path><path><editType>edit</editType><file>src/test/java/com/laytonsmith/core/NewExceptionHandlingTest.java</file></path><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/constructs/IVariableList.java</file></path><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/Exceptions.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/DataHandling.java</affectedPath><commitId>e017fc2713e67ae66c244b464cd0500439448990</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>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.
</comment><date>2025-11-26 22:39:04 +0100</date><id>e017fc2713e67ae66c244b464cd0500439448990</id><msg>Reduce assign() runtime actions</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/DataHandling.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/Compiler.java</affectedPath><commitId>bd0a1fe3b74f630826da88fedb510cdf742faecd</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>Fix compile error on post-assign non-cast parenthesis

Fixes compile error in the following example code:
```
@a = (1 + 2)
msg(123)
```
</comment><date>2025-11-26 22:39:04 +0100</date><id>bd0a1fe3b74f630826da88fedb510cdf742faecd</id><msg>Fix compile error on post-assign non-cast parenthesis</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/Compiler.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/test/java/com/laytonsmith/core/MethodScriptCompilerTest.java</affectedPath><commitId>4ddda9e34f758a074699382cfe0a5a160d4f0ba7</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>Add soft cast syntax compile test
</comment><date>2025-11-26 22:39:04 +0100</date><id>4ddda9e34f758a074699382cfe0a5a160d4f0ba7</id><msg>Add soft cast syntax compile test</msg><path><editType>edit</editType><file>src/test/java/com/laytonsmith/core/MethodScriptCompilerTest.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/resources/docs/Operators</affectedPath><commitId>8ee27742482a8f66bcd5821ebf36557684591054</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>Add cast to operators table in documentation
</comment><date>2025-11-26 22:39:04 +0100</date><id>8ee27742482a8f66bcd5821ebf36557684591054</id><msg>Add cast to operators table in documentation</msg><path><editType>edit</editType><file>src/main/resources/docs/Operators</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/DataHandling.java</affectedPath><commitId>4f3dbd90d56d243dbf6c4c64c73f1910fc3dced9</commitId><timestamp>1764193144000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>Pieter12345@users.noreply.github.com</authorEmail><comment>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.
</comment><date>2025-11-26 22:39:04 +0100</date><id>4f3dbd90d56d243dbf6c4c64c73f1910fc3dced9</id><msg>Rewrite proc parameter execution</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/DataHandling.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/compiler/signature/SignatureBuilder.java</affectedPath><commitId>c4bc3418f4c0241685fad2823b82adfc8037e1e0</commitId><timestamp>1764193418000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>P.J.S.Kools@student.tudelft.nl</authorEmail><comment>Fix syntax mistake in SignatureBuilder.varParam() docs
</comment><date>2025-11-26 22:43:38 +0100</date><id>c4bc3418f4c0241685fad2823b82adfc8037e1e0</id><msg>Fix syntax mistake in SignatureBuilder.varParam() docs</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/compiler/signature/SignatureBuilder.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/DataHandling.java</affectedPath><commitId>9ecb89627b2e4c0320389074d5c21b223c593e76</commitId><timestamp>1764193601000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>P.J.S.Kools@student.tudelft.nl</authorEmail><comment>Fix missing default value in untyped parameter declarations

Only affects static analysis.
</comment><date>2025-11-26 22:46:41 +0100</date><id>9ecb89627b2e4c0320389074d5c21b223c593e76</id><msg>Fix missing default value in untyped parameter declarations</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/DataHandling.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/Exceptions.java</affectedPath><commitId>c6af4a4b59fa9e3f0b376c223cf08cb9286771f3</commitId><timestamp>1764196781000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>P.J.S.Kools@student.tudelft.nl</authorEmail><comment>Fix core errors in throw(type, string) with invalid type

Fix core errors in `throw(type, string)` when passing non-exception types.
</comment><date>2025-11-26 23:39:41 +0100</date><id>c6af4a4b59fa9e3f0b376c223cf08cb9286771f3</id><msg>Fix core errors in throw(type, string) with invalid type</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/Exceptions.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/compiler/keywords/ProcKeyword.java</affectedPath><commitId>507e0f01cdcd065c300dcddcabf093e155375cf2</commitId><timestamp>1764208495000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><fullName>Pieter12345</fullName></author><authorEmail>P.J.S.Kools@student.tudelft.nl</authorEmail><comment>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.
</comment><date>2025-11-27 02:54:55 +0100</date><id>507e0f01cdcd065c300dcddcabf093e155375cf2</id><msg>Fix forward declaration procedure parsing</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/compiler/keywords/ProcKeyword.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/Compiler.java</affectedPath><commitId>983b1535a9f3b895ba850baa17316c711e256b1c</commitId><timestamp>1764525667000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pseudoknight</absoluteUrl><fullName>PseudoKnight</fullName></author><authorEmail>michael.jt.smith@gmail.com</authorEmail><comment>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.
</comment><date>2025-11-30 10:01:07 -0800</date><id>983b1535a9f3b895ba850baa17316c711e256b1c</id><msg>Fix checking functions too early during compile</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/Compiler.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/EntityManagement.java</affectedPath><affectedPath>src/main/java/com/laytonsmith/abstraction/entities/MCSalmon.java</affectedPath><affectedPath>src/main/resources/functionDocs/entity_spec</affectedPath><affectedPath>src/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCSalmon.java</affectedPath><commitId>5004975204e5364d22cd9641d3fae16e521de638</commitId><timestamp>1764700588000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pseudoknight</absoluteUrl><fullName>PseudoKnight</fullName></author><authorEmail>michael.jt.smith@gmail.com</authorEmail><comment>Add salmon type to entity_spec
</comment><date>2025-12-02 10:36:28 -0800</date><id>5004975204e5364d22cd9641d3fae16e521de638</id><msg>Add salmon type to entity_spec</msg><path><editType>edit</editType><file>src/main/resources/functionDocs/entity_spec</file></path><path><editType>add</editType><file>src/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCSalmon.java</file></path><path><editType>add</editType><file>src/main/java/com/laytonsmith/abstraction/entities/MCSalmon.java</file></path><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/EntityManagement.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/laytonsmith/core/functions/EntityManagement.java</affectedPath><affectedPath>src/main/java/com/laytonsmith/abstraction/entities/MCArrow.java</affectedPath><affectedPath>src/main/resources/functionDocs/entity_spec</affectedPath><affectedPath>src/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCArrow.java</affectedPath><commitId>96e367ed10853844694fb990264b7276f7ab1a35</commitId><timestamp>1765027977000</timestamp><author><absoluteUrl>https://letsbuild.net/jenkins/user/pseudoknight</absoluteUrl><fullName>PseudoKnight</fullName></author><authorEmail>michael.jt.smith@gmail.com</authorEmail><comment>Add arrow particle color to entity_spec
</comment><date>2025-12-06 05:32:57 -0800</date><id>96e367ed10853844694fb990264b7276f7ab1a35</id><msg>Add arrow particle color to entity_spec</msg><path><editType>edit</editType><file>src/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCArrow.java</file></path><path><editType>edit</editType><file>src/main/java/com/laytonsmith/abstraction/entities/MCArrow.java</file></path><path><editType>edit</editType><file>src/main/resources/functionDocs/entity_spec</file></path><path><editType>edit</editType><file>src/main/java/com/laytonsmith/core/functions/EntityManagement.java</file></path></item></changeSet><culprit><absoluteUrl>https://letsbuild.net/jenkins/user/pieter12345</absoluteUrl><description></description><fullName>Pieter12345</fullName><id>pieter12345</id></culprit><culprit><absoluteUrl>https://letsbuild.net/jenkins/user/pseudoknight</absoluteUrl><description></description><fullName>PseudoKnight</fullName><id>pseudoknight</id></culprit><mavenArtifacts><attachedArtifact><artifactId>commandhelper</artifactId><canonicalName>commandhelper-3.3.5-SNAPSHOT-full.jar</canonicalName><classifier>full</classifier><fileName>commandhelper-3.3.5-SNAPSHOT-full.jar</fileName><groupId>com.sk89q</groupId><md5sum>6a158b5d6518eff1f3f514594ac05f14</md5sum><type>jar</type><version>3.3.5-SNAPSHOT</version></attachedArtifact><mainArtifact><artifactId>commandhelper</artifactId><canonicalName>commandhelper-3.3.5-SNAPSHOT.jar</canonicalName><fileName>commandhelper-3.3.5-SNAPSHOT.jar</fileName><groupId>com.sk89q</groupId><md5sum>a9a4ad26ae0ac2f75dd001a2e785b61e</md5sum><type>jar</type><version>3.3.5-SNAPSHOT</version></mainArtifact><parent><number>13</number><url>https://letsbuild.net/jenkins/job/CommandHelper/com.sk89q$commandhelper/13/</url></parent><pomArtifact><artifactId>commandhelper</artifactId><canonicalName>commandhelper-3.3.5-SNAPSHOT.pom</canonicalName><fileName>dependency-reduced-pom.xml</fileName><groupId>com.sk89q</groupId><md5sum>5f9ecd0dde983e3b62806a5e3c622a33</md5sum><type>pom</type><version>3.3.5-SNAPSHOT</version></pomArtifact><url>https://letsbuild.net/jenkins/job/CommandHelper/com.sk89q$commandhelper/13/mavenArtifacts/</url></mavenArtifacts></mavenBuild>