forked from Rust-related/RustPython
This allows the parser to handle tabs and spaces. Currently it requires that spaces come after any tabs, which is slightly more strict than python3. It also requires that neighboring indentation levels have either both more spaces and tabs or less spaces and tabs so that tab size can't make perception of indentation differ from what the parser interprets. I didn't opt to implement PartialOrd on IndentationLevel because I wasn't sure that the comparison logic would meet the logical requirements for that trait. One could easily switch to having it implement PartialOrd though. This would necessitate switching to manually implementing PartialEq so that it's behavior 'matches'. It's unclear from the docs what 'matches' exactly means so for now I'm avoiding implementing the traits.
12 lines
239 B
Python
12 lines
239 B
Python
# WARNING! This file contains mixed tabs and spaces
|
|
# (because that's what it is testing)
|
|
|
|
def weird_indentation():
|
|
return_value = "hi"
|
|
if False:
|
|
return return_value
|
|
return "hi"
|
|
|
|
assert weird_indentation() == "hi"
|
|
|