Dave Halter
1c9060ebc5
Remove evaluator as param from apply_decorators.
2017-09-28 09:18:12 +02:00
Dave Halter
d9d3aeb5bc
Move more functions to the syntax tree module.
2017-09-28 09:16:43 +02:00
Dave Halter
0782a80cef
Move all the search to py__getattribute__ and remove find_types.
2017-09-27 19:22:50 +02:00
Dave Halter
9073f0debc
Use the typical ordering of arguments for ClassContext.
2017-09-27 19:16:05 +02:00
Dave Halter
a7a66024d4
Make a lot more functions private.
2017-09-27 19:13:19 +02:00
Dave Halter
ed43a68c03
Remove the precedence module in favor of the syntax tree module.
2017-09-27 19:09:30 +02:00
Dave Halter
d0939f0449
Move eval_or_test away from precedence module.
2017-09-27 18:51:53 +02:00
Dave Halter
08a48672bc
A minor rename.
2017-09-27 18:15:12 +02:00
Dave Halter
d584b698b7
Move eval_element and eval_stmt to the syntax tree module.
2017-09-27 18:14:04 +02:00
Dave Halter
b997b538a7
Move eval_atom to the syntax tree module.
2017-09-27 16:27:37 +02:00
Dave Halter
5415a6164f
Starting to try to move some functions away from Evaluator.
...
This time eval_trailer.
2017-09-27 16:21:02 +02:00
Dave Halter
313e1b3875
Use a different way of executing functions.
2017-09-27 16:07:24 +02:00
Dave Halter
025951089a
Some conversions of eval_element -> eval_node.
2017-09-27 15:17:11 +02:00
Dave Halter
b1ed0c7d22
Add py__class__ to ContextSet.
2017-09-27 14:09:09 +02:00
Dave Halter
b74c8cb033
To be able to customize ContextSet, move a subclass to evaluate.context
2017-09-27 09:20:58 +02:00
Dave Halter
faa2d01593
The memoize decorator doesn't need to magically cache generators as lists.
...
This makes no sense at all. Explicit is better than implicit.
2017-09-26 18:36:10 +02:00
Dave Halter
a0a438fe6f
Forgot an iterator in context sets.
2017-09-26 18:32:42 +02:00
Dave Halter
e4090910f6
Remove the ParamListener, it was not used anymore.
2017-09-26 18:24:42 +02:00
Dave Halter
00f2f9a90c
Fix the final issues with the ContextSet refactoring.
2017-09-26 18:17:19 +02:00
Dave Halter
ee52cc7501
Fix most dynamic array issues.
2017-09-26 17:26:33 +02:00
Dave Halter
592f2dac95
A lot more fixes for tests.
2017-09-26 16:29:07 +02:00
Dave Halter
174eff5875
Replace a lot more of empty sets and unite calls.
2017-09-25 23:08:59 +02:00
Dave Halter
921d1008f2
First tests are now passing.
2017-09-25 11:10:09 +02:00
Dave Halter
5328d1e700
Add a ContextSet.
...
This is not bug free yet, but it's going to be a good abstraction for a lot of small things.
2017-09-25 11:04:09 +02:00
Dave Halter
a433ee7a7e
Move common to evaluate.utils.
2017-09-20 20:33:01 +02:00
Dave Halter
0c01a3b823
The sys.modules implementation did not work properly with newly created files.
...
Fixes #886 .
2017-09-20 10:06:02 +02:00
Dave Halter
03584ff3f3
Imports can be executed twice without this.
2017-09-19 18:17:07 +02:00
Dave Halter
260aef943a
Increase Python's recursion limit
...
Currently there is still the possiblity that Jedi fails with a recursion error,
because the stack is too small. (see #861 ) By increasing it we improve the
situation.
Probably we should just be switching away from this extreme amount of recursion
and move to queueing which would also allow to use other algorithms such as
breadth-first-search.
2017-09-18 10:26:42 +02:00
Dave Halter
c7dbf95344
Fix recursion issues.
...
Completely refactored the recursion checker and changed some settings.
Fixes #861 .
2017-09-17 21:54:09 +02:00
Dave Halter
0516a8bd35
Get rid of the settings module in recursions.
2017-09-17 14:18:56 +02:00
Dave Halter
2eb715dae8
Mention in the changelog that the recursion settings have been moved.
2017-09-17 14:10:26 +02:00
Dave Halter
f4ba71f6a3
Move the recursion limit settings to the recursion module.
2017-09-17 14:08:39 +02:00
Dave Halter
f2d24f0259
Remove inspecting the stack in the debugger.
...
This feature wasn't used anymore and it made debugging a slower by a factor of 10-10000.
2017-09-17 03:03:12 +02:00
Dave Halter
c51634b8d4
dict_values should be accessible for CompiledObjects.
2017-09-17 02:48:09 +02:00
Dave Halter
96ad254fcc
Typo.
2017-09-17 02:15:49 +02:00
Dave Halter
4b4b2c2122
Fix a small issue surrounding old school classes in Python 2.
2017-09-17 02:09:39 +02:00
Dave Halter
8fcb468539
Jedi was able to go crazy and loop endlessly in certain if/self assignment combinations.
...
Here we limit type inferance per tree scope. I'm still not sure this is the way
to go, but it looks okay for now and we can still go anther way in the future.
Tests are there.
Fixes #929 .
2017-09-17 02:04:42 +02:00
Dave Halter
9dd2027299
Way better support for instantiated classes in REPL
...
Fixes several issues:
- It was not possible to correctly trace where instances were coming from in a
REPL. This led to them being pretty much ignored.
- Instances were then just treated as classes and not as actual instances in
MixedObjects. (However since they were ignored in the first place this
wasn't really an issue).
- Avoiding the repr bug https://github.com/python/cpython/pull/2132/files in
Jedi is working a bit differently. We're just never accessing Objects
directly. This should work around 99.99% of the cases were people are using
this stuff.
Fixes #872
2017-09-15 01:55:18 +02:00
Dave Halter
63edbdcc5b
Better context completions for finally/except/else/elif
...
Fixes #837
2017-09-15 00:48:56 +02:00
Dave Halter
e389c61377
Relative imports with more than one level did not work
...
Fixes #784 .
2017-09-14 22:06:08 +02:00
Dave Halter
ab84030ad2
full_name was buggy when used on import error names
...
Fixes #873 .
2017-09-14 20:41:25 +02:00
Dave Halter
2210b11778
Fix some issues with import completion
...
Fixes #759
2017-09-14 20:09:13 +02:00
Dave Halter
4c2d1ea7e7
Understand context managers correctly
...
Fixes #812 .
2017-09-13 11:00:34 +02:00
Dave Halter
5ff7e3dbbe
Actually do goto when follow_imports is used
...
Fixes #945 .
2017-09-13 00:28:49 +02:00
Dave Halter
5a8b9541a7
Add operator.itemgetter support for Python <= 3.3.
...
Also fixes namedtuple support for these versions.
2017-09-12 23:18:32 +02:00
Dave Halter
a8a15114ac
Fix namedtuple support
...
There were a couple issues:
- namedtuple with one member didn't work
- namedtuple content access was never possible
- operator.itemgetter didn't work properly. Corrected py__bool__ for FakeSequence
Fixes #730 .
2017-09-12 11:06:39 +02:00
Dave Halter
4a544c29ea
Fix a follow_imports (goto) issue.
2017-09-11 23:32:10 +02:00
Dave Halter
619acbd2ca
Goto didn't work well on imports in __init__.py files.
...
Fixes #956 .
2017-09-11 21:48:37 +02:00
Dave Halter
c05f1d3ccc
Completion after as in imports should not be possible.
...
Fixes #841 .
2017-09-10 11:27:57 +02:00
Dave Halter
c25a4a00df
readlines should be completable.
...
Fixes #921 .
2017-09-10 01:54:50 +02:00