Report.error (source_reference, "Access to instance member `%s' from nullable reference denied".printf (symbol_reference.get_full_name ()));
}
+ var m = symbol_reference as Method;
+ var inner_ma = inner as MemberAccess;
+ if (m != null && m.binding == MemberBinding.STATIC && m.parent_symbol is ObjectTypeSymbol &&
+ inner != null && inner.value_type == null && inner_ma.type_argument_list.size > 0) {
+ // support static methods in generic classes
+ inner.value_type = new ObjectType ((ObjectTypeSymbol) m.parent_symbol);
+
+ foreach (var type_argument in inner_ma.type_argument_list) {
+ inner.value_type.add_type_argument (type_argument);
+ }
+ }
+
formal_value_type = context.analyzer.get_value_type_for_symbol (symbol_reference, lvalue);
if (inner != null && formal_value_type != null) {
value_type = formal_value_type.get_actual_type (inner.value_type, null, this);
}
if (symbol_reference is Method) {
- var m = (Method) symbol_reference;
-
if (target_type != null) {
value_type.value_owned = target_type.value_owned;
}