@@ -329,16 +329,22 @@ public static String toStableString(XElement element) {
329329 return asTypeElement (element ).getQualifiedName ();
330330 } else if (isExecutable (element )) {
331331 XExecutableElement executable = asExecutable (element );
332+ // TODO(b/318709946) resolving ksp types can be expensive, therefore we should avoid it
333+ // here for extreme cases until ksp improved the performance.
334+ boolean tooManyParameters =
335+ getProcessingEnv (element ).getBackend ().equals (XProcessingEnv .Backend .KSP )
336+ && executable .getParameters ().size () > 10 ;
332337 return String .format (
333338 "%s(%s)" ,
334339 getSimpleName (
335- isConstructor (element )
336- ? asConstructor (element ).getEnclosingElement ()
337- : executable ),
338- executable .getParameters ().stream ()
339- .map (XExecutableParameterElement ::getType )
340- .map (XTypes ::toStableString )
341- .collect (joining ("," )));
340+ isConstructor (element ) ? asConstructor (element ).getEnclosingElement () : executable ),
341+ (tooManyParameters
342+ ? executable .getParameters ().stream ().limit (10 )
343+ : executable .getParameters ().stream ()
344+ .map (XExecutableParameterElement ::getType )
345+ .map (XTypes ::toStableString )
346+ .collect (joining ("," )))
347+ + (tooManyParameters ? ", ..." : "" ));
342348 } else if (isEnumEntry (element )
343349 || isField (element )
344350 || isMethodParameter (element )
0 commit comments