Parcourir la source

Protect against invalid fixit for adding method

Brian Fiete il y a 5 ans
Parent
commit
c34e6fe66a
1 fichiers modifiés avec 9 ajouts et 7 suppressions
  1. 9 7
      IDEHelper/Compiler/BfExprEvaluator.cpp

+ 9 - 7
IDEHelper/Compiler/BfExprEvaluator.cpp

@@ -7529,15 +7529,17 @@ BfTypedValue BfExprEvaluator::MatchMethod(BfAstNode* targetSrc, BfMethodBoundExp
 			if (targetType != NULL)
 			if (targetType != NULL)
 			{
 			{
 				auto typeInst = targetType->ToTypeInstance();
 				auto typeInst = targetType->ToTypeInstance();
-
-				BfTypeVector paramTypes;
-				for (int argIdx = 0; argIdx < (int)argValues.mResolvedArgs.size(); argIdx++)
+				if ((targetType != NULL) && (!methodName.IsEmpty()))
 				{
 				{
-					auto& resolvedArg = argValues.mResolvedArgs[argIdx];
-					paramTypes.Add(resolvedArg.mTypedValue.mType);
-				}
+					BfTypeVector paramTypes;
+					for (int argIdx = 0; argIdx < (int)argValues.mResolvedArgs.size(); argIdx++)
+					{
+						auto& resolvedArg = argValues.mResolvedArgs[argIdx];
+						paramTypes.Add(resolvedArg.mTypedValue.mType);
+					}
 
 
-				autoComplete->FixitAddMethod(typeInst, methodName, mExpectingType, paramTypes, wantStatic);
+					autoComplete->FixitAddMethod(typeInst, methodName, mExpectingType, paramTypes, wantStatic);
+				}
 			}			
 			}			
 		}
 		}