diff options
Diffstat (limited to 'tests/diagnostics')
6 files changed, 48 insertions, 14 deletions
diff --git a/tests/diagnostics/interfaces/anyvalue-size-validation.slang b/tests/diagnostics/interfaces/anyvalue-size-validation.slang index f2ed52d0c..ffe968c67 100644 --- a/tests/diagnostics/interfaces/anyvalue-size-validation.slang +++ b/tests/diagnostics/interfaces/anyvalue-size-validation.slang @@ -26,6 +26,6 @@ RWStructuredBuffer<uint> output; [numthreads(4, 1, 1)] void main() { - S s = S(); + S s = S(1, 2, 3); output[0] = test(s).a; } diff --git a/tests/diagnostics/mismatching-types.slang b/tests/diagnostics/mismatching-types.slang index 15fc1d0e3..ead1d34ff 100644 --- a/tests/diagnostics/mismatching-types.slang +++ b/tests/diagnostics/mismatching-types.slang @@ -49,19 +49,26 @@ void main(uint3 dispatchThreadID : SV_DispatchThreadID) // expected an expression of type 'GenericOuter<int>', got 'int' a = 0; + // expected an expression of type 'GenericOuter<int>.GenericInner<int>', got 'int' + // explicit conversion from 'int' to 'GenericOuter<int>.GenericInner<int>' is possible a.g = 0; + // expected an expression of type 'GenericOuter<int>.NonGenericInner', got 'int' + // explicit conversion from 'int' to 'GenericOuter<int>.GenericInner<int>' is possible a.ng = 0; // expected an expression of type 'GenericOuter<int>.GenericInner<int>', got 'GenericOuter<float>.GenericInner<float>' a.g = b.g; // expected an expression of type 'GenericOuter<int>.NonGenericInner', got 'GenericOuter<float>.NonGenericInner' a.ng = b.ng; // expected an expression of type 'NonGenericOuter.GenericInner<int>', got 'int' + // explicit conversion from 'int' to 'GenericInner<int>' is possible c.i = 0; // expected an expression of type 'NonGenericOuter.GenericInner<int>', got 'NonGenericOuter.GenericInner<float>' c.i = c.f; + // expected an expression of type 'NonGenericOuter.GenericInner<int>.ReallyNested', got 'int' + // explicit conversion from 'int' to 'GenericInner<int>.ReallyNested' is possible c.i.n = 0; // OK c.i.n.val = 0; @@ -74,4 +81,4 @@ void main(uint3 dispatchThreadID : SV_DispatchThreadID) Texture1D<int> t1 = tex; // expected an expression of type 'Texture2D<float>', got 'Texture1D<float>' Texture2D<float> t2 = tex; -}
\ No newline at end of file +} diff --git a/tests/diagnostics/mismatching-types.slang.expected b/tests/diagnostics/mismatching-types.slang.expected index 65a6df32e..a706e30e6 100644 --- a/tests/diagnostics/mismatching-types.slang.expected +++ b/tests/diagnostics/mismatching-types.slang.expected @@ -3,31 +3,34 @@ standard error = { tests/diagnostics/mismatching-types.slang(51): error 30019: expected an expression of type 'GenericOuter<int>', got 'int' a = 0; ^ -tests/diagnostics/mismatching-types.slang(53): error 30019: expected an expression of type 'GenericOuter<int>.GenericInner<int>', got 'int' +tests/diagnostics/mismatching-types.slang(55): error 30019: expected an expression of type 'GenericOuter<int>.GenericInner<int>', got 'int' a.g = 0; ^ -tests/diagnostics/mismatching-types.slang(55): error 30019: expected an expression of type 'GenericOuter<int>.NonGenericInner', got 'int' +tests/diagnostics/mismatching-types.slang(55): note: explicit conversion from 'int' to 'GenericOuter<int>.GenericInner<int>' is possible +tests/diagnostics/mismatching-types.slang(59): error 30019: expected an expression of type 'GenericOuter<int>.NonGenericInner', got 'int' a.ng = 0; ^ -tests/diagnostics/mismatching-types.slang(57): error 30019: expected an expression of type 'GenericOuter<int>.GenericInner<int>', got 'GenericOuter<float>.GenericInner<float>' +tests/diagnostics/mismatching-types.slang(59): note: explicit conversion from 'int' to 'GenericOuter<int>.NonGenericInner' is possible +tests/diagnostics/mismatching-types.slang(61): error 30019: expected an expression of type 'GenericOuter<int>.GenericInner<int>', got 'GenericOuter<float>.GenericInner<float>' a.g = b.g; ^ -tests/diagnostics/mismatching-types.slang(59): error 30019: expected an expression of type 'GenericOuter<int>.NonGenericInner', got 'GenericOuter<float>.NonGenericInner' +tests/diagnostics/mismatching-types.slang(63): error 30019: expected an expression of type 'GenericOuter<int>.NonGenericInner', got 'GenericOuter<float>.NonGenericInner' a.ng = b.ng; ^~ -tests/diagnostics/mismatching-types.slang(61): error 30019: expected an expression of type 'NonGenericOuter.GenericInner<int>', got 'int' +tests/diagnostics/mismatching-types.slang(66): error 30019: expected an expression of type 'NonGenericOuter.GenericInner<int>', got 'int' c.i = 0; ^ -tests/diagnostics/mismatching-types.slang(63): error 30019: expected an expression of type 'NonGenericOuter.GenericInner<int>', got 'NonGenericOuter.GenericInner<float>' +tests/diagnostics/mismatching-types.slang(68): error 30019: expected an expression of type 'NonGenericOuter.GenericInner<int>', got 'NonGenericOuter.GenericInner<float>' c.i = c.f; ^ -tests/diagnostics/mismatching-types.slang(65): error 30019: expected an expression of type 'NonGenericOuter.GenericInner<int>.ReallyNested', got 'int' +tests/diagnostics/mismatching-types.slang(72): error 30019: expected an expression of type 'NonGenericOuter.GenericInner<int>.ReallyNested', got 'int' c.i.n = 0; ^ -tests/diagnostics/mismatching-types.slang(74): error 30019: expected an expression of type 'Texture1D<int>', got 'Texture1D<float>' +tests/diagnostics/mismatching-types.slang(72): note: explicit conversion from 'int' to 'NonGenericOuter.GenericInner<int>.ReallyNested' is possible +tests/diagnostics/mismatching-types.slang(81): error 30019: expected an expression of type 'Texture1D<int>', got 'Texture1D<float>' Texture1D<int> t1 = tex; ^~~ -tests/diagnostics/mismatching-types.slang(76): error 30019: expected an expression of type 'Texture2D<float>', got 'Texture1D<float>' +tests/diagnostics/mismatching-types.slang(83): error 30019: expected an expression of type 'Texture2D<float>', got 'Texture1D<float>' Texture2D<float> t2 = tex; ^~~ } diff --git a/tests/diagnostics/uninitialized-fields.slang b/tests/diagnostics/uninitialized-fields.slang index f3c7b1a36..efa62cc36 100644 --- a/tests/diagnostics/uninitialized-fields.slang +++ b/tests/diagnostics/uninitialized-fields.slang @@ -56,16 +56,16 @@ struct Partial // Warnings here should be a bit different struct Implicit { - //CHK-DAG: warning 41021: default initializer for 'Implicit' will not initialize field 'a' int a; int b = 1; - //CHK-DAG: warning 41021: default initializer for 'Implicit' will not initialize field 'c' int c; int d = 1 + 1; } int using_implicit(int x) { + // no default constructor will be called, because there is no __init() synthesized for `Implicit` + // so no warnings will be reported on members of `Implicit` Implicit impl; impl.a = x; return impl.c; diff --git a/tests/diagnostics/variable-redeclaration.slang b/tests/diagnostics/variable-redeclaration.slang index bbd6a07c0..d238442e8 100644 --- a/tests/diagnostics/variable-redeclaration.slang +++ b/tests/diagnostics/variable-redeclaration.slang @@ -37,7 +37,7 @@ int testLocalShadowing(int x) } // Structure fields - +// Note: more diagnostics will be reported here because of the constructor synthesis struct S { int f; diff --git a/tests/diagnostics/variable-redeclaration.slang.expected b/tests/diagnostics/variable-redeclaration.slang.expected index 1998c13c8..842038180 100644 --- a/tests/diagnostics/variable-redeclaration.slang.expected +++ b/tests/diagnostics/variable-redeclaration.slang.expected @@ -30,6 +30,30 @@ tests/diagnostics/variable-redeclaration.slang(21): error 30200: declaration of tests/diagnostics/variable-redeclaration.slang(20): note: see previous declaration of 'y' int y = x; ^ +tests/diagnostics/variable-redeclaration.slang(41): error 30200: declaration of 'f' conflicts with existing declaration +struct S + ^ +tests/diagnostics/variable-redeclaration.slang(41): note: see previous declaration of 'f' +struct S + ^ +tests/diagnostics/variable-redeclaration.slang(43): error 39999: ambiguous reference to 'f' + int f; + ^ +tests/diagnostics/variable-redeclaration.slang(44): note 39999: candidate: float S.f + float f; + ^ +tests/diagnostics/variable-redeclaration.slang(43): note 39999: candidate: int S.f + int f; + ^ +tests/diagnostics/variable-redeclaration.slang(44): error 39999: ambiguous reference to 'f' + float f; + ^ +tests/diagnostics/variable-redeclaration.slang(44): note 39999: candidate: float S.f + float f; + ^ +tests/diagnostics/variable-redeclaration.slang(43): note 39999: candidate: int S.f + int f; + ^ tests/diagnostics/variable-redeclaration.slang(53): error 39999: ambiguous reference to 'size' return size; ^~~~ |
