|
|
@ -235,17 +235,17 @@ namespace ICSharpCode.NRefactory.TypeSystem.Implementation |
|
|
|
public object ConstantValue { |
|
|
|
public object ConstantValue { |
|
|
|
get { |
|
|
|
get { |
|
|
|
ResolveResult rr = LazyInit.VolatileRead(ref this.resolvedDefaultValue); |
|
|
|
ResolveResult rr = LazyInit.VolatileRead(ref this.resolvedDefaultValue); |
|
|
|
|
|
|
|
if (rr == null) { |
|
|
|
|
|
|
|
rr = defaultValue.Resolve(context); |
|
|
|
|
|
|
|
LazyInit.GetOrSet(ref this.resolvedDefaultValue, rr); |
|
|
|
|
|
|
|
} |
|
|
|
if (rr is ConversionResolveResult) { |
|
|
|
if (rr is ConversionResolveResult) { |
|
|
|
var crr = (ConversionResolveResult)rr; |
|
|
|
var crr = (ConversionResolveResult)rr; |
|
|
|
if (crr.Conversion.IsNullableConversion) |
|
|
|
if (crr.Conversion.IsNullableConversion) |
|
|
|
return crr.Input.ConstantValue; |
|
|
|
return crr.Input.ConstantValue; |
|
|
|
} |
|
|
|
} |
|
|
|
if (rr != null) { |
|
|
|
return rr.ConstantValue; |
|
|
|
return rr.ConstantValue; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
rr = defaultValue.Resolve(context); |
|
|
|
|
|
|
|
return LazyInit.GetOrSet(ref this.resolvedDefaultValue, rr).ConstantValue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|