Error `Type of expression is ambiguous without a type annotation` when trying to create a Task.

Hi, I've got this view model that will do a search using a database of keywords. It worked fine when the SearchEngine wasn't an actor but a regular class and the SearchResult wasn't a Sendable. But when I changed them, it returned Type of expression is ambiguous without a type annotation error at line 21 ( searchTask = Task {). What did I do wrong here? Thanks.

protocol SearchableEngine: Actor {
    func searchOrSuggest(from query: String) -> SearchResult?
    func setValidTitles(_ validTitles: [String])
}

@MainActor
final class SearchViewModel: ObservableObject {
    @Published var showSuggestion: Bool = false
    @Published var searchedTitles: [String] = []
    @Published var suggestedKeyword: String? = nil

    private var searchTask: Task<Void, Never>?
    
    private let searchEngine: SearchableEngine
    init(searchEngine: SearchableEngine) {
        self.searchEngine = searchEngine
    }
    
    func search(_ text: String) {
        searchTask?.cancel()
        searchTask = Task {
            guard !Task.isCancelled else { return }
            
            let searchResult = await searchEngine.searchOrSuggest(from: text) ?? .notFound
            
            guard !Task.isCancelled else { return }
            
            await MainActor.run {
                switch searchResult {
                case let .searchItems(_, items):
                    showSuggestion = false
                    searchedTitles = items.map(\.title)
                    suggestedKeyword = nil
                case let .suggestion(keyword, _, items):
                    showSuggestion = true
                    searchedTitles = items.map(\.title)
                    suggestedKeyword = keyword
                case .notFound:
                    showSuggestion = false
                    searchedTitles = []
                    suggestedKeyword = nil
                }
            }
        }
    }
}
Answered by Bawenang in 861231022

Nevermind. It's because of the SearchResult enum. I've changed the associated values of them but forgot to change the switch/case. thanks.

Nevermind. It's because of the SearchResult enum. I've changed the associated values of them but forgot to change the switch/case. thanks.

Error &#96;Type of expression is ambiguous without a type annotation&#96; when trying to create a Task.
 
 
Q