2016-11-27 | Paul Boddie | file changeset files shortlog | Removed various superfluous exception classes, also enhancing IndexError. |
paul@59 | 1 | class C: |
paul@59 | 2 | class D: |
paul@59 | 3 | class E: |
paul@59 | 4 | def m(self, x): |
paul@65 | 5 | self.x = x |
paul@66 | 6 | l = self.x.__len__ |
paul@66 | 7 | s = self.o |
paul@66 | 8 | return self.o.__len__ |
paul@62 | 9 | n = 123 |
paul@66 | 10 | o = "123" |
paul@74 | 11 | |
paul@62 | 12 | p = "456" |
paul@71 | 13 | q = 789 |
paul@59 | 14 | |
paul@74 | 15 | class F(E): |
paul@74 | 16 | def r(self, y): |
paul@74 | 17 | s = self.o |
paul@74 | 18 | C.D.F.t = 234 |
paul@74 | 19 | return self.o.__len__ |
paul@74 | 20 | t = 123 |
paul@75 | 21 | def u(self): |
paul@75 | 22 | return self.o |
paul@75 | 23 | def v(self): |
paul@75 | 24 | return self.u().__len__ |
paul@74 | 25 | |
paul@114 | 26 | def static(): |
paul@59 | 27 | c = C |
paul@59 | 28 | d = C.D |
paul@59 | 29 | e = C.D.E |
paul@59 | 30 | f = C.D.E.m |
paul@62 | 31 | g = C.D.E.n |
paul@62 | 32 | h = C.D.p |
paul@114 | 33 | |
paul@114 | 34 | def static_via_constant(): |
paul@62 | 35 | i = C.D.p.__len__ |
paul@114 | 36 | |
paul@114 | 37 | def assign(): |
paul@71 | 38 | C.D.q = 987 |
paul@114 | 39 | |
paul@114 | 40 | def indirect(): |
paul@114 | 41 | e = C.D.E |
paul@59 | 42 | inst = e() |
paul@59 | 43 | method = inst.m |
paul@65 | 44 | return method("5") |
paul@59 | 45 | |
paul@114 | 46 | def broken(): |
paul@114 | 47 | inst2 = C.D.F() |
paul@114 | 48 | l = inst2.u().__len__ |
paul@114 | 49 | |
paul@114 | 50 | static() |
paul@114 | 51 | static_via_constant() |
paul@114 | 52 | assign() |
paul@114 | 53 | result1 = indirect() |
paul@114 | 54 | broken() |
paul@114 | 55 | |
paul@114 | 56 | # Static chains. |
paul@114 | 57 | |
paul@59 | 58 | c = C |
paul@59 | 59 | d = C.D |
paul@59 | 60 | e = C.D.E |
paul@59 | 61 | f = C.D.E.m |
paul@62 | 62 | g = C.D.E.n |
paul@62 | 63 | h = C.D.p |
paul@114 | 64 | |
paul@114 | 65 | # Static via constant. |
paul@114 | 66 | |
paul@62 | 67 | i = C.D.p.__len__ |
paul@114 | 68 | |
paul@114 | 69 | # Static assignment. |
paul@114 | 70 | |
paul@71 | 71 | C.D.q = 987 |
paul@114 | 72 | |
paul@114 | 73 | # Indirect accesses. |
paul@114 | 74 | |
paul@59 | 75 | inst = e() |
paul@59 | 76 | method = inst.m |
paul@65 | 77 | result2 = method("5") |
paul@114 | 78 | |
paul@114 | 79 | # Broken chains. |
paul@114 | 80 | |
paul@114 | 81 | inst2 = C.D.F() |
paul@114 | 82 | l = inst2.u().__len__ |