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); }
// 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); }