diff options
| author | ssankaran | 2014-02-22 12:20:11 +0000 |
|---|---|---|
| committer | ssankaran | 2014-02-22 12:20:11 +0000 |
| commit | ca551e9f50d120a7df024c143f37ec7681949c67 (patch) | |
| tree | 1095f58c0ddd5309601398f07af281e5c6974413 | |
| parent | c240c1bb7f910acf99b68217e6edcfc018301e65 (diff) | |
| download | eclipse.jdt.core-ca551e9f50d120a7df024c143f37ec7681949c67.tar.gz eclipse.jdt.core-ca551e9f50d120a7df024c143f37ec7681949c67.tar.xz eclipse.jdt.core-ca551e9f50d120a7df024c143f37ec7681949c67.zip | |
Amended fix for Bug 428247 - [1.8][compiler] Race condition causes
injection of spurious raw types into the type system.
| -rw-r--r-- | org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java index 48c295f991..5dd0bc079b 100644 --- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java +++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java @@ -409,9 +409,13 @@ public class ClassScope extends Scope { SourceTypeBinding sourceType = this.referenceContext.binding; environment().setAccessRestriction(sourceType, accessRestriction); - checkAndSetModifiers(); - buildTypeVariables(); // do this before adding the type to avoid race: see https://bugs.eclipse.org/bugs/show_bug.cgi?id=428247 + + TypeParameter[] typeParameters = this.referenceContext.typeParameters; + sourceType.typeVariables = typeParameters == null || typeParameters.length == 0 ? Binding.NO_TYPE_VARIABLES : null; sourceType.fPackage.addType(sourceType); + checkAndSetModifiers(); + buildTypeVariables(); + buildMemberTypes(accessRestriction); return sourceType; } |
