Dave Halter
|
ea5b98905e
|
Make statement_elements_in_statement work with ListComprehensions, Lambdas and 'except foo as' expressions
|
2014-09-02 14:52:04 +02:00 |
|
Dave Halter
|
38c71fce3f
|
Added tests for statement_elements_in_statement
|
2014-09-02 12:10:16 +02:00 |
|
Dave Halter
|
f785aa26dd
|
Additional helper methods, to find all the statement elements that are needed.
|
2014-09-02 03:26:17 +02:00 |
|
Dave Halter
|
be9e77d7d3
|
Add a temporary api._names, to make it possible to annotate a full script with types.
|
2014-09-01 18:10:40 +02:00 |
|
Dave Halter
|
bbf1070ad9
|
Add a helper function to list all name parts of a given module.
|
2014-09-01 13:20:01 +02:00 |
|
Dave Halter
|
76d91ba72a
|
Rename fast_parent_copy to deep_ast_copy.
|
2014-08-22 00:59:46 +02:00 |
|
Dave Halter
|
ed3b507ab7
|
cleanup
|
2014-08-22 00:47:08 +02:00 |
|
Dave Halter
|
6ba0b7b81e
|
lower than/greater than operators evaluate to a boolean now. This is not a 100% correct, because it doesn't evaluate __gt__, etc. But that's ok for now.
|
2014-08-22 00:26:55 +02:00 |
|
Dave Halter
|
039a5ecaf9
|
Fix issues caused by KeywordStatement, which needs to be copied as well.
|
2014-08-21 16:51:00 +02:00 |
|
Dave Halter
|
0ef030848d
|
refactor fast_parent_copy, use new_elements_default to hand in a dictionary, that contains all the generated duplicates.
|
2014-08-21 13:17:33 +02:00 |
|
Dave Halter
|
3cf8bfa8e1
|
Fix a few tests by either fixing the test cases or adding py__bool__ functions to objects that should have such a method.
|
2014-08-20 17:28:54 +02:00 |
|
Dave Halter
|
f911050300
|
Rewrote the isistance implementation, so that it works properly with tuples as well as normal classes.
|
2014-08-20 16:58:19 +02:00 |
|
Dave Halter
|
2a964d4e48
|
Also implement the or operator.
|
2014-08-20 16:28:04 +02:00 |
|
Dave Halter
|
148d17b3be
|
Implementation of the and operation.
|
2014-08-20 16:21:33 +02:00 |
|
Dave Halter
|
d6dd7cd55e
|
Move process_precedence_element from the Evaluator to the precedence module.
|
2014-08-20 15:59:37 +02:00 |
|
Dave Halter
|
9abc8a19e7
|
By adding a py__class__ method to CompiledObject and Class, we Jedi is able to understand isinstance checks, now.
This also includes a CheckAttribute class in evaluatue.compiled, because it's way easier to generalize the AttributeErrors there.
|
2014-08-20 14:46:18 +02:00 |
|
Dave Halter
|
0e66aef511
|
Use IterableWrapper in the iterable module to be able to add methods like is_class quickly.
|
2014-08-20 14:01:41 +02:00 |
|
Dave Halter
|
442a1a1d08
|
wrap some more values with er.wrap
|
2014-08-20 13:52:49 +02:00 |
|
Dave Halter
|
c9542cbc04
|
Start implementing an is_class function that will determine if an object is a class or not in the future.
|
2014-08-20 11:43:25 +02:00 |
|
Dave Halter
|
7f874620db
|
Start documenting all the py__foo__ methods
|
2014-08-20 11:31:23 +02:00 |
|
Dave Halter
|
2e949b43bb
|
Ignore FunctionExecutions in old style isinstance checks for now, because it collides with new style isinstance checks.
|
2014-08-20 11:31:11 +02:00 |
|
Dave Halter
|
09ca47fa93
|
Introduce a dedicated isinstance function implementation.
|
2014-08-19 23:57:59 +02:00 |
|
Dave Halter
|
49163e135c
|
flow_analysis test for isinstance as well as and/or operations.
|
2014-08-19 01:03:14 +02:00 |
|
Dave Halter
|
77673ba986
|
Add an optional param 'parent' to parser.representation.Simple, which simplifies some calls to that superclass.
|
2014-08-19 00:30:17 +02:00 |
|
Dave Halter
|
8bde89cc58
|
Fix the remaining issues with the StatementElement.next refactoring.
|
2014-08-19 00:12:14 +02:00 |
|
Dave Halter
|
8006d6f190
|
Change implementation of StatementElement.
Instead of having both next and execution as attributes, we now only have next, because it's an execution if there's an array.
|
2014-08-18 22:25:55 +02:00 |
|
Dave Halter
|
7619bf27d1
|
Simplify goto_definition in case it done on a function.
|
2014-08-18 15:00:14 +02:00 |
|
Dave Halter
|
00d15da143
|
refactor search_call_signatures. Now we don't need to set Call.next.parent in a strange way anymore and the whole thing seems to be more logical.
|
2014-08-18 14:51:38 +02:00 |
|
Dave Halter
|
542648f5a0
|
first step in refactoring call_signature_array_for_pos, use original_call as a param.
|
2014-08-18 13:39:01 +02:00 |
|
Dave Halter
|
9f38f10366
|
fix tests. Operators should not equal to other operators with a different position. or even parent.
|
2014-08-18 13:13:07 +02:00 |
|
Dave Halter
|
1d812c2414
|
Use the "wrong" parents again for next/execution in StatementElement. This is important for call_signature lookups. We might still be able to change this somewhere in time.
|
2014-08-18 11:22:38 +02:00 |
|
Dave Halter
|
fd90dfc4f5
|
Use a LazyName for module attributes, they should only be generated if needed.
|
2014-08-15 15:20:40 +02:00 |
|
Dave Halter
|
868dab4f51
|
small debug change
|
2014-08-15 02:26:13 +02:00 |
|
Dave Halter
|
89ab0ba137
|
Fix fast_parent_copy. The caching is now more solid than before (and doesn't produce weird side effects. This also solves an issue with Lambdas. However, by fixing all of this we have broken some other things.
|
2014-08-15 01:55:43 +02:00 |
|
Dave Halter
|
1965469050
|
fast_parent_copy should also change the parent of NameParts.
|
2014-08-14 23:48:27 +02:00 |
|
Dave Halter
|
1f9e7ddff8
|
Remove code in the parser that didn't make sense.
|
2014-08-14 13:24:26 +02:00 |
|
Dave Halter
|
425290aa8f
|
Fix an issue with partial keyword inputs.
|
2014-08-14 12:25:00 +02:00 |
|
Dave Halter
|
1540ac89f8
|
Implement the descriptor protocoll properly for instances.
|
2014-08-14 12:15:48 +02:00 |
|
Dave Halter
|
f743619fb8
|
Tests for conditions in descriptors.
|
2014-08-13 14:49:42 +02:00 |
|
Dave Halter
|
ec7b3bf433
|
refactor py_base to py__bases__, because that's the general naming schema
|
2014-08-13 14:34:37 +02:00 |
|
Dave Halter
|
cd433adf84
|
Speedup object lookup even further in classes.
|
2014-08-13 14:17:57 +02:00 |
|
Dave Halter
|
9702c4cdc6
|
Restructure the way we get self arguments (probably reduces executions of object).
|
2014-08-13 14:07:09 +02:00 |
|
Dave Halter
|
cf32e15f65
|
Remove the old 'is not' logic to detect if not instances and use them to do branch predictions. This is not necessary anymore, since we now support that in a more general way (flow_analysis).
|
2014-08-12 18:14:03 +02:00 |
|
Dave Halter
|
eeac77d360
|
Also support the not operator.
|
2014-08-12 18:09:59 +02:00 |
|
Dave Halter
|
8ed89e8245
|
implement !=, ==, is, is not operators to work in if statements (they also work in in non if contexts and return a bool value.), includes tests.
|
2014-08-12 17:59:19 +02:00 |
|
Dave Halter
|
6f018e4884
|
introduce maybe_docstr in parse_statement, which should have been introduced way earlier.
|
2014-08-12 17:13:14 +02:00 |
|
Dave Halter
|
fb1dba269a
|
re-enable the interpretation of the None keyword
|
2014-08-12 14:38:56 +02:00 |
|
Dave Halter
|
469988be9c
|
actually add tests for the flow analysis of variables.
|
2014-08-12 09:57:00 +02:00 |
|
Dave Halter
|
968bc45314
|
even tests should not suffer too much from side effects.
|
2014-08-12 01:46:07 +02:00 |
|
Dave Halter
|
6b7ce590fa
|
Simplify get_parent_scope
|
2014-08-12 01:37:58 +02:00 |
|