1
0
forked from VimPlug/jedi
Commit Graph

3100 Commits

Author SHA1 Message Date
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
Dave Halter
33e5a3280a Remove IsScope in favor of an is_scope function.
This function was partially implemented anway. Now we've also added a function called 'get_parent_scope', to make it easy to get a scope of a Call, Statement, whatever.
2014-08-12 01:19:19 +02:00
Dave Halter
1865284fa9 fix the interpreter (previously broken by flow analysis) 2014-08-12 00:19:20 +02:00
Dave Halter
242072976a use py__mro__ in a classes scope_names_generator 2014-08-11 23:53:45 +02:00
Dave Halter
526af7ccbe settings should not be affected by exceptions. 2014-08-11 17:27:40 +02:00
Dave Halter
f1711f8f9c possible direction of branch checks for name resolution. 2014-08-10 13:17:37 +02:00
Dave Halter
483f5c14ee Listeneres should be removed even in exception cases. Do a 'finally' cleanup. 2014-08-07 16:27:57 +02:00
Dave Halter
01bdd1e4fa Test fixes and for loops need to be handled a awell in flow_analysis. 2014-08-07 15:51:41 +02:00
Dave Halter
0ae9e520c1 flow analysis working for elif statements (even in combination with else) 2014-08-07 15:18:30 +02:00
Dave Halter
743d064e6d exception while using else as a scope 2014-08-07 12:10:31 +02:00
Dave Halter
ee65764c3a more complicated logic working with else 2014-08-07 12:02:08 +02:00
Dave Halter
d94a70b524 fix a logic issue in the flow_analysis.Status.__and__ 2014-08-07 03:02:40 +02:00
Dave Halter
b7151c1ef9 add a first flow analysis test 2014-08-06 23:35:30 +02:00
Dave Halter
138fa1b4de deletion of returns from SCOPE_CONTENTS was wrong. 2014-08-06 22:42:38 +02:00
Dave Halter
e7e7bd29e8 fix generator tests (multiple yields must be called with an if random. 2014-08-06 12:45:38 +02:00
Dave Halter
23c39eff9a fix lambda issues 2014-08-06 12:40:08 +02:00
Dave Halter
e3bb0ccc2e fix a keyword statement issue 2014-08-06 12:10:36 +02:00
Dave Halter
15ec0a77fe a first very simple implementation of reachable/unreachable return statements. 2014-08-05 17:02:16 +02:00
Dave Halter
f5e49e3218 flow analysis preparation 2014-08-05 12:06:58 +02:00
Dave Halter
c44168f7ad add a Flow.previous attribute to be able to access the if flow from an else clause. 2014-08-05 11:17:18 +02:00
Dave Halter
54dce0e3b2 fix strange issues of Python's std lib tokenizer, might be in there as well (not sure, cause I modified a lot). fixes #449 2014-08-04 16:47:36 +02:00
Dave Halter
b2b4827ce3 moved test_token to test_tokenize 2014-08-04 16:25:33 +02:00
Dave Halter
cba100a801 test for #414 which doesn't seem to be failing anymore. 2014-08-04 16:08:47 +02:00
Dave Halter
625e88e851 isinstance checks now also give you type hints in class contexts, fixes #241. 2014-08-04 02:11:30 +02:00
Dave Halter
0a0673e87c refactoring in dynamic param searching 2014-08-04 01:39:05 +02:00
Dave Halter
7bba12e8c5 comments 2014-08-03 23:00:32 +02:00
Dave Halter
6e5d80a6b2 builtins shouldn't be unique if called by compiled.create 2014-08-01 15:51:59 +02:00
Dave Halter
68cecad996 tests for py__mro__ 2014-08-01 15:50:18 +02:00
Dave Halter
2c0a46fafe Fix an issue with CallSignatures:
If used in a longer statement, it could happen that parts of the statement was still evaluated, but the call signature is only valid at the cursor.
2014-07-31 17:47:56 +02:00
Dave Halter
7b4a188948 fix a few small issues that remained in the tests 2014-07-31 17:34:35 +02:00
Dave Halter
59b8c6b015 CompiledObjects should execute everything when reading the return information from docstring (because it's always types, not values) 2014-07-31 17:16:24 +02:00
Dave Halter
332a16a27e elements in tuples/lists in docstrings were not executed. 2014-07-31 17:13:56 +02:00
Dave Halter
d09279e0ad change tests that provided wrong instance information 2014-07-31 15:16:24 +02:00
Dave Halter
50fa3a732d actually start checking if the integration tests are instances on both sides of the comparison. This wasnt necessary for just autocompletion, but it's way more important now. 2014-07-31 14:58:32 +02:00
Dave Halter
d899f69686 simplify a lot of the current InstanceElement behavior, because we know now, that there's either a Statement or a Function inside (or maybe some other parser objects like an Array. 2014-07-31 13:41:10 +02:00
Dave Halter
0fbd5efefd wrap instance element creation so that it only contains functions and statements, not CompiledObject or Instance. 2014-07-31 13:16:11 +02:00
Dave Halter
870abe73d4 Calling an InstanceElement of an Instance of CompiledObject doesn't raise an error anymore. Yes, it's really that complicated. 2014-07-30 19:49:41 +02:00
Dave Halter
0851e7667e A module shouldn't be callable. 2014-07-30 17:07:57 +02:00
Dave Halter
723d1e4631 Nicer usage of py_call within InstanceElement and Python 2.7 compatibility 2014-07-30 17:00:16 +02:00
Dave Halter
7cc35fe0b8 remove a very old function call in FunctionExecution that had no effect 2014-07-30 16:41:02 +02:00
Dave Halter
cf63d20988 get rid of the evaluate_generator param 2014-07-30 16:36:27 +02:00
Dave Halter
565cfce2fe Executable -> Executed 2014-07-30 16:00:38 +02:00
Dave Halter
7bd76022bf get rid of the whole is_callable stuff, because now we can just check for hasattr(obj, 'py__call__') 2014-07-30 15:50:47 +02:00
Dave Halter
e58dc0a3d9 simplify evaluator.execute, because now everything is using py__call__ 2014-07-30 15:40:10 +02:00
Dave Halter
373ff2c45a fix most issues related to the py__call__ stuff and generalize it. 2014-07-30 15:23:41 +02:00