aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/ast/interpreter.py
AgeCommit message (Collapse)AuthorFilesLines
2021-03-16Add range() functionXavier Claessens1-0/+1
Fixes: #5026.
2021-03-06Refactor subdir visitation to track files instead of dirs.Jussi Pakkanen1-6/+7
2021-03-04mass rewrite of string formatting to use f-strings everywhereEli Schwartz1-2/+2
performed by running "pyupgrade --py36-plus" and committing the results
2020-09-08typing: fixup for #7708Daniel Mensinger1-1/+5
2020-09-08typing: refactor dict handlingDaniel Mensinger1-8/+8
2020-09-08IntrospectInterpreter: allow dictionaries with nonconstant keysPaolo Bonzini1-0/+10
Something like {a: foo} currently stymies the IntrospectionInterpreter and breaks introspection of the source directory. The fix is just to walk the keys and return a dummy dictionary. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-05-23ast: Handle NotNodeDaniel Mensinger1-0/+5
2020-03-19interpreterbase: Add warning when built-in object method has no kwargsXavier Claessens1-5/+6
2020-03-06ast: Implement dummy evaluate_notstatementDaniel Mensinger1-0/+5
2020-03-06ast: Do not resolve dict keysXavier Claessens1-1/+1
Fixes: #6748
2020-03-02types: Remove redundant __init__() -> None annotationDaniel Mensinger1-1/+1
2020-03-02review: Initial fixupDaniel Mensinger1-5/+5
2020-03-02types: Annotate ast/introspection.pyDaniel Mensinger1-12/+4
2020-03-02types: (partially) annotate interpreterbase.pyDaniel Mensinger1-13/+21
This commit annotates most of interpreterbase.py. However, there are stil the @wraps missing, since I am unsure what the types are supposed to be here.
2020-03-02types: Annotate ast/interpreter.pyDaniel Mensinger1-38/+46
2020-03-02types: Annotate the AST visitorsDaniel Mensinger1-3/+3
2020-03-02types: Annotate mparser.pyDaniel Mensinger1-1/+9
This also fixes that the keys in ArgumentNode.kwargs are all of the type BaseNode now. Before this commit, it was possible that both strings and Nodes where used as keys.
2020-02-28Store filename in node locationJon Turney1-1/+1
Warnings have a location node object (with subdir and lineno attributes), which is passed as a location: kwarg to mlog.warning() and formatted in _log_error(). Re-purpose the subdir attribute (path relative to the source root dir, with an implied filename of 'meson.build'), which is stored into the node by parser(), to contain a pathname. (Properly I should rename 'subdir' -> 'file' everywhere, but that's a lot of churn just to see if this works) Notes: The warning location node may also have a colno attribute, which is currently ignored by _log_error(). We can't currently issue warnings with locations in meson_options.txt because the filename isn't part of the location (as it's assumed to be 'meson.build).
2020-02-28Adjust all the other places MesonException file attribute is setJon Turney1-1/+1
A MesonException has file, lineno and colno attributes, which get formatted as a location in mlog.exception(). The file attribute got changed from a path relative to the root source directory to a pathname (absolute or relative to cwd) in one place in commit b8fbbf59. Adjust all the other places the file attribute is set to match. Also: Setting MesonException.file seems to be missing in the case where Parser returned a non-CodeBlockNode object. Fortunately, that looks like it's unreachable, but add it just in case.
2020-01-08types: import typing as T (fixes #6333)Daniel Mensinger1-5/+5
2019-12-12Add a summary() function for configuration summarizationXavier Claessens1-0/+1
Based on patch from Dylan Baker. Fixes #757
2019-11-06Fix typos found by codespellWolfgang Stöggl1-1/+1
- Typos were found by codespell v1.16.0
2019-09-04mintro: Fix resolving nodes in kwargs (fixes #5884)Daniel Mensinger1-42/+66
2019-08-12Add is_disabler functionJames Hilliard1-0/+1
This is useful if one needs to check if a variable is a disabler. Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2019-07-31mintro: Fix crash related to the sources kwarg (fixes #5741)Daniel Mensinger1-1/+1
2019-07-10Add alias_target() functionXavier Claessens1-0/+1
2019-05-13ast: fix #5376Daniel Mensinger1-2/+8
2019-04-23ast: Address code reviewDaniel Mensinger1-3/+7
2019-04-23make flake8 happyDaniel Mensinger1-1/+0
2019-04-23ast: Make sure to avoid infinite recursionsDaniel Mensinger1-9/+9
2019-04-23ast: support elementary object methodsDaniel Mensinger1-6/+40
2019-04-23ast: resolve simple arithmetic nodesDaniel Mensinger1-4/+29
2019-04-23ast: resolve ID nodes in flatten_argsDaniel Mensinger1-20/+23
2019-04-23Don't use mutable types as default argumentsDylan Baker1-3/+3
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.
2019-04-13mintro: Fix set_variable plus assign bug (closes #5256)Daniel Mensinger1-0/+1
2019-04-02mintro: fix some interpreter crashesDaniel Mensinger1-0/+24
2019-03-04rewriter: Handle duplicate targetDaniel Mensinger1-2/+3
2019-02-16Can now find the assignment node of a valueDaniel Mensinger1-1/+16
2019-02-16Merge pull request #4858 from mensinda/rwKWARGSJussi Pakkanen1-2/+2
rewriter: Add support for kwargs modification
2019-02-01Ensure that func dicts provide the same set of functionsDaniel Mensinger1-0/+10
2019-01-31Some fixes and assignment based target findDaniel Mensinger1-2/+2
2019-01-22Fixed flake8 issuesDaniel Mensinger1-2/+2
2019-01-22First rewriter test caseDaniel Mensinger1-1/+1
2019-01-22Added support for assignments in the AST interpretorDaniel Mensinger1-2/+9
2019-01-22Added target AST Interpreter supportDaniel Mensinger1-6/+23
2019-01-22Removed the RewriteIntrepreterDaniel Mensinger1-144/+0
2019-01-22Moved the introspection interpreterDaniel Mensinger1-4/+1
2019-01-22Basic AST visitor patternDaniel Mensinger1-0/+332