summaryrefslogtreecommitdiff
path: root/tests/diagnostics
diff options
context:
space:
mode:
Diffstat (limited to 'tests/diagnostics')
-rw-r--r--tests/diagnostics/interfaces/anyvalue-size-validation.slang2
-rw-r--r--tests/diagnostics/mismatching-types.slang9
-rw-r--r--tests/diagnostics/mismatching-types.slang.expected21
-rw-r--r--tests/diagnostics/uninitialized-fields.slang4
-rw-r--r--tests/diagnostics/variable-redeclaration.slang2
-rw-r--r--tests/diagnostics/variable-redeclaration.slang.expected24
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;
^~~~