1
0
forked from VimPlug/jedi
Commit Graph

166 Commits

Author SHA1 Message Date
Dave Halter 9abc8a19e7 By adding a py__class__ method to CompiledObject and Class, we Jedi is able to understand isinstance checks, now.
This also includes a CheckAttribute class in evaluatue.compiled, because it's way easier to generalize the AttributeErrors there.
2014-08-20 14:46:18 +02:00
Dave Halter 442a1a1d08 wrap some more values with er.wrap 2014-08-20 13:52:49 +02:00
Dave Halter c9542cbc04 Start implementing an is_class function that will determine if an object is a class or not in the future. 2014-08-20 11:43:25 +02:00
Dave Halter 7f874620db Start documenting all the py__foo__ methods 2014-08-20 11:31:23 +02:00
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