# 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
