File path: /jruby-1.4.0/src/org/jruby/RubyString.java | File path: /jruby-1.4.0/src/org/jruby/RubyModule.java | |||
Method name: IRubyObject sub_bang(ThreadContext, IRubyObject[], Block)
|
Method name: IRubyObject define_method(ThreadContext, IRubyObject[], Block)
|
|||
Number of AST nodes: 8 | Number of AST nodes: 7 | |||
1 | switch (args.length) {↵ | 1 | switch (args.length) {↵ | |
2 | case 1: return sub_bang↵ | 2 | case 1:↵ | |
3 | (context, args[0], block);↵ | 3 | return define_method(context, args[0], block);↵ | |
4 | case 2: return sub_bang↵ | 4 | case 2:↵ | |
5 | (context, args[0], args[1], block);↵ | 5 | return define_method(context, args[0], args[1], block);↵ | |
6 | default:Arity.raiseArgumentError(context.getRuntime(), args.length, 1, 2); return null; // not reached↵ | 6 | default:↵ | |
7 | throw context.getRuntime().newArgumentError("wrong # of arguments(" + args.length + " for 2)");↵ | |||
7 | } | 8 |
| |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.2 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 27 |
Number of mapped statements | 6 |
Number of unmapped statements in the first code fragment | 2 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 9176.6 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | switch (args.length) | 1 | switch (args.length) | |||||||||||
2 | case 1: | 2 | case 1: | |||||||||||
3 | return sub_bang(context, args[0], block); |
| 3 | return define_method(context, args[0], block); | ||||||||||
4 | case 2: | 4 | case 2: | |||||||||||
5 | return sub_bang(context, args[0], args[1], block); |
| 5 | return define_method(context, args[0], args[1], block); | ||||||||||
6 | default: | 6 | default: | |||||||||||
|
| 7 | throw context.getRuntime().newArgumentError("wrong # of arguments(" + args.length + " for 2)"); | |||||||||||
7 | Arity.raiseArgumentError(context.getRuntime(), args.length, 1, 2); | | ||||||||||||
8 | return null; |
| |
Row | Violation |
---|---|
1 | Unmatched throw context.getRuntime().newArgumentError("wrong # of arguments(" + args.length + " for 2)"); |
2 | Unmatched return null; |