HomePhabricator

Fix the .experimental. settings feature so that we don't return an error if an…

Authored by jasonmolenda on May 1 2018, 3:49 PM.

Description

Fix the .experimental. settings feature so that we don't return an error if an experimental setting has been removed/is missing.

Add tests for the .experimental. settings behaviors -- that they correctly
forward through to the real setting if it has become a real setting,
that they don't generate errors when a settig has been removed.

As Pavel notes in https://reviews.llvm.org/D45348, the way I'm suppressing
errors in the setting is not completely correct - if any of the setting
path components include "experimental", a missing setting would be declared
a non-error. So

settings set target.experimental.setting-that-does-not-exist true

would not generate an error, which is correct. But as Pavel notes,

settings set setting-does-not-exist.experimental.run-stopped true

should generate an error because the unknown name occurs before the
"experimental". The amount of change to do this correctly hasn't
thrilled me, so I'm leaving this as-is for now.

rdar://problem/39223054
Differential Revision: https://reviews.llvm.org/D45348

llvm-svn: 331315