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.
Fix the remaining issues with the StatementElement.next refactoring.
Add an optional param 'parent' to parser.representation.Simple, which simplifies some calls to that superclass.
flow_analysis test for isinstance as well as and/or operations.
Introduce a dedicated isinstance function implementation.
Ignore FunctionExecutions in old style isinstance checks for now, because it collides with new style isinstance checks.
Start documenting all the py__foo__ methods
Start implementing an is_class function that will determine if an object is a class or not in the future.
wrap some more values with er.wrap
Use IterableWrapper in the iterable module to be able to add methods like is_class quickly.
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.
Move process_precedence_element from the Evaluator to the precedence module.
Implementation of the and operation.
Also implement the or operator.
Rewrote the isistance implementation, so that it works properly with tuples as well as normal classes.
Fix a few tests by either fixing the test cases or adding py__bool__ functions to objects that should have such a method.
refactor fast_parent_copy, use new_elements_default to hand in a dictionary, that contains all the generated duplicates.
Fix issues caused by KeywordStatement, which needs to be copied as well.
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.