# List<List<SObject>> in apex:attribute type

My visualforce component has the following attribute:

<apex:attribute type="SObject[][]" name="var"
description="Variable to store results in."
assignTo="{!searchResults}" required="true"/>


My components controller has the following variable:

public List<List<SObject>> searchResults {get; set;}


My page's controller has the following variable:

public List<List<SObject>> searchResults {get; set;}


My page references my component as such:

<c:EmailRecipientSearch var="{!searchResults}"/>


I am getting the following error when deploying:

force-app\main\default\pages\SendEmailForm.page Wrong type for attribute . Expected SObject[][], found VisualforceArrayList

The question:

How do I pass a List<List<SObject>> to a component via an attribute.

I know I could create a wrapper class and pass that instead but I'd like to avoid that.

The use case:

I need to pass data from my component back to my page. This was something I've done in the past but have forgotten how to make it work. I read through this question. I vaguely remembered being able to make it work without passing the entire controller and I wanted to test if my memory was correct.

I understand I can test this without needing to past a List<List<SObject>> but I do have a few other use cases where I would need to pass a nested list as an attribute so I figured I'd ask if anyone knew.

One-dimensional lists, specified using array-notation, such as String[], or Contact[].