# WARNING: This file is auto-generated. Do NOT modify it manually, but rather
# modify the generating script file. Otherwise changes will be lost!

group invalid_implicit_conversions "Invalid Implicit Conversions"

	case add_float_int_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				int b;
				float c = a + b;
			}
		""
	end
	case add_float_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				float a;
				int b;
				int c = a + b;
			}
		""
	end
	case add_float_ivec2_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec2 b;
				float c = a + b;
			}
		""
	end
	case add_float_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				float a;
				ivec2 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_float_ivec3_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec3 b;
				float c = a + b;
			}
		""
	end
	case add_float_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				float a;
				ivec3 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_float_ivec4_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec4 b;
				float c = a + b;
			}
		""
	end
	case add_float_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				float a;
				ivec4 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_vec2_int_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				int b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec2 a;
				int b;
				int c = a + b;
			}
		""
	end
	case add_vec2_ivec2_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec2 b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec2 a;
				ivec2 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_vec2_ivec3_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec3 b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec2 a;
				ivec3 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_vec2_ivec4_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec4 b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec2 a;
				ivec4 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_vec3_int_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				int b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec3 a;
				int b;
				int c = a + b;
			}
		""
	end
	case add_vec3_ivec2_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec2 b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec3 a;
				ivec2 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_vec3_ivec3_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec3 b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec3 a;
				ivec3 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_vec3_ivec4_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec4 b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec3 a;
				ivec4 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_vec4_int_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				int b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec4 a;
				int b;
				int c = a + b;
			}
		""
	end
	case add_vec4_ivec2_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec2 b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec4 a;
				ivec2 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_vec4_ivec3_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec3 b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec4 a;
				ivec3 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_vec4_ivec4_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec4 b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec4 a;
				ivec4 b;
				ivec4 c = a + b;
			}
		""
	end
	case mul_float_int_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				int b;
				float c = a * b;
			}
		""
	end
	case mul_float_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				float a;
				int b;
				int c = a * b;
			}
		""
	end
	case mul_float_ivec2_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec2 b;
				float c = a * b;
			}
		""
	end
	case mul_float_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				float a;
				ivec2 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_float_ivec3_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec3 b;
				float c = a * b;
			}
		""
	end
	case mul_float_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				float a;
				ivec3 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_float_ivec4_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec4 b;
				float c = a * b;
			}
		""
	end
	case mul_float_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				float a;
				ivec4 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_vec2_int_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				int b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec2 a;
				int b;
				int c = a * b;
			}
		""
	end
	case mul_vec2_ivec2_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec2 b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec2 a;
				ivec2 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_vec2_ivec3_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec3 b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec2 a;
				ivec3 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_vec2_ivec4_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec4 b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec2 a;
				ivec4 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_vec3_int_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				int b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec3 a;
				int b;
				int c = a * b;
			}
		""
	end
	case mul_vec3_ivec2_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec2 b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec3 a;
				ivec2 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_vec3_ivec3_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec3 b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec3 a;
				ivec3 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_vec3_ivec4_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec4 b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec3 a;
				ivec4 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_vec4_int_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				int b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec4 a;
				int b;
				int c = a * b;
			}
		""
	end
	case mul_vec4_ivec2_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec2 b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec4 a;
				ivec2 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_vec4_ivec3_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec3 b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec4 a;
				ivec3 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_vec4_ivec4_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec4 b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec4 a;
				ivec4 b;
				ivec4 c = a * b;
			}
		""
	end
	case sub_float_int_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				int b;
				float c = a - b;
			}
		""
	end
	case sub_float_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				float a;
				int b;
				int c = a - b;
			}
		""
	end
	case sub_float_ivec2_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec2 b;
				float c = a - b;
			}
		""
	end
	case sub_float_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				float a;
				ivec2 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_float_ivec3_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec3 b;
				float c = a - b;
			}
		""
	end
	case sub_float_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				float a;
				ivec3 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_float_ivec4_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec4 b;
				float c = a - b;
			}
		""
	end
	case sub_float_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				float a;
				ivec4 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_vec2_int_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				int b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec2 a;
				int b;
				int c = a - b;
			}
		""
	end
	case sub_vec2_ivec2_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec2 b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec2 a;
				ivec2 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_vec2_ivec3_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec3 b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec2 a;
				ivec3 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_vec2_ivec4_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec4 b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec2 a;
				ivec4 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_vec3_int_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				int b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec3 a;
				int b;
				int c = a - b;
			}
		""
	end
	case sub_vec3_ivec2_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec2 b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec3 a;
				ivec2 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_vec3_ivec3_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec3 b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec3 a;
				ivec3 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_vec3_ivec4_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec4 b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec3 a;
				ivec4 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_vec4_int_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				int b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec4 a;
				int b;
				int c = a - b;
			}
		""
	end
	case sub_vec4_ivec2_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec2 b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec4 a;
				ivec2 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_vec4_ivec3_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec3 b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec4 a;
				ivec3 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_vec4_ivec4_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec4 b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec4 a;
				ivec4 b;
				ivec4 c = a - b;
			}
		""
	end
	case div_float_int_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				int b;
				float c = a / b;
			}
		""
	end
	case div_float_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				float a;
				int b;
				int c = a / b;
			}
		""
	end
	case div_float_ivec2_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec2 b;
				float c = a / b;
			}
		""
	end
	case div_float_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				float a;
				ivec2 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_float_ivec3_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec3 b;
				float c = a / b;
			}
		""
	end
	case div_float_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				float a;
				ivec3 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_float_ivec4_float
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec4 b;
				float c = a / b;
			}
		""
	end
	case div_float_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				float a;
				ivec4 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_vec2_int_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				int b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec2 a;
				int b;
				int c = a / b;
			}
		""
	end
	case div_vec2_ivec2_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec2 b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec2 a;
				ivec2 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_vec2_ivec3_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec3 b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec2 a;
				ivec3 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_vec2_ivec4_vec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec4 b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec2 a;
				ivec4 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_vec3_int_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				int b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec3 a;
				int b;
				int c = a / b;
			}
		""
	end
	case div_vec3_ivec2_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec2 b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec3 a;
				ivec2 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_vec3_ivec3_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec3 b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec3 a;
				ivec3 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_vec3_ivec4_vec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec4 b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec3 a;
				ivec4 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_vec4_int_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				int b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_int_int
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				int c;
				vec4 a;
				int b;
				int c = a / b;
			}
		""
	end
	case div_vec4_ivec2_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec2 b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_ivec2_ivec2
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec4 a;
				ivec2 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_vec4_ivec3_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec3 b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_ivec3_ivec3
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec4 a;
				ivec3 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_vec4_ivec4_vec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec4 b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_ivec4_ivec4
		expect compile_fail

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec4 a;
				ivec4 b;
				ivec4 c = a / b;
			}
		""
	end

end # invalid_implicit_conversions