Kaydet (Commit) 0549b5dd authored tarafından Eike Rathke's avatar Eike Rathke

HandleIIOpCode: testing for ForceArray is not sufficient

There are also other "force to array" context modes in which a
range reference does not result in an implicit intersection.

Change-Id: I3f4d85f73ecde5bbf9f011deeac2936d5f43949b
üst 26f1fc7c
......@@ -5844,9 +5844,18 @@ void ScCompiler::HandleIIOpCode(OpCode nOpCode, formula::ParamClass eClass, Form
if (nNumParams != 1)
return;
if (eClass == formula::ForceArray || mbMatrixFlag)
// NOTE: eClass is the CurrentFactor token's GetInForceArray() state,
// not the function's parameter classification.
if (mbMatrixFlag ||
eClass == formula::ForceArray ||
eClass == formula::ReferenceOrForceArray ||
eClass == formula::SuppressedReferenceOrForceArray)
return;
/* TODO: this assumes that there is no function taking a single
* parameter that does evaluate a range reference. There currently
* isn't any, but we should rather check that. */
if ((*pppToken[0])->GetType() != svDoubleRef)
return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment