'Convert asset_convertible to an asset.
On success, append to matches.
On failure, append to missing.'

def _lookup_generic_scalar(self, asset_convertible, as_of_date, matches, missing):

    if isinstance(asset_convertible, Asset):
        matches.append(asset_convertible)
    elif isinstance(asset_convertible, Integral):
        try:
            result = self.retrieve_asset(int(asset_convertible))
        except SidsNotFound:
            missing.append(asset_convertible)
            return None
        matches.append(result)
    elif isinstance(asset_convertible, string_types):
        for lookup in self._symbol_lookups:
            try:
                matches.append(lookup(asset_convertible, as_of_date))
                return
            except SymbolNotFound:
                continue
        else:
            missing.append(asset_convertible)
            return None
    else:
        raise NotAssetConvertible(('Input    was    %s,    not    AssetConvertible.' % asset_convertible))
