6a10556775
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> |
||
---|---|---|
.. | ||
DerivativesES2.skvm | ||
ES3Types.skvm | ||
FirstClassArrays.skvm | ||
IllegalArrayOps.skvm | ||
IllegalIndexing.skvm | ||
IllegalOperators.skvm | ||
IllegalPrecisionQualifiers.skvm | ||
IllegalRecursionComplex.skvm | ||
IllegalRecursionMutual.skvm | ||
IllegalRecursionSimple.skvm | ||
IllegalShaderSampling.skvm | ||
IllegalShaderUse.skvm | ||
IllegalStatements.skvm | ||
InvalidBlendMain.skvm | ||
InvalidColorFilterFeatures.skvm | ||
InvalidColorFilterMain.skvm | ||
InvalidShaderMain.skvm | ||
LoopConditionErrors.skvm | ||
LoopExpressionErrors.skvm | ||
LoopInitializerErrors.skvm | ||
LoopStructureErrors.skvm | ||
Ossfuzz36655.skvm | ||
Ossfuzz38131.skvm | ||
Ossfuzz45279.skvm | ||
ProgramTooLarge_BlocklessLoops.skvm | ||
ProgramTooLarge_Extreme.skvm | ||
ProgramTooLarge_FlatLoop.skvm | ||
ProgramTooLarge_Functions.skvm | ||
ProgramTooLarge_NestedLoops.skvm | ||
ProgramTooLarge_SplitLoops.skvm | ||
ProgramTooLarge_StackDepth.skvm | ||
ReservedNameISampler2D.skvm | ||
ReservedNameSampler1D.skvm | ||
ReservedNameSampler2D.skvm | ||
ReservedNameSampler2DRect.skvm | ||
ReservedNameSampler3D.skvm | ||
ReservedNameSampler.skvm | ||
ReservedNameSamplerExternalOES.skvm | ||
ReservedNameSubpassInput.skvm | ||
ReservedNameSubpassInputMS.skvm | ||
ReservedNameTexture2D.skvm | ||
TypeAliases.skvm | ||
UnsupportedExtension.skvm | ||
UnsupportedTypeFragmentProcessor.skvm | ||
UnsupportedTypeSampler.skvm | ||
UnsupportedTypeTexture.skvm |