Commit Graph

  • 87aa76678a Goto should work on named params, too. Dave Halter 2014-09-09 16:48:53 +02:00
  • 110f130741 Make it possible to get previous statements of Calls. Dave Halter 2014-09-09 16:44:56 +02:00
  • b68a59daef Fix the last remaining issues of the first part of the NamePart switch. Dave Halter 2014-09-09 15:58:20 +02:00
  • 45e033c50e Quite a few fixes to be eventually able to use NameParts as Definition inputs. Dave Halter 2014-09-09 15:21:27 +02:00
  • 1199defabb Start to use NameParts only in Definition contexts. Dave Halter 2014-09-09 14:13:01 +02:00
  • ff7680c15f Generate the expression_list of a statement in any case. Dave Halter 2014-09-09 12:54:46 +02:00
  • 740fd0657f Add a goto_assignments test for named params Dave Halter 2014-09-09 00:06:24 +02:00
  • 0dcb91d236 Add a Definition.is_definition function to be able to check if a name is a definition or not. Dave Halter 2014-09-08 23:44:35 +02:00
  • 851717a968 Publicize jedi.names and add a first test. Dave Halter 2014-09-08 22:39:47 +02:00
  • be85391321 Create a 'jedi.names' function with the proper docstring. Dave Halter 2014-09-08 21:43:16 +02:00
  • 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. Dave Halter 2014-09-06 13:23:00 +02:00
  • ece9fdf4ae Fixing most of the issues that existed, because of the recent Name.get_definition/Call.name.parent change. Dave Halter 2014-09-06 13:02:52 +02:00
  • 2e7e2f0a29 Name parents are now Calls (once their statements have generated the Calls). Dave Halter 2014-09-06 12:18:40 +02:00
  • 5a3ee02399 Use ExprStmt pretty much everywhere where it should be used. Dave Halter 2014-09-06 11:04:49 +02:00
  • cb84bc0829 Start using ExprStmt. Dave Halter 2014-09-06 10:46:59 +02:00
  • f57d9ef675 Rename Name.get_parent_stmt to Name.get_definition, because it's not always a statement. Also start using it in the NameFinder. Dave Halter 2014-09-06 10:43:26 +02:00
  • 99116cdcb7 Add a Name.get_parent_stmt() function. Dave Halter 2014-09-05 22:26:55 +02:00
  • 6c07c7acfe Create an ExprStatement class to replace the Statement class in the future and separate array parts of actual statements Dave Halter 2014-09-05 22:21:26 +02:00
  • 12154fdecf Refactor a few name finder things. Dave Halter 2014-09-05 12:12:29 +02:00
  • ba805879b4 Updated helpers.deep_ast_copy. Now the function copies statements in a better way. Dave Halter 2014-09-05 11:49:45 +02:00
  • 42d6b57599 precedence._is_string -> precedence.is_string Dave Halter 2014-09-04 14:13:26 +02:00
  • 7b2e11d71b Rewrote sys_path._paths_from_assignment. Dave Halter 2014-09-04 14:12:10 +02:00
  • 4180005893 Forgot to add the the params in the case of a class in the previous commit. Dave Halter 2014-09-04 12:53:34 +02:00
  • 06699993f1 Class inheritance definitions shouldn't be params. It's just statements. Dave Halter 2014-09-04 12:28:50 +02:00
  • 1df025c39d Definitions should not be followed in Evaluator.goto. Dave Halter 2014-09-04 11:55:42 +02:00
  • e872d9e073 Script.goto_assignments now always needs a call_path. Otherwise it raises a NotFoundError. Dave Halter 2014-09-04 00:56:58 +02:00
  • fb10199f37 Remove search_name and search_name_part from goto returns. Dave Halter 2014-09-03 23:28:19 +02:00
  • f7a1c110ba Fix remaining issues with CompiledName.name change. Dave Halter 2014-09-03 19:47:37 +02:00
  • 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. Dave Halter 2014-09-03 19:43:21 +02:00
  • 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. Dave Halter 2014-09-03 19:30:00 +02:00
  • 59578966cf Remove code that is not used anymore from Script._goto Dave Halter 2014-09-03 18:02:20 +02:00
  • e2ca11435c Script._goto improvements and documentation. Dave Halter 2014-09-03 17:27:26 +02:00
  • 95852f5e7f Clarify inner workings of Evaluator.goto Dave Halter 2014-09-03 14:58:24 +02:00
  • bcc84820fe Fix issues with unreachable flows. Dave Halter 2014-09-03 00:05:37 +02:00
  • ea5b98905e Make statement_elements_in_statement work with ListComprehensions, Lambdas and 'except foo as' expressions Dave Halter 2014-09-02 14:52:04 +02:00
  • 38c71fce3f Added tests for statement_elements_in_statement Dave Halter 2014-09-02 12:10:16 +02:00
  • f785aa26dd Additional helper methods, to find all the statement elements that are needed. Dave Halter 2014-09-02 03:26:17 +02:00
  • be9e77d7d3 Add a temporary api._names, to make it possible to annotate a full script with types. Dave Halter 2014-09-01 18:10:40 +02:00
  • bbf1070ad9 Add a helper function to list all name parts of a given module. Dave Halter 2014-09-01 13:20:01 +02:00
  • 6b88da4d2d Merge pull request #467 from phillipberndt/master Dave Halter 2014-08-23 16:05:12 +04:30
  • 76d91ba72a Rename fast_parent_copy to deep_ast_copy. Dave Halter 2014-08-22 00:59:46 +02:00
  • ed3b507ab7 cleanup Dave Halter 2014-08-22 00:46:24 +02:00
  • 6ba0b7b81e lower than/greater than operators evaluate to a boolean now. This is not a 100% correct, because it doesn't evaluate __gt__, etc. But that's ok for now. Dave Halter 2014-08-22 00:26:55 +02:00
  • 039a5ecaf9 Fix issues caused by KeywordStatement, which needs to be copied as well. Dave Halter 2014-08-21 16:51:00 +02:00
  • 0ef030848d refactor fast_parent_copy, use new_elements_default to hand in a dictionary, that contains all the generated duplicates. Dave Halter 2014-08-21 13:17:33 +02:00
  • 3cf8bfa8e1 Fix a few tests by either fixing the test cases or adding py__bool__ functions to objects that should have such a method. Dave Halter 2014-08-20 17:28:54 +02:00
  • f911050300 Rewrote the isistance implementation, so that it works properly with tuples as well as normal classes. Dave Halter 2014-08-20 16:58:19 +02:00
  • 2a964d4e48 Also implement the or operator. Dave Halter 2014-08-20 16:28:04 +02:00
  • 148d17b3be Implementation of the and operation. Dave Halter 2014-08-20 16:21:33 +02:00
  • d6dd7cd55e Move process_precedence_element from the Evaluator to the precedence module. Dave Halter 2014-08-20 15:59:37 +02:00
  • 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. Dave Halter 2014-08-20 14:46:18 +02:00
  • 0e66aef511 Use IterableWrapper in the iterable module to be able to add methods like is_class quickly. Dave Halter 2014-08-20 14:01:41 +02:00
  • 442a1a1d08 wrap some more values with er.wrap Dave Halter 2014-08-20 13:52:49 +02:00
  • c9542cbc04 Start implementing an is_class function that will determine if an object is a class or not in the future. Dave Halter 2014-08-20 11:43:25 +02:00
  • 7f874620db Start documenting all the py__foo__ methods Dave Halter 2014-08-20 11:31:23 +02:00
  • 2e949b43bb Ignore FunctionExecutions in old style isinstance checks for now, because it collides with new style isinstance checks. Dave Halter 2014-08-20 11:31:11 +02:00
  • 09ca47fa93 Introduce a dedicated isinstance function implementation. Dave Halter 2014-08-19 23:57:59 +02:00
  • 3189ba7662 Add type check to jedi.Interpreter() namespace argument and remove default value Phillip Berndt 2014-08-18 17:22:11 +02:00
  • 49163e135c flow_analysis test for isinstance as well as and/or operations. Dave Halter 2014-08-19 01:03:14 +02:00
  • 77673ba986 Add an optional param 'parent' to parser.representation.Simple, which simplifies some calls to that superclass. Dave Halter 2014-08-19 00:30:17 +02:00
  • 8bde89cc58 Fix the remaining issues with the StatementElement.next refactoring. Dave Halter 2014-08-19 00:12:14 +02:00
  • 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. Dave Halter 2014-08-18 22:25:55 +02:00
  • 7619bf27d1 Simplify goto_definition in case it done on a function. Dave Halter 2014-08-18 15:00:14 +02:00
  • 00d15da143 refactor search_call_signatures. Now we don't need to set Call.next.parent in a strange way anymore and the whole thing seems to be more logical. Dave Halter 2014-08-18 14:51:38 +02:00
  • 542648f5a0 first step in refactoring call_signature_array_for_pos, use original_call as a param. Dave Halter 2014-08-18 13:39:01 +02:00
  • 9f38f10366 fix tests. Operators should not equal to other operators with a different position. or even parent. Dave Halter 2014-08-18 13:12:39 +02:00
  • 1d812c2414 Use the "wrong" parents again for next/execution in StatementElement. This is important for call_signature lookups. We might still be able to change this somewhere in time. Dave Halter 2014-08-18 11:22:38 +02:00
  • fd90dfc4f5 Use a LazyName for module attributes, they should only be generated if needed. Dave Halter 2014-08-15 15:20:40 +02:00
  • 868dab4f51 small debug change Dave Halter 2014-08-15 02:26:13 +02:00
  • 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. Dave Halter 2014-08-15 01:55:43 +02:00
  • 1965469050 fast_parent_copy should also change the parent of NameParts. Dave Halter 2014-08-14 23:47:22 +02:00
  • 1f9e7ddff8 Remove code in the parser that didn't make sense. Dave Halter 2014-08-14 13:24:26 +02:00
  • 425290aa8f Fix an issue with partial keyword inputs. Dave Halter 2014-08-14 12:24:54 +02:00
  • 1540ac89f8 Implement the descriptor protocoll properly for instances. Dave Halter 2014-08-14 12:15:48 +02:00
  • f743619fb8 Tests for conditions in descriptors. Dave Halter 2014-08-13 14:49:42 +02:00
  • ec7b3bf433 refactor py_base to py__bases__, because that's the general naming schema Dave Halter 2014-08-13 14:34:37 +02:00
  • cd433adf84 Speedup object lookup even further in classes. Dave Halter 2014-08-13 14:17:57 +02:00
  • 9702c4cdc6 Restructure the way we get self arguments (probably reduces executions of object). Dave Halter 2014-08-13 14:07:09 +02:00
  • 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). Dave Halter 2014-08-12 18:14:03 +02:00
  • eeac77d360 Also support the not operator. Dave Halter 2014-08-12 18:09:59 +02:00
  • 8ed89e8245 implement !=, ==, is, is not operators to work in if statements (they also work in in non if contexts and return a bool value.), includes tests. Dave Halter 2014-08-12 17:59:09 +02:00
  • 6f018e4884 introduce maybe_docstr in parse_statement, which should have been introduced way earlier. Dave Halter 2014-08-12 17:13:14 +02:00
  • fb1dba269a re-enable the interpretation of the None keyword Dave Halter 2014-08-12 14:38:56 +02:00
  • 469988be9c actually add tests for the flow analysis of variables. Dave Halter 2014-08-12 09:57:00 +02:00
  • 968bc45314 even tests should not suffer too much from side effects. Dave Halter 2014-08-12 01:46:07 +02:00
  • 6b7ce590fa Simplify get_parent_scope Dave Halter 2014-08-12 01:37:58 +02:00
  • 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. Dave Halter 2014-08-12 01:19:19 +02:00
  • 1865284fa9 fix the interpreter (previously broken by flow analysis) Dave Halter 2014-08-12 00:19:20 +02:00
  • 242072976a use py__mro__ in a classes scope_names_generator Dave Halter 2014-08-11 20:59:29 +02:00
  • 526af7ccbe settings should not be affected by exceptions. Dave Halter 2014-08-11 17:27:40 +02:00
  • f1711f8f9c possible direction of branch checks for name resolution. Dave Halter 2014-08-10 13:17:37 +02:00
  • 483f5c14ee Listeneres should be removed even in exception cases. Do a 'finally' cleanup. Dave Halter 2014-08-07 16:27:42 +02:00
  • 01bdd1e4fa Test fixes and for loops need to be handled a awell in flow_analysis. Dave Halter 2014-08-07 15:51:41 +02:00
  • 0ae9e520c1 flow analysis working for elif statements (even in combination with else) Dave Halter 2014-08-07 12:15:25 +02:00
  • 743d064e6d exception while using else as a scope Dave Halter 2014-08-07 12:10:31 +02:00
  • ee65764c3a more complicated logic working with else Dave Halter 2014-08-07 12:02:08 +02:00
  • d94a70b524 fix a logic issue in the flow_analysis.Status.__and__ Dave Halter 2014-08-07 03:02:40 +02:00
  • b7151c1ef9 add a first flow analysis test Dave Halter 2014-08-06 23:34:23 +02:00
  • 138fa1b4de deletion of returns from SCOPE_CONTENTS was wrong. Dave Halter 2014-08-06 22:42:38 +02:00
  • e7e7bd29e8 fix generator tests (multiple yields must be called with an if random. Dave Halter 2014-08-06 12:45:38 +02:00