Commit Graph
100 Commits
Author SHA1 Message Date
Dave Halter ce3ec6b534 Finally remove ArrayMethod and use an InstanceElement instead (which it basically is). 2014-09-26 12:08:04 +02:00
Dave Halter 90842ce62d Fixed global variables. 2014-09-26 11:58:11 +02:00
Dave Halter 4eaee09d6e Fix named param issues. 2014-09-26 11:52:26 +02:00
Dave Halter 47c4369d28 Fix remaining issues with sys path checks. 2014-09-25 18:28:03 +02:00
Dave Halter f4c99259b5 Fix an issue with sys.path. Also moved the names closure for isinstance checks away (used for sys.path stuff) and use a get_code check instead, which is more flexible. 2014-09-25 12:35:53 +02:00
Dave Halter c2d645b7c1 Fix one of the really hard issues: deep_ast_copy didn't copy the newly created _names_dict. 2014-09-25 12:15:15 +02:00
Dave Halter 16f244a1b2 Fix isinstance issues. 2014-09-25 00:36:53 +02:00
Dave Halter 59225ceaa3 usages issues. 2014-09-25 00:14:43 +02:00
Dave Halter 9ecf3774a0 Import issues again. 2014-09-24 21:59:08 +02:00
Dave Halter c43afae24a Issues with imports. 2014-09-24 21:12:38 +02:00
Dave Halter ff61c1d81c Fix an extremely annoying bug that made pickling impossible. 2014-09-24 20:58:29 +02:00
Dave Halter 56243e10c6 The get_code generation of imports was buggy. 2014-09-24 17:48:11 +02:00
Dave Halter db31536d78 Fix issue with descriptors. 2014-09-24 16:52:44 +02:00
Dave Halter 19b32a3657 And by changing small things about NamePart/InstanceElement usage, we're finally able to pass the class tests again. 2014-09-24 15:42:44 +02:00
Dave Halter f300e63dae A couple of changes:
- parser.representation now uses ArrayStmt and ExprStatement to be able to differentiate easily with isinstance.
- NameParts are temporarily allowed again as InstanceElements.
2014-09-24 15:21:56 +02:00
Dave Halter 0a65eea2cf Start to change the logic for self.foo variables. 2014-09-24 14:33:15 +02:00
Dave Halter 12e391c97a Add a LazyDict to be able to use it within FunctionExecution for get_names_dict 2014-09-24 12:57:26 +02:00
Dave Halter d5fbc006e2 Add a names_dict to scopes. This is good for the future parser and now useful to process self.foo and other stuff. 2014-09-24 12:44:24 +02:00
Dave Halter c61f79314b Introduce get_names_dict to statements to actually fetch the calls out of a statement.
This is going to be the new default method to do dynamic stuff as well as self.foo resolutions for instances.
2014-09-24 12:06:41 +02:00
Dave Halter 5efa467449 Few import issues. 2014-09-22 23:45:48 +02:00
Dave Halter 1d71b25109 Previously forgot to add the NameParts to used_names. (which had worked before that) 2014-09-22 23:24:29 +02:00
Dave Halter 6819deb404 Resolve some **kwargs issues. 2014-09-22 23:06:22 +02:00
Dave Halter dae1a48d70 Remove a lot of the old Name.names usages in favor of a direct NamePart usage. 2014-09-22 22:34:33 +02:00
Dave Halter 04cf742973 Temporary parser implementation. Now we're pretty much done with pr.Name. 2014-09-22 17:05:23 +02:00
Dave Halter 6bd7ef56f1 Now most tests pass and we're able to continue getting rid of parsing.representation.Name. 2014-09-22 15:41:27 +02:00
Dave Halter 8f3301f281 Passing Function tests now. 2014-09-22 14:06:38 +02:00
Dave Halter c4e45916c6 Modules also use a NamePart as a name, now. 2014-09-22 12:52:48 +02:00
Dave Halter 779618c08b First changes to eventually replace Name by NamePart. 2014-09-22 11:57:19 +02:00
Dave Halter b26f51ded2 Fix obvious UnboundLocalError. 2014-09-19 18:08:30 +02:00
Dave Halter 78bd775889 Only real modules should be added in get_modules_containing_name. 2014-09-19 18:05:57 +02:00
Dave Halter e0f84ccb86 Tests for issues with default args in dynamic param contexts. 2014-09-19 16:56:26 +02:00
Dave Halter d4503c77a5 get_parent_until should always have the same signature.
Fix it for ArrayMethod.get_parent_until.
2014-09-19 16:17:05 +02:00
Dave Halter 99d35e57b6 Fix alias usages in goto_assignments. 2014-09-19 13:42:47 +02:00
Dave Halter ed56f73836 Care for nested imports in goto_assignments. 2014-09-19 12:14:29 +02:00
Dave Halter fc5f73861c Fix issues with the os module.
Using a try/finally assures that the recursion checkers work the right way.
2014-09-19 10:59:24 +02:00
Dave Halter b2342c76be Refactoring: Make Import.get_all_import_names return NameParts. 2014-09-19 01:40:09 +02:00
Dave Halter 83d2af5138 First imports are working with goto. 2014-09-19 01:21:17 +02:00
Dave Halter 610b2fc832 tests for goto on imports. 2014-09-19 00:49:22 +02:00
Dave Halter 7b0bb83d16 Change the behavior of eval_statement_element and follow_call_path. Arrays should only be looked at in the latter. 2014-09-18 23:44:11 +02:00
Dave Halter 69e6139527 Goto on named params in class calls is now working. 2014-09-18 20:11:58 +02:00
Dave Halter ba80e35204 Test for an issue with named params in class calls (instead of functions). 2014-09-18 13:30:52 +02:00
Dave Halter 9fa6a86a19 Tests for Definition.is_definition(). 2014-09-17 18:17:22 +02:00
Dave Halter 9983898162 Temporarily disable a test for goto on nested imports. The positions are currently wrong. But this is a known issue. 2014-09-11 02:27:53 +02:00
Dave Halter 085c8034b3 Apply evaluate.representation wrappers already before they go out into the goto world. 2014-09-11 02:20:54 +02:00
Dave Halter 1624fa0872 Replace BaseDefinition._name.get_definition() calls with BaseDefinition._definition. 2014-09-11 01:36:21 +02:00
Dave Halter 71efb51f2a Remove BaseDefinition._start_pos. 2014-09-11 01:21:08 +02:00
Dave Halter 283afa78f1 Remove code that is not needed anymore, because the Definition/Completion import is now standardized (to NamePart). 2014-09-11 01:15:00 +02:00
Dave Halter 9f16555f47 Big refactoring: BaseDefinition._definnition changes to BaseDefinition._name, because it's a NamePart now.
This also includes changes to tests and some simplifications like deleting the old name logic of Definition.
2014-09-11 01:03:30 +02:00
Dave Halter 58526e2302 Completion now also uses only NameParts as its _definition attribute. 2014-09-10 20:12:19 +02:00
Dave Halter 8f892e3922 Use FakeName instead of a custom KeywordName. 2014-09-10 20:07:13 +02:00
Dave Halter 1fb9b4bc6b Completion now always takes a NamePart as input. 2014-09-10 18:59:08 +02:00
Dave Halter 0eea30f227 NamePart migration of Definition is complete. Now Completion. 2014-09-10 18:29:10 +02:00
Dave Halter 2aa538999e Removed an old test from the days where it was allowed to add Keywords to Definitions. 2014-09-10 18:05:04 +02:00
Dave Halter 46b49af5d9 Even params should be NameParts as a Definition input. 2014-09-10 17:41:06 +02:00
Dave Halter 5e28d69437 Fix remaining usage issues. 2014-09-10 17:15:58 +02:00
Dave Halter 4060c4dc55 Fix some goto issues. 2014-09-10 16:39:09 +02:00
Dave Halter a93a389d5c Fix all the normal issues with the NameFinder change. Now goto... 2014-09-10 16:30:22 +02:00
Dave Halter 657a2c7d4f Trying to get the NameFinder to use only NameParts. 2014-09-10 16:20:30 +02:00
Dave Halter 43cf1d451f Python 2/3 compatibility issues that were not resolved in the latest commit. 2014-09-09 17:51:39 +02:00
Dave Halter fdc637c5c4 Add a forgotten test module, test_sys_path.py and fix Python2/3 compatibility issues. 2014-09-09 17:08:22 +02:00
Dave Halter 38f7296f39 Typo. 2014-09-09 16:51:46 +02:00
Dave Halter 87aa76678a Goto should work on named params, too. 2014-09-09 16:48:53 +02:00
Dave Halter 110f130741 Make it possible to get previous statements of Calls. 2014-09-09 16:44:56 +02:00
Dave Halter b68a59daef Fix the last remaining issues of the first part of the NamePart switch. 2014-09-09 15:58:20 +02:00
Dave Halter 45e033c50e Quite a few fixes to be eventually able to use NameParts as Definition inputs. 2014-09-09 15:21:27 +02:00
Dave Halter 1199defabb Start to use NameParts only in Definition contexts. 2014-09-09 14:13:10 +02:00
Dave Halter ff7680c15f Generate the expression_list of a statement in any case.
This is a consequence of being able to have Calls as parents of Names. Otherwise we would have changing Name.parent values.
2014-09-09 12:54:46 +02:00
Dave Halter 740fd0657f Add a goto_assignments test for named params 2014-09-09 00:06:24 +02:00
Dave Halter 0dcb91d236 Add a Definition.is_definition function to be able to check if a name is a definition or not. 2014-09-08 23:44:35 +02:00
Dave Halter 851717a968 Publicize jedi.names and add a first test. 2014-09-08 22:39:47 +02:00
Dave Halter be85391321 Create a 'jedi.names' function with the proper docstring.
Modelled according the discussion in #477.
2014-09-08 21:43:16 +02:00
Dave Halter ca536baf9b Last fixes, because of the Name.get_definition change. The recent parser.representation changes are now fully working and we're ready to improve Evaluator.goto again. 2014-09-06 13:23:00 +02:00
Dave Halter ece9fdf4ae Fixing most of the issues that existed, because of the recent Name.get_definition/Call.name.parent change. 2014-09-06 13:02:52 +02:00
Dave Halter 2e7e2f0a29 Name parents are now Calls (once their statements have generated the Calls).
This makes the goto function more powerful. Also fixes an issue with the deep_ast_copy, that I tried to fix previously, but failed, because I hadn't tested it.
2014-09-06 12:19:07 +02:00
Dave Halter 5a3ee02399 Use ExprStmt pretty much everywhere where it should be used.
ExprStmt is now really a normal statement. All the other statements are from now on considered legacy code. As a side effect this increases the parser pickling version.
2014-09-06 11:13:58 +02:00
Dave Halter cb84bc0829 Start using ExprStmt. 2014-09-06 10:46:59 +02:00
Dave Halter f57d9ef675 Rename Name.get_parent_stmt to Name.get_definition, because it's not always a statement. Also start using it in the NameFinder. 2014-09-06 10:43:26 +02:00
Dave Halter 99116cdcb7 Add a Name.get_parent_stmt() function. 2014-09-05 22:26:55 +02:00
Dave Halter 6c07c7acfe Create an ExprStatement class to replace the Statement class in the future and separate array parts of actual statements 2014-09-05 22:21:26 +02:00
Dave Halter 12154fdecf Refactor a few name finder things. 2014-09-05 12:12:29 +02:00
Dave Halter ba805879b4 Updated helpers.deep_ast_copy. Now the function copies statements in a better way.
Previously statement attributes where scanned like every other objects. Now two statements get priority: _assignment_details and _expression_list. This is necessary if we want to switch towards proper name parents (A Call would be the parent of a name, not a Statement)
2014-09-05 11:49:45 +02:00
Dave Halter 42d6b57599 precedence._is_string -> precedence.is_string 2014-09-04 14:13:26 +02:00
Dave Halter 7b2e11d71b Rewrote sys_path._paths_from_assignment. 2014-09-04 14:12:10 +02:00
Dave Halter 4180005893 Forgot to add the the params in the case of a class in the previous commit. 2014-09-04 12:53:42 +02:00
Dave Halter 06699993f1 Class inheritance definitions shouldn't be params. It's just statements. 2014-09-04 12:28:50 +02:00
Dave Halter 1df025c39d Definitions should not be followed in Evaluator.goto. 2014-09-04 11:55:42 +02:00
Dave Halter e872d9e073 Script.goto_assignments now always needs a call_path. Otherwise it raises a NotFoundError.
This change makes Jedi's behavior more consistent.
2014-09-04 00:56:58 +02:00
Dave Halter fb10199f37 Remove search_name and search_name_part from goto returns.
The search_name can be retrieved by checking definitions for it. Definitions should always be names or even better name_parts in case of goto. Therefore we can just get it there.
2014-09-03 23:28:19 +02:00
Dave Halter f7a1c110ba Fix remaining issues with CompiledName.name change. 2014-09-03 19:47:37 +02:00
Dave Halter bb5ffe9343 CompiledObject.name returns a Name now, not a string. This is more consistent with the Jedi design and doesn't lead to bugs while ducktyping. 2014-09-03 19:43:21 +02:00
Dave Halter 18204c4c19 By trying to get rid of search_name in usages, we had to fix an issue with imports:
If used like 'follow(is_goto)', it could return a ModuleWrapper instead of a Name, which is what we actually want.
2014-09-03 19:30:00 +02:00
Dave Halter 59578966cf Remove code that is not used anymore from Script._goto 2014-09-03 18:02:20 +02:00
Dave Halter e2ca11435c Script._goto improvements and documentation. 2014-09-03 17:27:26 +02:00
Dave Halter 95852f5e7f Clarify inner workings of Evaluator.goto 2014-09-03 14:58:24 +02:00
Dave Halter bcc84820fe Fix issues with unreachable flows.
This benefits static analysis as well as autocompletion: Unreachable code (things like code within 'if 0:') should still be resolveable.
2014-09-03 00:05:37 +02:00
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