Commit Graph
100 Commits
Author SHA1 Message Date
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
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
Dave Halter 1e6a950aec further progress in changing to py__call__ 2014-07-30 14:40:56 +02:00
Dave Halter ccd304bcb7 start switching to a more python similar approach of naming, start by naming execution stuff py__call__ 2014-07-30 14:06:32 +02:00
Dave Halter 196afaacbf always operate on class in super and not on an instance. that's the proper way. 2014-07-30 11:34:27 +02:00
Dave Halter e81749bbe1 Merge branch 'dev' of github.com:davidhalter/jedi into dev 2014-07-30 11:27:46 +02:00
Dave Halter 3c92d175da using super() in actual executed classes wasn't possible. fixes #421 2014-07-30 11:27:27 +02:00
Dave Halter 53671bca84 replace get_super_classes with py_bases 2014-07-30 10:54:39 +02:00
Dave Halter a6855029d2 added a few EuroPython sprint guys to AUTHORS.txt 2014-07-30 09:15:17 +02:00
Dave Halter ddd4e92e84 temporary SuperInstance class to eventually handle super. But need something like mro() resolution first. 2014-07-29 23:57:29 +02:00
Dave Halter cfe54e83ff incomplete functions shouldn't cause any trouble. fixes #429. 2014-07-28 17:42:20 +02:00
Dave Halter a86cfa2dd7 Merge pull request #453 from alga/dev
Europython2014 davidhalter/jedi#361attempt
2014-07-27 20:58:03 +04:30
Dave Halter 440b9b072e Merge pull request #441 from davidhalter/dynamic_inheritance
Dynamic superclasses
2014-07-27 18:26:48 +04:30
Dave Halter 4e04770a75 Merge pull request #451 from davidhalter/issue436
Issue 436: Operator statement wrapper was missing
2014-07-27 18:22:43 +04:30
Dave Halter 6d99e639cd Merge branch 'add-numpydoc-support' of git://github.com/immerrr/jedi into dev 2014-07-27 11:23:39 +02:00
Dave Halter e2cdbf61de Merge remote-tracking branch 'origin/travis_py34' into dev 2014-07-27 09:52:54 +02:00
Dave Halter 9028641ca7 Merge remote-tracking branch 'origin/namedtuple' into dev 2014-07-27 09:51:50 +02:00
Dave Halter 97a204a985 Merge branch 'dev' of github.com:davidhalter/jedi into dev 2014-07-27 09:44:25 +02:00
Dave Halter 606b6851ff remove the scope_names_generator stuff again. We should enable it somewhere in time, but for now it just breaks tests. 2014-07-27 09:43:22 +02:00
Dave Halter cd648e933b Merge pull request #448 from ppalucki/master
Sphinx oneline param type declaration feature
2014-07-27 12:05:32 +04:30
Dave Halter c85bdb8ff1 little edge case of modules that don't have a scope_names_generator, which is unfortunately missing, but not really used in Jedi.
At europython's hackathon we played with it and @scoder added a small script to cython/Cython/Compiler/JediTyper.py, which makes it possible to add Cython types to a Python script.
2014-07-26 13:18:04 +02:00
Dave Halter 4f1d39d3df set changelog date for v0.8.1 correct 2014-07-25 00:45:39 +02:00
Dave Halter 293fa5a14f Merge pull request #437 from blueyed/doc-changelog-minor
Minor fixes to the changelog
2014-07-25 03:14:06 +04:30
Dave Halter a01e4c6b37 Merge remote-tracking branch 'origin/master' into dev 2014-07-23 00:47:30 +02:00
Dave Halter 5e9d9573d5 Don't warn on addition of an int literal plus an unknown int number. 2014-07-22 16:44:10 +02:00
Dave Halter f7c8c43fbc check not only - but also + for numbers. 2014-07-22 16:18:57 +02:00
Dave Halter 96ca596cc2 fix the operation test where static analysis reports additions of ints with non-ints. 2014-07-22 16:05:46 +02:00
Dave Halter 852cdad754 Operator fixes. Subclass of Simple, now. 2014-07-22 16:02:34 +02:00
Dave Halter 15f42d93d7 it should be possible to find the origin of an operation, if it's a faulty one (static analysis) 2014-07-22 14:52:58 +02:00
Dave Halter 50ceef6e09 1 + '1' TypeErrors are now detected, but not shown in the right place 2014-07-22 10:44:56 +02:00
Dave Halter 52bbedd4a8 renamed company-jedi to anaconda-mode, cc @proofit404 2014-07-22 10:33:49 +02:00
Dave Halter 037d5fa02a static analysis tests for the 1 + '1' test 2014-07-22 01:40:36 +02:00
Dave Halter d350c1fa30 Merge branch 'linter' of github.com:davidhalter/jedi into linter 2014-07-21 17:40:25 +02:00
Dave Halter b0d5d96b20 Merge pull request #435 from hattya/windows
fixes for Windows
2014-07-21 16:38:53 +02:00
Dave Halter ec690b9ec5 change the default linter command from 'force' to 'linter' 2014-07-21 16:15:42 +02:00
Dave Halter 2616143d10 unicode issues with docstrings should be gone, fixes #420 2014-07-18 17:43:25 +02:00
Dave Halter e07f51387f added a test for hex value issues in docstrings, see #427 2014-07-18 17:09:44 +02:00
Dave Halter ee1c5041ed use the new implementation of splitlines all over the code, fixes #424 2014-07-18 16:59:22 +02:00
Dave Halter ffaacbefbc new splitlines implementation to get rid of the ugly splitlines we now have as well as (partially) the issue with form feeds 2014-07-18 16:52:55 +02:00
Dave Halter 0f665bf436 test for #424, issues with form feeds 2014-07-18 16:52:25 +02:00
Dave Halter 81f3b940e8 dicts should not be used to check against in get_defined_names, because they cannot contain a defined name (lists and tuples can) so just ignore them., fixes #417 2014-07-18 15:37:10 +02:00