protected internal override CapnpType VisitReference(CapnpReference @ref)
        {
            _mUnresolvedRefCount += 1;
            _mRefs.Add(@ref);
            var result = mCurrentScope.ResolveFullName(@ref.FullName);

            if (result != null && !(result is CapnpReference))
            {
                _mUnresolvedRefCount -= 1;
                _mRefs.Remove(@ref);
                return(result);
            }

            // No change, nothing resolved.
            return(@ref);
        }
 protected internal virtual CapnpType VisitReference(CapnpReference @ref)
 {
     return(@ref);
 }
Exemple #3
0
        // todo, first collect some rules
        // - numbers should not contain any 'holes'
        // - correct application of annotations (finish below todo)
        // - detect interfaces structs with same names etc

        // This should never happen with a correct parser.
        protected internal override CapnpType VisitReference(CapnpReference @ref)
        {
            throw new InvalidOperationException("unexpected reference: " + @ref.FullName);
        }