skia2/resources/sksl/runtime_errors
John Stiles 6a10556775 Reject equality operators on opaque types.
ES2 disallows opaque types in expressions (other than passing them to
their associated builtin functions). We now enforce a similar
restriction on SkSL opaque types.

While I was there, I added several other cases to the invalid-shader
test to make sure that they were all caught.

I needed to reorder some code to make sure that ternary expression error
messages didn't change. Ternary expressions now check for opaque types
before checking that the left-side type and right-side type are
compatible. This is because we check for "compatible" ternary
expressions by checking if `leftSide == rightSide` would be accepted.
`shader1 == shader2` used to be considered a valid expression for the
purposes of this test, but not anymore.

Change-Id: I62a0a31feca9dadd428da7d1b48d7693c4b6434d
Bug: skia:13026
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516802
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-03-07 15:19:46 +00:00
..
DerivativesES2.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ES3Types.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
FirstClassArrays.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalArrayOps.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalIndexing.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalOperators.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalPrecisionQualifiers.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalRecursionComplex.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalRecursionMutual.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalRecursionSimple.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalShaderSampling.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalShaderUse.rts Reject equality operators on opaque types. 2022-03-07 15:19:46 +00:00
IllegalStatements.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
InvalidBlendMain.rtb Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
InvalidColorFilterFeatures.rtcf Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
InvalidColorFilterMain.rtcf Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
InvalidShaderMain.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
LoopConditionErrors.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
LoopExpressionErrors.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
LoopInitializerErrors.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
LoopStructureErrors.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
Ossfuzz36655.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
Ossfuzz38131.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
Ossfuzz45279.rts Reject operators =, ==, and != on void types. 2022-03-07 14:10:29 +00:00
ProgramTooLarge_BlocklessLoops.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ProgramTooLarge_Extreme.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ProgramTooLarge_FlatLoop.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ProgramTooLarge_Functions.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ProgramTooLarge_NestedLoops.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ProgramTooLarge_SplitLoops.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ProgramTooLarge_StackDepth.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameISampler2D.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameSampler1D.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameSampler2D.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameSampler2DRect.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameSampler3D.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameSampler.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameSamplerExternalOES.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameSubpassInput.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameSubpassInputMS.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
ReservedNameTexture2D.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
TypeAliases.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
UnsupportedExtension.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
UnsupportedTypeFragmentProcessor.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
UnsupportedTypeSampler.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
UnsupportedTypeTexture.rts Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00