The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tag:
Branch:
Tree:
c4304d25f9
0.35.1
0.41
0.42
0.42-msi
0.44
0.45
0.46
0.47
0.48
0.49
0.50
0.51
0.52
0.53
0.54
0.55
0.56
0.57
0.58
0.59
0.60
0.61
0.62
0.63
0.64
0.tryme
1.0
1.1
1.2
1.3
1.4
1.5
1.tryme
biggen
builddirupgrade
corporations
crossenvvar
darwin_arch
deprecationdeadline
dirc2
docbuild
dolphin
dotinclude
es/0.61-plus-cython
fedora
gentarget
gh-pages
killpy3
lang-enum
master
mingwdisable
ninjalink
opthelper
optionlookup
optionrefactor
optionrefactor2
optiontree
overrides
pr8895-old
remove-parse_cmd_line_options
revert-10757-llvm-config
rustcmix
tingping/test-gir-program
tingping/test-profile
tingping/xdg-module
trigger-ciimage-builder
uniquefilenames
useargsintests
versionfile
vsmodtest
wip/default-directories
wip/ignatenko/gtester
wip/tingping/xdg-auto-post-install
wip/xclaesse/pr-10714
wip/xclaesse/pr-12097
xclaesse/pr11561-orig
0.1.0
0.10.0
0.11.0
0.12.0
0.13.0
0.14.0
0.15.0
0.16.0
0.17.0
0.18.0
0.19.0
0.2.0
0.20.0
0.21.0
0.22.0
0.23.0
0.24.0
0.25.0
0.26.0
0.27.0
0.28.0
0.29.0
0.30.0
0.31.0
0.32.0
0.33.0
0.34.0
0.35.0
0.35.1
0.36.0
0.37.0
0.37.1
0.38.0
0.38.1
0.39.0
0.39.1
0.4.0
0.4.1
0.40.0
0.40.1
0.41.0
0.41.1
0.41.2
0.42.0
0.42.1
0.43.0
0.44.0
0.44.1
0.45.0
0.45.1
0.46.0
0.46.1
0.47.0
0.47.1
0.47.2
0.48.0
0.48.1
0.48.2
0.49.0
0.49.1
0.49.2
0.5.0
0.50.0
0.50.1
0.51.0
0.51.1
0.51.2
0.52.0
0.52.1
0.53.0
0.53.1
0.53.2
0.54.0
0.54.0.rc1
0.54.1
0.54.2
0.54.3
0.55.0
0.55.0.rc1
0.55.0.rc2
0.55.1
0.55.2
0.55.3
0.56.0
0.56.0.rc1
0.56.0.rc2
0.56.1
0.56.2
0.57.0
0.57.0.rc1
0.57.1
0.57.2
0.58.0
0.58.0.rc1
0.58.1
0.58.2
0.59.0
0.59.0.rc1
0.59.0.rc2
0.59.1
0.59.2
0.59.3
0.59.4
0.6.0
0.60.0
0.60.0.rc1
0.60.0rc2
0.60.1
0.60.2
0.60.3
0.61.0
0.61.0rc1
0.61.1
0.61.2
0.61.3
0.61.4
0.61.5
0.62.0
0.62.0rc1
0.62.0rc2
0.62.1
0.62.2
0.63.0
0.63.0.rc2
0.63.0rc1
0.63.1
0.63.2
0.63.3
0.64.0
0.64.0rc1
0.64.0rc2
0.64.1
0.7.0
0.8.0
0.9.0
1.0.0
1.0.0rc1
1.0.0rc2
1.0.1
1.0.2
1.1.0
1.1.0rc1
1.1.0rc2
1.1.1
1.2.0
1.2.0rc1
1.2.0rc2
1.2.0rc3
1.2.1
1.2.2
1.2.3
1.3.0
1.3.0rc1
1.3.0rc2
1.3.0rc3
1.3.1
1.3.2
1.4.0
1.4.0rc1
1.4.0rc2
1.4.1
1.4.2
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.6.0
1.6.0rc1
1.6.0rc2
${ noResults }
meson/mesonbuild/ast
Dylan Baker
add821db64
This isn't safe given the way python implements default arguments. Basically python store a reference to the instance it was passed, and then if that argument is not provided it uses the default. That means that two calls to the same function get the same instance, if one of them mutates that instance every subsequent call that gets the default will receive the mutated instance. The idiom to this in python is to use None and replace the None, def in(value: str, container: Optional[List[str]]) -> boolean: return src in (container or []) if there is no chance of mutation it's less code to use or and take advantage of None being falsy. If you may want to mutate the value passed in you need a ternary (this example is stupid): def add(value: str, container: Optional[List[str]]) -> None: container = container if container is not None else [] container.append(value) I've used or everywhere I'm sure that the value will not be mutated by the function and erred toward caution by using ternaries for the rest. |
6 years ago | |
---|---|---|
.. | ||
__init__.py | mintro: Dependencies from source | 6 years ago |
interpreter.py | Don't use mutable types as default arguments | 6 years ago |
introspection.py | Don't use mutable types as default arguments | 6 years ago |
postprocess.py | mintro: Dependencies from source | 6 years ago |
printer.py | Fixed style issues | 6 years ago |
visitor.py | AST post processing | 6 years ago |