def METHOD_NAME(self, line, missing_features):
    if not line.set_feature:
        return
    self.feature_callback(line.set_feature)
    line_strs = tuple(fasm.fasm_line_to_string(line))
    assert len(line_strs) == 1
    line_str = line_strs[0]
    parts = line.set_feature.feature.split('.')
    tile = parts[0]
    feature = '.'.join(parts[1:])
    # canonical_features flattens multibit feature enables to only
    # single bit features, which is what enable_feature expects.
    #
    # canonical_features also filters out features that are not enabled,
    # which are no-ops.
    for flat_set_feature in fasm.canonical_features(line.set_feature):
        address = 0
        if flat_set_feature.start is not None:
            address = flat_set_feature.start
        try:
            self.enable_feature(tile, feature, address, line_str)
        except FasmLookupError as e:
            missing_features.append(str(e))