Commit Graph
100 Commits
Author SHA1 Message Date
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
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