* Improve error message when parsing unquoted string
* Remove conversion to lowercase in parse_keylike()
Converting keys to lowercase goes against
TOML specification for floats.
* Change error message for unquoted string
TOML allows (unlike many other formats) up to 2
additonal quotes that are part of the string:
basic = """2 extra quotes -->"""""
literal = '''here too ''''
Changed in TOML v1.0.0-rc.1
See also #392
* "Support" spans for maps
In toml you can declare maps via {} and via [name].
We can't obtain spans for [] maps but at least we
can emit fake spans to make SpannedValue work.
We also add a regression test.
* Don't regress the inline table case
* Also support arrays
* Spanned: impl PartialEq, Eq, Hash, PartialOrd, Ord in terms of the value
This is because we want to be able to index into HashMap<Spanned<String>, T>
with a dummy span and get results where only the content has to match.
* Add Borrow impl
* Add tests
* Store key spans in the deserializer
* Support deserializing spanned keys
* Store key spans of the table header as well
* Support nested table key spans as well
This commit fixes#279 where a case of duplicate table headers slipped
through the cracks. This also adds an option to disable this new
validation to allow Cargo to preserve backwards compatibility.
In spec https://github.com/toml-lang/toml#keys
Quoted keys are clarified as
> he exact same rules as either basic strings or literal strings
TOML clearly distinguishes basic string and multi-line basic string
(literal string is also).
https://github.com/toml-lang/toml#string
So table key and quoted key should not allow multi-line basic string
and multi-line literal string.
ABNF definition also describes that.
https://github.com/toml-lang/toml/blob/master/toml.abnf
```
string = ml-basic-string / basic-string / ml-literal-string / literal-string
quoted-key = basic-string / literal-string
```
`string` contains `ml-*` but `quoted-key` doesn't.