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
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
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
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
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
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
085c8034b3
Apply evaluate.representation wrappers already before they go out into the goto world.
2014-09-11 02:20:54 +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
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
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
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
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
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
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
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
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
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