return false;
}
- if (pointer_member_access) {
+ if (inner.value_type is PointerType) {
var pointer_type = inner.value_type as PointerType;
if (pointer_type != null && pointer_type.base_type is ValueType) {
// transform foo->bar to (*foo).bar
expr = parse_member_access (begin, expr);
break;
case TokenType.OP_PTR:
- expr = parse_pointer_member_access (begin, expr);
+ if (context.profile == Profile.DOVA) {
+ found = false;
+ } else {
+ expr = parse_pointer_member_access (begin, expr);
+ }
break;
case TokenType.OPEN_PARENS:
expr = parse_method_call (begin, expr);
return false;
}
+ public override Symbol? get_member (string member_name) {
+ if (CodeContext.get ().profile != Profile.DOVA) {
+ return null;
+ }
+
+ Symbol base_symbol = base_type.data_type;
+
+ if (base_symbol == null) {
+ return null;
+ }
+
+ return SemanticAnalyzer.symbol_lookup_inherited (base_symbol, member_name);
+ }
+
public override Symbol? get_pointer_member (string member_name) {
Symbol base_symbol = base_type.data_type;