Dave Halter
fd90dfc4f5
Use a LazyName for module attributes, they should only be generated if needed.
2014-08-15 15:20:40 +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
f743619fb8
Tests for conditions in descriptors.
2014-08-13 14:49:42 +02:00
Dave Halter
ec7b3bf433
refactor py_base to py__bases__, because that's the general naming schema
2014-08-13 14:34:37 +02:00
Dave Halter
cd433adf84
Speedup object lookup even further in classes.
2014-08-13 14:17:57 +02:00
Dave Halter
9702c4cdc6
Restructure the way we get self arguments (probably reduces executions of object).
2014-08-13 14:07:09 +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
242072976a
use py__mro__ in a classes scope_names_generator
2014-08-11 23:53:45 +02:00
Dave Halter
f1711f8f9c
possible direction of branch checks for name resolution.
2014-08-10 13:17:37 +02:00
Dave Halter
23c39eff9a
fix lambda issues
2014-08-06 12:40:08 +02:00
Dave Halter
e3bb0ccc2e
fix a keyword statement issue
2014-08-06 12:10:36 +02:00
Dave Halter
15ec0a77fe
a first very simple implementation of reachable/unreachable return statements.
2014-08-05 17:02:16 +02:00
Dave Halter
f5e49e3218
flow analysis preparation
2014-08-05 12:06:58 +02:00
Dave Halter
c44168f7ad
add a Flow.previous attribute to be able to access the if flow from an else clause.
2014-08-05 11:17:18 +02:00
Dave Halter
6e5d80a6b2
builtins shouldn't be unique if called by compiled.create
2014-08-01 15:51:59 +02:00
Dave Halter
d899f69686
simplify a lot of the current InstanceElement behavior, because we know now, that there's either a Statement or a Function inside (or maybe some other parser objects like an Array.
2014-07-31 13:41:10 +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
870abe73d4
Calling an InstanceElement of an Instance of CompiledObject doesn't raise an error anymore. Yes, it's really that complicated.
2014-07-30 19:49:41 +02:00
Dave Halter
723d1e4631
Nicer usage of py_call within InstanceElement and Python 2.7 compatibility
2014-07-30 17:00:16 +02:00
Dave Halter
7cc35fe0b8
remove a very old function call in FunctionExecution that had no effect
2014-07-30 16:41:02 +02:00
Dave Halter
cf63d20988
get rid of the evaluate_generator param
2014-07-30 16:36:27 +02:00
Dave Halter
565cfce2fe
Executable -> Executed
2014-07-30 16:00:38 +02:00
Dave Halter
7bd76022bf
get rid of the whole is_callable stuff, because now we can just check for hasattr(obj, 'py__call__')
2014-07-30 15:50:47 +02:00
Dave Halter
373ff2c45a
fix most issues related to the py__call__ stuff and generalize it.
2014-07-30 15:23:41 +02:00
Dave Halter
1e6a950aec
further progress in changing to py__call__
2014-07-30 14:40:56 +02:00
Dave Halter
ccd304bcb7
start switching to a more python similar approach of naming, start by naming execution stuff py__call__
2014-07-30 14:06:32 +02:00
Dave Halter
196afaacbf
always operate on class in super and not on an instance. that's the proper way.
2014-07-30 11:34:27 +02:00
Dave Halter
3c92d175da
using super() in actual executed classes wasn't possible. fixes #421
2014-07-30 11:27:27 +02:00
Dave Halter
53671bca84
replace get_super_classes with py_bases
2014-07-30 10:54:39 +02:00
Dave Halter
22e5574a91
Remove some get_defined_names methods, that are not needed anymore.
2014-07-03 12:12:50 +02:00
Dave Halter
ea370a083d
more consequent usage of scope_names_generator
2014-07-03 11:41:33 +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
8d63e6f6e7
somehow temporary solution to enable completion of __file__
2014-07-01 15:10:32 +02:00
Dave Halter
0d3ea4dfb4
fix a ModuleWrapper with StarImports. Now all modules are wrapped.
2014-06-29 21:04:52 +02:00
Dave Halter
5b7c869323
types also add to completions, also for compiled objects. removed a few lines of code that complicated the process as well.
2014-06-28 12:09:43 +02:00
Dave Halter
aba4a16ae3
fix indexing issues for multiple index options
2014-06-27 11:23:46 +02:00
Dave Halter
4238538df4
Add __getattr__ checks with proper inheritance.
2014-06-26 12:56:01 +02:00
Dave Halter
6e82fa31e1
submodules need relative imports not absolute
2014-06-25 11:08:29 +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
a373818965
fix function execution mutable list issue
2014-06-16 17:12:27 +02:00
Dave Halter
eb1f299444
function repr should only include the decorated function if it actually is one.
2014-06-16 13:06:53 +02:00
Dave Halter
e6331f8ac8
fix issues with the previous commits (broken tests)
2014-06-10 01:13:37 +02:00
Dave Halter
1899f16a4a
if there's a func listener, stop the execution of a function. This solves the issue of nested *args that were reported as having too many params in static analysis.
2014-05-29 12:15:07 +02:00
Dave Halter
08b48807e9
a (temporary) solution for the __file__ access issues in imported modules, see #408
2014-05-19 01:01:56 +02:00
Dave Halter
b6ec589997
refactor general array lookup method get_index_types
2014-05-12 15:23:48 +02:00
Dave Halter
60971245d6
star imports now have their own class, which will be important for AttributeError detection
2014-05-10 16:53:27 +02:00
Dave Halter
23b4a89d1d
slices should be ignored in __getitem__ settings (for now)
2014-04-28 18:15:25 +02:00
Dave Halter
240b0c9581
NamePart doesn't have an __eq__ method anymore
2014-04-18 14:36:10 +02:00
Dave Halter
6a40c9b671
remove get_set_vars completely from existance
2014-04-14 12:40:59 +02:00