diff options
Diffstat (limited to 'tests/diagnostics/methods')
| -rw-r--r-- | tests/diagnostics/methods/mutating-method-on-rvalue.slang | 26 | ||||
| -rw-r--r-- | tests/diagnostics/methods/mutating-method-on-rvalue.slang.expected | 8 |
2 files changed, 34 insertions, 0 deletions
diff --git a/tests/diagnostics/methods/mutating-method-on-rvalue.slang b/tests/diagnostics/methods/mutating-method-on-rvalue.slang new file mode 100644 index 000000000..ab51244aa --- /dev/null +++ b/tests/diagnostics/methods/mutating-method-on-rvalue.slang @@ -0,0 +1,26 @@ +// mutating-method-on-rvalue.slang + +//DIAGNOSTIC_TEST:SIMPLE:-target hlsl -entry main + +struct Counter +{ + int count; + + [mutating] void increment() { count++; } + + void bad() + { + increment(); + } +} + +cbuffer C +{ + Counter gCounter; +} + +[shader("compute")] +void main() +{ + gCounter.increment(); +}
\ No newline at end of file diff --git a/tests/diagnostics/methods/mutating-method-on-rvalue.slang.expected b/tests/diagnostics/methods/mutating-method-on-rvalue.slang.expected new file mode 100644 index 000000000..878882bd3 --- /dev/null +++ b/tests/diagnostics/methods/mutating-method-on-rvalue.slang.expected @@ -0,0 +1,8 @@ +result code = -1 +standard error = { +tests/diagnostics/methods/mutating-method-on-rvalue.slang(13): error 30050: mutating method 'increment' cannot be called on an immutable value +tests/diagnostics/methods/mutating-method-on-rvalue.slang(13): note 30049: a 'this' parameter is an immutable parameter by default in Slang; apply the `[mutating]` attribute to the function declaration to opt in to a mutable `this` +tests/diagnostics/methods/mutating-method-on-rvalue.slang(25): error 30050: mutating method 'increment' cannot be called on an immutable value +} +standard output = { +} |
