Dave Halter
5b29e2c54d
Add a method 'Name.assignment_indexes', to process tuple assignments.
2014-10-21 15:45:29 +02:00
Dave Halter
c821b30017
Fix a first test: complex.py
2014-10-20 17:06:18 +02:00
Dave Halter
74d4fcf4e7
globals are more or less ready.
2014-10-17 18:48:07 +02:00
Dave Halter
660124aca1
Get an example running: 'import json; json.dump'.
2014-10-12 22:37:23 +02:00
Dave Halter
03e01631cc
Remove NamePart from existance and rename it to Name.
2014-09-26 16:29:53 +02:00
Dave Halter
522c9eda90
Remove pr.Name completely.
2014-09-26 16:18:10 +02:00
Dave Halter
4d7db35340
Fix a few last tests, now Jedi's working again, tests are passing.
2014-09-26 16:02: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
16f244a1b2
Fix isinstance issues.
2014-09-25 00:36:53 +02:00
Dave Halter
db31536d78
Fix issue with descriptors.
2014-09-24 16:52:44 +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
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
085c8034b3
Apply evaluate.representation wrappers already before they go out into the goto world.
2014-09-11 02:20:54 +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
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
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
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
442a1a1d08
wrap some more values with er.wrap
2014-08-20 13:52:49 +02:00
Dave Halter
2e949b43bb
Ignore FunctionExecutions in old style isinstance checks for now, because it collides with new style isinstance checks.
2014-08-20 11:31:11 +02:00
Dave Halter
8006d6f190
Change implementation of StatementElement.
...
Instead of having both next and execution as attributes, we now only have next, because it's an execution if there's an array.
2014-08-18 22:25:55 +02:00
Dave Halter
9f38f10366
fix tests. Operators should not equal to other operators with a different position. or even parent.
2014-08-18 13:13:07 +02:00
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
1540ac89f8
Implement the descriptor protocoll properly for instances.
2014-08-14 12:15:48 +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
fb1dba269a
re-enable the interpretation of the None keyword
2014-08-12 14:38:56 +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
f1711f8f9c
possible direction of branch checks for name resolution.
2014-08-10 13:17:37 +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
7bba12e8c5
comments
2014-08-03 23:00:32 +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
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
1fd7acef7a
finally able to remove _get_defined_names_for_position
2014-07-03 11:53:51 +02:00
Dave Halter
c1ed3bf38a
cleanup NameFinder.scopes, fully use scope_names_generator.
2014-07-03 11:48:26 +02:00
Dave Halter
ea370a083d
more consequent usage of scope_names_generator
2014-07-03 11:41:33 +02:00
Dave Halter
a7e4d81692
also add scope_names_generator to the iterable module classes, as well as cleaning up some old scope_names_generator stuff
2014-07-02 18:58:31 +02:00
Dave Halter
13ada3154b
replace get_defined_names with scope_names_generator in a lot of places (the cleanup still needs to be done, though).
2014-07-02 16:12:49 +02:00
Dave Halter
8d395a2ef1
scope_names_generator now works with modules perfectly well.
2014-07-02 12:41:16 +02:00
Dave Halter
3865c1a844
Fixed __file__ issues by always applying a ModuleWrapper in the global scope lookup.
2014-07-01 15:35:21 +02:00
Dave Halter
0b99473886
ExecutedParams should never be additionally faked, even if they are the first params. They have been legitimately created by a caller.
2014-06-30 15:22:53 +02:00
Dave Halter
1c9058ce6b
Also issue warnings if setattr is used in a class instead of an error
2014-06-26 13:40:15 +02:00
Dave Halter
a936cea987
jedi issues now warnings instead of errors for AttributeErrors that happen in instances with __getattr__/__getattribute__ methods
2014-06-26 12:21:19 +02:00
Dave Halter
7e0edc4776
preparation for warnings in static analysis
2014-06-26 11:57:44 +02:00
Dave Halter
44238a9f92
submodules are automatically indexed without actually importing them. fixes #413 .
...
However, this is not a 100% correct Python behavior. Python behavior would be to follow ALL imports in all modules (recursively) and check if the module was imported. However, that's a lot of work, that would slow down autocompletion. For now it's better to have no false positives in flaking and to ignore a few attribute errors.
2014-06-25 01:39:43 +02:00
Dave Halter
034a818863
repr improvements
2014-06-24 13:42:40 +02:00
Dave Halter
e106e4ffc8
fixed for loop in exception issue combined with usage of an exception variable
2014-06-22 23:32:07 +02:00