Backport of the following upstream patch:

From c7843072a1ece96edcf3fe76427b91d77f5aacf3 Mon Sep 17 00:00:00 2001
From: Hanna K <hanna.knutsson@protonmail.com>
Date: Sat, 11 Jan 2020 11:07:21 +0100
Subject: [PATCH] Rename IdentityFunction class to avoid crash in Cantor
 because of conflict with Poppler class with same name (issue #171)

---
 libqalculate/BuiltinFunctions.cc |    4 ++--
 libqalculate/BuiltinFunctions.h  |    2 +-
 libqalculate/Calculator.cc       |    2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

--- a/libqalculate/BuiltinFunctions.cc
+++ b/libqalculate/BuiltinFunctions.cc
@@ -271,7 +271,7 @@ int TransposeFunction::calculate(MathStr
 	mstruct = vargs[0];
 	return mstruct.transposeMatrix();
 }
-IdentityFunction::IdentityFunction() : MathFunction("identity", 1) {
+IdentityMatrixFunction::IdentityMatrixFunction() : MathFunction("identity", 1) {
 	ArgumentSet *arg = new ArgumentSet();
 	arg->addArgument(new IntegerArgument("", ARGUMENT_MIN_MAX_POSITIVE, true, true, INTEGER_TYPE_SIZE));
 	MatrixArgument *marg = new MatrixArgument();
@@ -279,7 +279,7 @@ IdentityFunction::IdentityFunction() : M
 	arg->addArgument(marg);
 	setArgumentDefinition(1, arg);
 }
-int IdentityFunction::calculate(MathStructure &mstruct, const MathStructure &vargs, const EvaluationOptions&) {
+int IdentityMatrixFunction::calculate(MathStructure &mstruct, const MathStructure &vargs, const EvaluationOptions&) {
 	if(vargs[0].isMatrix()) {
 		if(vargs[0].rows() != vargs[0].columns()) {
 			return 0;
--- a/libqalculate/BuiltinFunctions.h
+++ b/libqalculate/BuiltinFunctions.h
@@ -129,7 +129,7 @@ DECLARE_BUILTIN_FUNCTION(ColumnFunction)
 DECLARE_BUILTIN_FUNCTION_PI(ElementsFunction)
 DECLARE_BUILTIN_FUNCTION(ElementFunction)
 DECLARE_BUILTIN_FUNCTION(TransposeFunction)
-DECLARE_BUILTIN_FUNCTION(IdentityFunction)
+DECLARE_BUILTIN_FUNCTION(IdentityMatrixFunction)
 DECLARE_BUILTIN_FUNCTION(DeterminantFunction)
 DECLARE_BUILTIN_FUNCTION(PermanentFunction)
 DECLARE_BUILTIN_FUNCTION(AdjointFunction)
--- a/libqalculate/Calculator.cc
+++ b/libqalculate/Calculator.cc
@@ -1430,7 +1430,7 @@ void Calculator::addBuiltinFunctions() {
 	f_elements = addFunction(new ElementsFunction());
 	f_element = addFunction(new ElementFunction());
 	f_transpose = addFunction(new TransposeFunction());
-	f_identity = addFunction(new IdentityFunction());
+	f_identity = addFunction(new IdentityMatrixFunction());
 	f_determinant = addFunction(new DeterminantFunction());
 	f_permanent = addFunction(new PermanentFunction());
 	f_adjoint = addFunction(new AdjointFunction());
