aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/ast
AgeCommit message (Collapse)AuthorFilesLines
2020-10-16Refactor handling of machine file optionsXavier Claessens1-1/+1
It is much easier to not try to parse options into complicated structures until we actually collected all options: machine files, command line, project()'s default_options, environment.
2020-10-15intro: Add extra_files key to intro output (fixes #7310)Daniel Mensinger1-29/+39
2020-09-24ast/introspection: Fix typing violation due to untyped functionsDylan Baker1-7/+8
When we add type annotations to this in compilers this will break, unless we've already filtered out the non-string arguments.
2020-09-09Merge pull request #7657 from mensinda/moreTypingDylan Baker4-16/+25
typing: Strict type annotations
2020-09-09Merge pull request #7428 from jon-turney/introspector-add-languagesJussi Pakkanen1-12/+21
Handle add_languages(native:) in introspector
2020-09-09Implement add_languages(native:) in introspectorJon Turney1-2/+7
2020-09-08typing: fixup for #7708Daniel Mensinger1-1/+5
2020-09-08typing: fix LGTM bot errorDaniel Mensinger1-0/+4
2020-09-08typing: fix code reviewDaniel Mensinger1-1/+1
2020-09-08typing: more fixesDaniel Mensinger1-1/+2
2020-09-08typing: completely type astDaniel Mensinger3-7/+7
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-09-08Factor out an _add_languages() function in introspectorJon Turney1-11/+15
Factor out an _add_languages() function in introspector, rather than calling func_add_languages() with arguments crafted to fake an interpreter call.
2020-08-01Put machine file and cmd line parsing in EnvironmentDylan Baker1-1/+1
This creates a full set of option in environment that mirror those in coredata, this mirroring of the coredata structure is convenient because lookups int env (such as when initializing compilers) becomes a straight dict lookup, with no list iteration. It also means that all of the command line and machine files are read and stored in the correct order before they're ever accessed, simplifying the logic of using them.
2020-05-23ast: Handle NotNodeDaniel Mensinger1-0/+5
2020-05-23ast: Add AST JSON printerDaniel Mensinger3-4/+162
2020-03-19interpreterbase: Add warning when built-in object method has no kwargsXavier Claessens1-5/+6
2020-03-08Merge pull request #6736 from dcbaker/mesonlib-type-annotationsJussi Pakkanen1-2/+2
Mesonlib type annotations
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-05mesonbuild/mesonlib: Add type annotationsDylan Baker1-2/+2
2020-03-02types: Remove redundant __init__() -> None annotationDaniel Mensinger5-8/+8
2020-03-02types: Use import typing as TDaniel Mensinger2-26/+26
2020-03-02review: Initial fixupDaniel Mensinger1-5/+5
2020-03-02types: Annotate ast/introspection.pyDaniel Mensinger2-48/+60
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 Mensinger2-42/+49
2020-03-02types: Annotate the AST visitorsDaniel Mensinger5-89/+87
2020-03-02types: Annotate mparser.pyDaniel Mensinger2-6/+11
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-12-10mintro: Add version key to --scan-dependencies (fixes #6287)Daniel Mensinger1-1/+6
2019-12-10assert(): Make message argument optionalXavier Claessens1-2/+5
2019-11-06Fix typos found by codespellWolfgang Stöggl2-3/+3
- 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 Mensinger2-3/+7
2019-07-11Merge pull request #5606 from xclaesse/alias_targetJussi Pakkanen1-0/+1
Add alias_target() function
2019-07-10Add alias_target() functionXavier Claessens1-0/+1
2019-06-28ast: printer fix index node printingDaniel Mensinger2-1/+3
2019-06-09Purge `is_cross` and friends without changing user interfacesJohn Ericson1-7/+8
In most cases instead pass `for_machine`, the name of the relevant machines (what compilers target, what targets run on, etc). This allows us to use the cross code path in the native case, deduplicating the code. As one can see, environment got bigger as more information is kept structured there, while ninjabackend got a smaller. Overall a few amount of lines were added, but the hope is what's added is a lot simpler than what's removed.
2019-05-13ast: fix #5376Daniel Mensinger2-3/+9
2019-04-29Fix flake8-bugbear warningsDaniel Mensinger1-2/+0
2019-04-29Fix builtin variable namesDaniel Mensinger1-3/+3
2019-04-29Fix blind exceptionsDaniel Mensinger1-1/+1
2019-04-25ast/printer: remove useless ternaryDylan Baker1-1/+1
The ternary returns True or False from an expression that returns True or False: i.e. True if bool(value) else False.
2019-04-23ast: Address code reviewDaniel Mensinger1-3/+7