Most appropriate sub-area of Processing 4?
PDE
Processing version
4.5.6
Operating system
Windows
Bug description
When size() is called from setup() using variables for its width and height, Processing reports the error only when the sketch is run/compiled:
size() cannot be used here, see https://processing.org/reference/size_.html
However, the PDE does not report this as a logic error while editing the sketch.
This is inconsistent with other invalid size() usage and makes the problem harder to identify before running the sketch.
For comparison, using the same variables from settings() works correctly, and arithmetic expressions such as size(400 + 400, 900 - 300) are accepted.
Expected behavior
The PDE should identify the invalid size() usage as a logic error while editing, before the sketch is run.
Actual behavior
The invalid usage is not reported as a PDE logic error while editing. The error is encountered when the sketch is processed/run.
Steps to reproduce this
- Open Processing 4.
- Create a new Java Mode sketch.
- Add the following code:
- Wait for the PDE to process the sketch.
- Observe that the invalid
size() usage is not reported as a logic error in the editor.
- Run the sketch.
- Processing reports:
size() cannot be used here, see https://processing.org/reference/size_.html
For comparison, moving the size(width, height) call into settings() allows the sketch to run successfully.
snippet
int width = 800;
int height = 600;
void setup() {
size(width, height);
}
Additional context
The issue appears to originate in the Java Mode preprocessing of size() arguments.
I investigated the existing sizeParamValid() handling and implemented a change that reports invalid size() arguments as a logic error during preprocessing. I also added regression tests for invalid method and variable arguments.
I manually verified the following cases:
size(width, height) in setup() → logic error
size(width, height) in settings() → works
size(400 + 400, 900 - 300) → works
The Java test suite passes with 194 tests and 0 failures on my local setup.
I would be interested in working on this issue and submitting the corresponding fix.
Would you like to work on the issue?
Yes, I’d like to help with this
Most appropriate sub-area of Processing 4?
PDE
Processing version
4.5.6
Operating system
Windows
Bug description
When
size()is called fromsetup()using variables for its width and height, Processing reports the error only when the sketch is run/compiled:size() cannot be used here, see https://processing.org/reference/size_.htmlHowever, the PDE does not report this as a logic error while editing the sketch.
This is inconsistent with other invalid
size()usage and makes the problem harder to identify before running the sketch.For comparison, using the same variables from
settings()works correctly, and arithmetic expressions such assize(400 + 400, 900 - 300)are accepted.Expected behavior
The PDE should identify the invalid
size()usage as a logic error while editing, before the sketch is run.Actual behavior
The invalid usage is not reported as a PDE logic error while editing. The error is encountered when the sketch is processed/run.
Steps to reproduce this
size()usage is not reported as a logic error in the editor.size() cannot be used here, see https://processing.org/reference/size_.htmlFor comparison, moving the
size(width, height)call intosettings()allows the sketch to run successfully.snippet
Additional context
The issue appears to originate in the Java Mode preprocessing of
size()arguments.I investigated the existing
sizeParamValid()handling and implemented a change that reports invalidsize()arguments as a logic error during preprocessing. I also added regression tests for invalid method and variable arguments.I manually verified the following cases:
size(width, height)insetup()→ logic errorsize(width, height)insettings()→ workssize(400 + 400, 900 - 300)→ worksThe Java test suite passes with 194 tests and 0 failures on my local setup.
I would be interested in working on this issue and submitting the corresponding fix.
Would you like to work on the issue?
Yes, I’d like to help with this