From e28819b42edd6eb1dfb74c78a366aeaffde32601 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 23 Jan 2014 16:30:54 +0400 Subject: [PATCH] Revert "Using default renderer in LoadBuiltinsTest." This reverts commit 1d21ebf882d9fa417f57f4468eb2dfe2032fb445. Conflicts: compiler/testData/builtin-classes.txt core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java Reverting a part of this (related to the field 'prettyFunctionTypes') because will need to add a test that deserialized built-ins (obtained by KotlinBuiltIns.getInstance()) are consistent with lazy resolved built-ins. This test would break because while DescriptorRenderer renders pretty function types it compares descriptors to the ones from KotlinBuiltIns, but in case of lazy resolve descriptors created for built-ins would be different from KotlinBuiltIns, so renderer wouldn't correctly render a function type --- compiler/testData/builtin-classes.txt | 142 +++++++++--------- .../serialization/LoadBuiltinsTest.java | 15 +- .../renderer/DescriptorRendererBuilder.java | 8 +- .../jet/renderer/DescriptorRendererImpl.java | 10 +- 4 files changed, 99 insertions(+), 76 deletions(-) diff --git a/compiler/testData/builtin-classes.txt b/compiler/testData/builtin-classes.txt index ade3046217d..5c93266de6f 100644 --- a/compiler/testData/builtin-classes.txt +++ b/compiler/testData/builtin-classes.txt @@ -1,7 +1,7 @@ package-fragment jet public fun arrayOfNulls(/*0*/ size: jet.Int): jet.Array -public fun synchronized(/*0*/ lock: jet.Any, /*1*/ block: () -> R): R +public fun synchronized(/*0*/ lock: jet.Any, /*1*/ block: jet.Function0): R public fun jet.Any?.equals(/*0*/ other: jet.Any?): jet.Boolean public fun jet.Any?.identityEquals(/*0*/ other: jet.Any?): jet.Boolean public fun jet.Iterator.iterator(): jet.Iterator @@ -16,7 +16,7 @@ public open class Any { } public final class Array { - /*primary*/ public constructor Array(/*0*/ size: jet.Int, /*1*/ init: (jet.Int) -> T) + /*primary*/ public constructor Array(/*0*/ size: jet.Int, /*1*/ init: jet.Function1) public final val indices: jet.IntRange public final fun (): jet.IntRange public final val size: jet.Int @@ -985,279 +985,279 @@ public trait Iterator { public abstract fun next(): T } -public trait KExtensionFunction0 : T.() -> R { +public trait KExtensionFunction0 : jet.ExtensionFunction0 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(): R } -public trait KExtensionFunction1 : T.(P1) -> R { +public trait KExtensionFunction1 : jet.ExtensionFunction1 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1): R } -public trait KExtensionFunction10 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) -> R { +public trait KExtensionFunction10 : jet.ExtensionFunction10 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10): R } -public trait KExtensionFunction11 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) -> R { +public trait KExtensionFunction11 : jet.ExtensionFunction11 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11): R } -public trait KExtensionFunction12 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) -> R { +public trait KExtensionFunction12 : jet.ExtensionFunction12 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12): R } -public trait KExtensionFunction13 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) -> R { +public trait KExtensionFunction13 : jet.ExtensionFunction13 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13): R } -public trait KExtensionFunction14 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) -> R { +public trait KExtensionFunction14 : jet.ExtensionFunction14 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14): R } -public trait KExtensionFunction15 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) -> R { +public trait KExtensionFunction15 : jet.ExtensionFunction15 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15): R } -public trait KExtensionFunction16 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16) -> R { +public trait KExtensionFunction16 : jet.ExtensionFunction16 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16): R } -public trait KExtensionFunction17 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17) -> R { +public trait KExtensionFunction17 : jet.ExtensionFunction17 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17): R } -public trait KExtensionFunction18 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18) -> R { +public trait KExtensionFunction18 : jet.ExtensionFunction18 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18): R } -public trait KExtensionFunction19 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19) -> R { +public trait KExtensionFunction19 : jet.ExtensionFunction19 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19): R } -public trait KExtensionFunction2 : T.(P1, P2) -> R { +public trait KExtensionFunction2 : jet.ExtensionFunction2 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2): R } -public trait KExtensionFunction20 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20) -> R { +public trait KExtensionFunction20 : jet.ExtensionFunction20 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19, /*19*/ p20: P20): R } -public trait KExtensionFunction21 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21) -> R { +public trait KExtensionFunction21 : jet.ExtensionFunction21 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19, /*19*/ p20: P20, /*20*/ p21: P21): R } -public trait KExtensionFunction22 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, P22) -> R { +public trait KExtensionFunction22 : jet.ExtensionFunction22 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19, /*19*/ p20: P20, /*20*/ p21: P21, /*21*/ p22: P22): R } -public trait KExtensionFunction3 : T.(P1, P2, P3) -> R { +public trait KExtensionFunction3 : jet.ExtensionFunction3 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3): R } -public trait KExtensionFunction4 : T.(P1, P2, P3, P4) -> R { +public trait KExtensionFunction4 : jet.ExtensionFunction4 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4): R } -public trait KExtensionFunction5 : T.(P1, P2, P3, P4, P5) -> R { +public trait KExtensionFunction5 : jet.ExtensionFunction5 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5): R } -public trait KExtensionFunction6 : T.(P1, P2, P3, P4, P5, P6) -> R { +public trait KExtensionFunction6 : jet.ExtensionFunction6 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6): R } -public trait KExtensionFunction7 : T.(P1, P2, P3, P4, P5, P6, P7) -> R { +public trait KExtensionFunction7 : jet.ExtensionFunction7 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7): R } -public trait KExtensionFunction8 : T.(P1, P2, P3, P4, P5, P6, P7, P8) -> R { +public trait KExtensionFunction8 : jet.ExtensionFunction8 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8): R } -public trait KExtensionFunction9 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9) -> R { +public trait KExtensionFunction9 : jet.ExtensionFunction9 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9): R } -public trait KFunction0 : () -> R { +public trait KFunction0 : jet.Function0 { public abstract override /*1*/ /*fake_override*/ fun invoke(): R } -public trait KFunction1 : (P1) -> R { +public trait KFunction1 : jet.Function1 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1): R } -public trait KFunction10 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) -> R { +public trait KFunction10 : jet.Function10 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10): R } -public trait KFunction11 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) -> R { +public trait KFunction11 : jet.Function11 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11): R } -public trait KFunction12 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) -> R { +public trait KFunction12 : jet.Function12 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12): R } -public trait KFunction13 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) -> R { +public trait KFunction13 : jet.Function13 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13): R } -public trait KFunction14 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) -> R { +public trait KFunction14 : jet.Function14 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14): R } -public trait KFunction15 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) -> R { +public trait KFunction15 : jet.Function15 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15): R } -public trait KFunction16 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16) -> R { +public trait KFunction16 : jet.Function16 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16): R } -public trait KFunction17 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17) -> R { +public trait KFunction17 : jet.Function17 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17): R } -public trait KFunction18 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18) -> R { +public trait KFunction18 : jet.Function18 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18): R } -public trait KFunction19 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19) -> R { +public trait KFunction19 : jet.Function19 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19): R } -public trait KFunction2 : (P1, P2) -> R { +public trait KFunction2 : jet.Function2 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2): R } -public trait KFunction20 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20) -> R { +public trait KFunction20 : jet.Function20 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19, /*19*/ p20: P20): R } -public trait KFunction21 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21) -> R { +public trait KFunction21 : jet.Function21 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19, /*19*/ p20: P20, /*20*/ p21: P21): R } -public trait KFunction22 : (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, P22) -> R { +public trait KFunction22 : jet.Function22 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19, /*19*/ p20: P20, /*20*/ p21: P21, /*21*/ p22: P22): R } -public trait KFunction3 : (P1, P2, P3) -> R { +public trait KFunction3 : jet.Function3 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3): R } -public trait KFunction4 : (P1, P2, P3, P4) -> R { +public trait KFunction4 : jet.Function4 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4): R } -public trait KFunction5 : (P1, P2, P3, P4, P5) -> R { +public trait KFunction5 : jet.Function5 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5): R } -public trait KFunction6 : (P1, P2, P3, P4, P5, P6) -> R { +public trait KFunction6 : jet.Function6 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6): R } -public trait KFunction7 : (P1, P2, P3, P4, P5, P6, P7) -> R { +public trait KFunction7 : jet.Function7 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7): R } -public trait KFunction8 : (P1, P2, P3, P4, P5, P6, P7, P8) -> R { +public trait KFunction8 : jet.Function8 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8): R } -public trait KFunction9 : (P1, P2, P3, P4, P5, P6, P7, P8, P9) -> R { +public trait KFunction9 : jet.Function9 { public abstract override /*1*/ /*fake_override*/ fun invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9): R } -public trait KMemberFunction0 : T.() -> R { +public trait KMemberFunction0 : jet.ExtensionFunction0 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(): R } -public trait KMemberFunction1 : T.(P1) -> R { +public trait KMemberFunction1 : jet.ExtensionFunction1 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1): R } -public trait KMemberFunction10 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) -> R { +public trait KMemberFunction10 : jet.ExtensionFunction10 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10): R } -public trait KMemberFunction11 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) -> R { +public trait KMemberFunction11 : jet.ExtensionFunction11 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11): R } -public trait KMemberFunction12 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) -> R { +public trait KMemberFunction12 : jet.ExtensionFunction12 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12): R } -public trait KMemberFunction13 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) -> R { +public trait KMemberFunction13 : jet.ExtensionFunction13 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13): R } -public trait KMemberFunction14 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) -> R { +public trait KMemberFunction14 : jet.ExtensionFunction14 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14): R } -public trait KMemberFunction15 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) -> R { +public trait KMemberFunction15 : jet.ExtensionFunction15 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15): R } -public trait KMemberFunction16 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16) -> R { +public trait KMemberFunction16 : jet.ExtensionFunction16 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16): R } -public trait KMemberFunction17 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17) -> R { +public trait KMemberFunction17 : jet.ExtensionFunction17 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17): R } -public trait KMemberFunction18 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18) -> R { +public trait KMemberFunction18 : jet.ExtensionFunction18 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18): R } -public trait KMemberFunction19 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19) -> R { +public trait KMemberFunction19 : jet.ExtensionFunction19 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19): R } -public trait KMemberFunction2 : T.(P1, P2) -> R { +public trait KMemberFunction2 : jet.ExtensionFunction2 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2): R } -public trait KMemberFunction20 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20) -> R { +public trait KMemberFunction20 : jet.ExtensionFunction20 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19, /*19*/ p20: P20): R } -public trait KMemberFunction21 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21) -> R { +public trait KMemberFunction21 : jet.ExtensionFunction21 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19, /*19*/ p20: P20, /*20*/ p21: P21): R } -public trait KMemberFunction22 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, P22) -> R { +public trait KMemberFunction22 : jet.ExtensionFunction22 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9, /*9*/ p10: P10, /*10*/ p11: P11, /*11*/ p12: P12, /*12*/ p13: P13, /*13*/ p14: P14, /*14*/ p15: P15, /*15*/ p16: P16, /*16*/ p17: P17, /*17*/ p18: P18, /*18*/ p19: P19, /*19*/ p20: P20, /*20*/ p21: P21, /*21*/ p22: P22): R } -public trait KMemberFunction3 : T.(P1, P2, P3) -> R { +public trait KMemberFunction3 : jet.ExtensionFunction3 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3): R } -public trait KMemberFunction4 : T.(P1, P2, P3, P4) -> R { +public trait KMemberFunction4 : jet.ExtensionFunction4 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4): R } -public trait KMemberFunction5 : T.(P1, P2, P3, P4, P5) -> R { +public trait KMemberFunction5 : jet.ExtensionFunction5 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5): R } -public trait KMemberFunction6 : T.(P1, P2, P3, P4, P5, P6) -> R { +public trait KMemberFunction6 : jet.ExtensionFunction6 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6): R } -public trait KMemberFunction7 : T.(P1, P2, P3, P4, P5, P6, P7) -> R { +public trait KMemberFunction7 : jet.ExtensionFunction7 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7): R } -public trait KMemberFunction8 : T.(P1, P2, P3, P4, P5, P6, P7, P8) -> R { +public trait KMemberFunction8 : jet.ExtensionFunction8 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8): R } -public trait KMemberFunction9 : T.(P1, P2, P3, P4, P5, P6, P7, P8, P9) -> R { +public trait KMemberFunction9 : jet.ExtensionFunction9 { public abstract override /*1*/ /*fake_override*/ fun T.invoke(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4, /*4*/ p5: P5, /*5*/ p6: P6, /*6*/ p7: P7, /*7*/ p8: P8, /*8*/ p9: P9): R } diff --git a/compiler/tests/org/jetbrains/jet/descriptors/serialization/LoadBuiltinsTest.java b/compiler/tests/org/jetbrains/jet/descriptors/serialization/LoadBuiltinsTest.java index 379db36f207..4ed6b6150b6 100644 --- a/compiler/tests/org/jetbrains/jet/descriptors/serialization/LoadBuiltinsTest.java +++ b/compiler/tests/org/jetbrains/jet/descriptors/serialization/LoadBuiltinsTest.java @@ -22,6 +22,8 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor; import org.jetbrains.jet.lang.resolve.lazy.KotlinTestWithEnvironment; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; +import org.jetbrains.jet.renderer.DescriptorRenderer; +import org.jetbrains.jet.renderer.DescriptorRendererBuilder; import org.jetbrains.jet.test.util.RecursiveDescriptorComparator; import java.io.File; @@ -33,8 +35,17 @@ public class LoadBuiltinsTest extends KotlinTestWithEnvironment { } public void testBuiltIns() throws Exception { + RecursiveDescriptorComparator.Configuration configuration = RecursiveDescriptorComparator.RECURSIVE_ALL.withRenderer( + new DescriptorRendererBuilder() + .setWithDefinedIn(false) + .setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE) + .setVerbose(true) + .setPrettyFunctionTypes(false) + .build() + ); + PackageFragmentDescriptor actualFragment = KotlinBuiltIns.getInstance().getBuiltInsPackageFragment(); - RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile( - actualFragment, RecursiveDescriptorComparator.RECURSIVE_ALL, new File("compiler/testData/builtin-classes.txt")); + RecursiveDescriptorComparator + .validateAndCompareDescriptorWithFile(actualFragment, configuration, new File("compiler/testData/builtin-classes.txt")); } } diff --git a/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererBuilder.java b/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererBuilder.java index 9d8719f17e3..5e49a8eaae9 100644 --- a/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererBuilder.java +++ b/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererBuilder.java @@ -35,6 +35,7 @@ public class DescriptorRendererBuilder { private boolean unitReturnType = true; private boolean normalizedVisibilities = false; private boolean showInternalKeyword = true; + private boolean prettyFunctionTypes = true; @NotNull private DescriptorRenderer.OverrideRenderingPolicy overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN; @NotNull @@ -121,9 +122,14 @@ public class DescriptorRendererBuilder { return this; } + public DescriptorRendererBuilder setPrettyFunctionTypes(boolean prettyFunctionTypes) { + this.prettyFunctionTypes = prettyFunctionTypes; + return this; + } + public DescriptorRenderer build() { return new DescriptorRendererImpl(shortNames, withDefinedIn, modifiers, startFromName, debugMode, classWithPrimaryConstructor, - verbose, unitReturnType, normalizedVisibilities, showInternalKeyword, + verbose, unitReturnType, normalizedVisibilities, showInternalKeyword, prettyFunctionTypes, overrideRenderingPolicy, valueParametersHandler, textFormat, excludedAnnotationClasses); } diff --git a/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java b/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java index 2e6c9d0fcad..c12258dfef5 100644 --- a/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java +++ b/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java @@ -27,7 +27,10 @@ import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.DefaultAnnotationArgumentVisitor; import org.jetbrains.jet.lang.descriptors.impl.DeclarationDescriptorVisitorEmptyBodies; import org.jetbrains.jet.lang.resolve.DescriptorUtils; -import org.jetbrains.jet.lang.resolve.constants.*; +import org.jetbrains.jet.lang.resolve.constants.AnnotationValue; +import org.jetbrains.jet.lang.resolve.constants.ArrayValue; +import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; +import org.jetbrains.jet.lang.resolve.constants.JavaClassValue; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqNameBase; import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe; @@ -50,6 +53,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { private final boolean unitReturnType; private final boolean normalizedVisibilities; private final boolean showInternalKeyword; + private final boolean prettyFunctionTypes; @NotNull private final OverrideRenderingPolicy overrideRenderingPolicy; @NotNull @@ -70,6 +74,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { boolean unitReturnType, boolean normalizedVisibilities, boolean showInternalKeyword, + boolean prettyFunctionTypes, @NotNull OverrideRenderingPolicy overrideRenderingPolicy, @NotNull ValueParametersHandler handler, @NotNull TextFormat textFormat, @@ -89,6 +94,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { this.debugMode = debugMode; this.textFormat = textFormat; this.excludedAnnotationClasses = Sets.newHashSet(excludedAnnotationClasses); + this.prettyFunctionTypes = prettyFunctionTypes; } /* FORMATTING */ @@ -223,7 +229,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { if (type.isError()) { return renderDefaultType(type); } - if (KotlinBuiltIns.getInstance().isExactFunctionOrExtensionFunctionType(type)) { + if (KotlinBuiltIns.getInstance().isExactFunctionOrExtensionFunctionType(type) && prettyFunctionTypes) { return renderFunctionType(type); } return renderDefaultType(type);