Previous CloneSet | Next CloneSet | Back to Main Report |
Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
---|---|---|---|---|
14 | 2 | 3 | 0.972 | statement_sequence_member |
Clone Abstraction | Parameter Bindings |
Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
---|---|---|---|
1 | 14 | 2767 | plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java |
2 | 14 | 2785 | plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java |
| ||||
switch (wildV.boundKind) { // U, ? extends V case Wildcard.EXTENDS: TypeBinding lub = lowerUpperBound(new TypeBinding[] { u,wildV.bound }, lubStack); if (lub == null) return null; // int is returned to denote cycle detected in lub computation - stop recursion by answering unbound wildcard if (lub == TypeBinding.INT) return environment().createWildcard(genericType, rank, null, null /*no extra bound*/ , Wildcard.UNBOUND); return environment().createWildcard(genericType, rank, lub, null /*no extra bound*/ , Wildcard.EXTENDS); // U, ? super V case Wildcard.SUPER: TypeBinding[] glb = greaterLowerBound(new TypeBinding[] { u,wildV.bound } ); if (glb == null) return null; return environment().createWildcard(genericType, rank, glb[0], null /*no extra bound*/ , Wildcard.SUPER); // TODO (philippe) need to capture entire bounds case Wildcard.UNBOUND: } |
| ||||
switch (wildU.boundKind) { // U, ? extends V case Wildcard.EXTENDS: TypeBinding lub = lowerUpperBound(new TypeBinding[] { wildU.bound, v }, lubStack); if (lub == null) return null; // int is returned to denote cycle detected in lub computation - stop recursion by answering unbound wildcard if (lub == TypeBinding.INT) return environment().createWildcard(genericType, rank, null, null /*no extra bound*/ , Wildcard.UNBOUND); return environment().createWildcard(genericType, rank, lub, null /*no extra bound*/ , Wildcard.EXTENDS); // U, ? super V case Wildcard.SUPER: TypeBinding[] glb = greaterLowerBound(new TypeBinding[] { wildU.bound, v } ); if (glb == null) return null; return environment().createWildcard(genericType, rank, glb[0], null /*no extra bound*/ , Wildcard.SUPER); // TODO (philippe) need to capture entire bounds case Wildcard.UNBOUND: } |
| |||
switch ( [[#variable92267e00]].boundKind) { // U, ? extends V case Wildcard.EXTENDS: TypeBinding lub = lowerUpperBound(new TypeBinding[] { [[#variable92267d60]], [[#variable922677e0]] }, lubStack); if (lub == null) return null; // int is returned to denote cycle detected in lub computation - stop recursion by answering unbound wildcard if (lub == TypeBinding.INT) return environment().createWildcard(genericType, rank, null, null /*no extra bound*/ , Wildcard.UNBOUND); return environment().createWildcard(genericType, rank, lub, null /*no extra bound*/ , Wildcard.EXTENDS); // U, ? super V case Wildcard.SUPER: TypeBinding[] glb = greaterLowerBound(new TypeBinding[] { [[#variable92267d60]], [[#variable922677e0]] } ); if (glb == null) return null; return environment().createWildcard(genericType, rank, glb[0], null /*no extra bound*/ , Wildcard.SUPER); // TODO (philippe) need to capture entire bounds // TODO (philippe) need to capture entire bounds case Wildcard.UNBOUND: } |
CloneAbstraction |
Parameter Index | Clone Instance | Parameter Name | Value |
---|---|---|---|
1 | 1 | [[#92267e00]] | wildV |
1 | 2 | [[#92267e00]] | wildU |
2 | 1 | [[#92267d60]] | u |
2 | 2 | [[#92267d60]] | wildU.bound |
3 | 1 | [[#922677e0]] | wildV.bound |
3 | 2 | [[#922677e0]] | v |