From df06f4ddde5e255750edc4087cfba54823404909 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 21 Sep 2014 22:08:05 -0400 Subject: improved inner/anonymous class detection --- test/cuchaz/enigma/TestInnerClasses.java | 18 ++++++++++++++---- test/cuchaz/enigma/inputs/innerClasses/Anonymous.java | 4 ++-- .../inputs/innerClasses/AnonymousWithScopeArgs.java | 16 ++++++++++++++++ .../enigma/inputs/innerClasses/ConstructorArgs.java | 4 ++-- test/cuchaz/enigma/inputs/innerClasses/Simple.java | 4 ++-- 5 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 test/cuchaz/enigma/inputs/innerClasses/AnonymousWithScopeArgs.java (limited to 'test') diff --git a/test/cuchaz/enigma/TestInnerClasses.java b/test/cuchaz/enigma/TestInnerClasses.java index c6b1b5f..e555d92 100644 --- a/test/cuchaz/enigma/TestInnerClasses.java +++ b/test/cuchaz/enigma/TestInnerClasses.java @@ -26,10 +26,12 @@ public class TestInnerClasses private static final String AnonymousOuter = "none/a"; private static final String AnonymousInner = "none/b"; - private static final String SimpleOuter = "none/e"; - private static final String SimpleInner = "none/f"; - private static final String ConstructorArgsOuter = "none/c"; - private static final String ConstructorArgsInner = "none/d"; + private static final String SimpleOuter = "none/g"; + private static final String SimpleInner = "none/h"; + private static final String ConstructorArgsOuter = "none/e"; + private static final String ConstructorArgsInner = "none/f"; + private static final String AnonymousWithScopeArgsOuter = "none/c"; + private static final String AnonymousWithScopeArgsInner = "none/d"; public TestInnerClasses( ) throws Exception @@ -61,4 +63,12 @@ public class TestInnerClasses assertThat( m_index.getInnerClasses( ConstructorArgsOuter ), containsInAnyOrder( ConstructorArgsInner ) ); assertThat( m_index.isAnonymousClass( ConstructorArgsInner ), is( false ) ); } + + @Test + public void anonymousWithScopeArgs( ) + { + assertThat( m_index.getOuterClass( AnonymousWithScopeArgsInner ), is( AnonymousWithScopeArgsOuter ) ); + assertThat( m_index.getInnerClasses( AnonymousWithScopeArgsOuter ), containsInAnyOrder( AnonymousWithScopeArgsInner ) ); + assertThat( m_index.isAnonymousClass( AnonymousWithScopeArgsInner ), is( true ) ); + } } diff --git a/test/cuchaz/enigma/inputs/innerClasses/Anonymous.java b/test/cuchaz/enigma/inputs/innerClasses/Anonymous.java index dbff523..d36a514 100644 --- a/test/cuchaz/enigma/inputs/innerClasses/Anonymous.java +++ b/test/cuchaz/enigma/inputs/innerClasses/Anonymous.java @@ -1,10 +1,10 @@ package cuchaz.enigma.inputs.innerClasses; -public class Anonymous // a +public class Anonymous { public void foo( ) { - Runnable runnable = new Runnable( ) // b + Runnable runnable = new Runnable( ) { @Override public void run( ) diff --git a/test/cuchaz/enigma/inputs/innerClasses/AnonymousWithScopeArgs.java b/test/cuchaz/enigma/inputs/innerClasses/AnonymousWithScopeArgs.java new file mode 100644 index 0000000..e0a65e2 --- /dev/null +++ b/test/cuchaz/enigma/inputs/innerClasses/AnonymousWithScopeArgs.java @@ -0,0 +1,16 @@ +package cuchaz.enigma.inputs.innerClasses; + +public class AnonymousWithScopeArgs +{ + public static void foo( final Simple arg ) + { + System.out.println( new Object( ) + { + @Override + public String toString( ) + { + return arg.toString(); + } + } ); + } +} diff --git a/test/cuchaz/enigma/inputs/innerClasses/ConstructorArgs.java b/test/cuchaz/enigma/inputs/innerClasses/ConstructorArgs.java index d12d9cf..e24395c 100644 --- a/test/cuchaz/enigma/inputs/innerClasses/ConstructorArgs.java +++ b/test/cuchaz/enigma/inputs/innerClasses/ConstructorArgs.java @@ -1,9 +1,9 @@ package cuchaz.enigma.inputs.innerClasses; @SuppressWarnings( "unused" ) -public class ConstructorArgs // c +public class ConstructorArgs { - class Inner // d + class Inner { private int a; diff --git a/test/cuchaz/enigma/inputs/innerClasses/Simple.java b/test/cuchaz/enigma/inputs/innerClasses/Simple.java index f2c08a7..405c639 100644 --- a/test/cuchaz/enigma/inputs/innerClasses/Simple.java +++ b/test/cuchaz/enigma/inputs/innerClasses/Simple.java @@ -1,8 +1,8 @@ package cuchaz.enigma.inputs.innerClasses; -public class Simple // e +public class Simple { - class Inner // f + class Inner { // nothing to do } -- cgit v1.2.3