►
From YouTube: .NET Design Review: GitHub Quick Reviews
Description
00:00:00 - Needs Work: API Change Request: Expression support for ref and readonly ref types https://github.com/dotnet/corefx/issues/26772#issuecomment-525417923
00:05:44 - Needs Work: Add a ValueStringBuilder https://github.com/dotnet/corefx/issues/28379#issuecomment-525424732
00:24:08 - Approved: Add Path.RemoveRelativeSegments Api https://github.com/dotnet/corefx/issues/30701#issuecomment-525429074
00:34:56 - Needs Work: List(T).AsSpan() https://github.com/dotnet/corefx/issues/19814#issuecomment-525432693
A
A
A
And
I
think
as
a
general
like
I,
don't
know,
proposal
I,
guess
how
the
language
can
generally
bind
to
them
by
name
or
something
where
they
basically
get
met
from
the
you
know.
The
syntax
representation
involves
in
but
I
think
it's
too
early,
so
I
think
I
would
fund
the
whole
thing
for
now
and
then
just
come
back
and
created
exactly
I'd.
B
B
G
A
Me
hands
flag,
wouldn't
add
much
anyway
right
because
I
mean
these
returns
of
all
right.
I.
Think
the
problem
of
this
kind
of
API
is
that
you
have
to
cost
yourself
right.
You
basically
get
back
in
there
an
instance
of
system
got
array
which
is,
you
know
far
from
being
great,
and
you
may
say,
I
have
to
call
time
off,
like
you
really
wanted
to
say
the
type
of
the
enum
only
ones
right,
but
this
is
what
you
would
have
to
write
today
and
yeah.
A
A
Yeah,
that's
a
fair
thing.
She
check
well,
45%
of
apps
are
doing
and
imported
API
to
demonstrate
now.
I
grant
you
build.
This
is
I.
Think
I
don't
actually
look
at
the
data
right
now,
but.
G
E
G
E
G
G
A
I
H
A
Well,
the
way
it
works
is
you
basically
have
the
ABS
in
different
floors
and
consider
each
folder
effectively
an
AB.
So
it
is
in
principle
possible
that
you
have
one
library
that
is
used
by
100
apps
and
then
we
would
see
I
need
usages
of
the
API,
but
it's
the
same
library
like
in
the
past.
We
try
to
separate
that
out,
basically
to
measure
how
much
cost
is
there
for
the
ecosystem,
if
you
will,
but
it
gets
more
complicated
right
and
so
like
I,
basically
just
yeah,
yeah,
sure
sure
and
I
I
have
a
it's.
J
A
That's
very
possible
at
the
same
time,
they're
like
very
often
when
you
look
into
the
data,
it's
much
more.
So
if
you
have
enough
absolutely
the
API
for
telemetry
last
time,
I
checked
the
N
was
like
60,000
reports
or
something
but
like
wanna
see
once
you
reach
that
level
of
penetration
like
if
you
have
a
decent
mix
of
of
what
people
actually
do
in
the
wild.
A
G
I
E
G
And
if
I
remember
correctly,
Jared
either
had
put
up
always
planning
to
put
up
a
proposal
around
this
kind
of
thing
and
then
there's
also
the
proposal
around
adding
the
I
numerable
of
span.
The
full
frame
span,
support.
K
H
I
E
Yeah
I'm
a
degree
and
saluted
so
one
thing
that
could
actually
make
this
better
is
I
know
that
the
language
team
is
considering
modifications
to
the
formattable
string
type
that
will
actually
use
this
under
the
covers
safely,
and
the
idea
is
that,
if
you're
using
string
interpolation,
you
basically
get
the
benefits
of
this,
including
a
single
allocation
under
the
covers.
Without
you,
the
developer
ever
having
to
touch
this
title,
I,
don't
know
their
current
status
on
that
I
just
know
it
was
something
they
were
investigating.
So.
A
C
Levi,
dear
cousin,
if
we
were
to
use
my
thoughts
based
on
proposal
that
I'd
made
to
the
language
team
and
their
soul
iterating
on,
but
it
would
still
require
most
likely
a
type
like
this
to
be
public,
even
if
it
was
buried
in
you
know,
system
run
time,
compiler
services
or
something
does
how
prominent
the
type
is
impact.
Your
concerns
around
security
and
rape,
well,
I
would.
I
I
A
I
mean
they're
completely
by
the
array
pool,
although
my
because
you
effectively
rely
on
collaboration
between
the
consumers
right
and
if
you
copy
and
then
one
guy
to
another,
why
I
have
to
their
pets
to
it,
then
you
have
problems
right.
So
if
we
would
have
this
feature,
baby
basically
say
there
is
a
struck
that
can
only
be
passed
by
reference.
Would
the
concern
disappear
or
would
they
be
still
concerns
at
all
this
time?
Well,.
A
I
think
that
I'm
just
trying
to
make
it
says
stuff
like
what
the
action
item
would
be
for
dairy
all
right.
If
you
would
just
say
well
before
you
get
any
sort
of
like
by
ref
feature
in,
we
should
basically
Auto
reject
all
features
that
reliably
doubles
drugs
right
because
they're,
almost
all
of
the
same
problem
I
mean
we
just
removed
one
from
from
the
Jason
80s.
E
G
If
we
did
have
any
language
feature,
allowing
essentially
ownership
semantics
of
a
struct
there's
a
lot
of
other
low-level
door
unlock
that
people
have
been
asking
for
so,
but
everything
you
mean
by
raffle.
You
need
something
else:
well,
ownership,
meaning
you
have
a
single
owner
of
the
type,
and
so
everything
has
to
pass
by
wrapped
until.
C
I
mean
there
are
all
the
alternatives.
We,
you
don't
need
language
support
to,
validate
that
you
can
do
it
in
analyzers,
and
we
could
say
we
have
a
you
know,
an
analyzer
that
results
in
errors.
When
you
pass
one
of
these
values
string
builders
by
something
other
than
by
reference.
Someone
could
of
course,
turn
it
off,
but
then
someone
could
also
violate
compiler
rules
in
other
ways.
So
we
could
strike
a
middle
ground
was
something
like
that.
E
A
Think
to
me
that
the
action
here
would
be,
we
need
to
have
a
set
of
emeralds
that
are
on
metaphor.
Yes,
I!
Think
if
people
turn
it
off,
I'm,
okay,
with
saying:
okay,
you
deliberately
off
it
into
a
world
of
pain
at
that
point,
I'm
fine
with
that.
But
if
it's
basically
yes
to
opt-in
to
get
correct
code,
then
we
already
know
that
only
types
of
customers
would
do
it.
Another
way,
95%
left
box
right
that
so
like
without
this
being
hidden
by
default.
I,
don't
think
this
is
viable.
E
A
The
one
thing
we
have
to
consider
is
that,
no
matter
what
you
do,
whether
you
make
it
an
analyzer
and
make
it
a
seashell
language
feature
there.
It's
just
it's
no
runtime
enforcement,
but
you
can
still
have
a
customer
that
doesn't
know
about
this.
Let's
say
f-sharp
doesn't
get
the
feature
and
in
time
and
then
you
still
have
two
people
who
used
to
type.
You
know
in
security
right,
but
I
think
there
are
yeah.
A
F
F
A
A
This
is
why
I
think
Jared
like
in
the
past
has
pushed
back
analyzer
features
for
things
where
well,
you
have
to
understand
the
language
semantics
really
in-depth,
and
it's
not
just
oh
yeah,
I
forced
every
method
call
to
be
passed
by
refu
also
have
to
do
a
lot
of
things
like
Oh,
some
property
returns
it
the
complainant
makes
a
defensive
copy.
Like
you,
don't
necessarily
see
this
involves
an
API.
Is
the
compiler
doesn't
expose
that
knowledge.
E
E
F
H
A
Thing
will
be
said
earlier
was:
if
we
really
care
about
this
iƱƔrritu.
Basically,
no
were
there.
You
know
to
positive
the
same
file
yeah.
We
would
have
to
effectively
provide
an
API
for
that
and
then
call
an
operating
system
ache.
They
will
tell
you
whether
both
things,
basically,
it
is
also
the
same
thing
and
then
basically
normal
consumers
would
just
rely
on
spending
quality
right.
H
E
E
F
A
A
A
G
A
Yeah
I
think
lies
to
me.
Something
could
learn
to
get
full
power
like
you
won't
effectively
something
back.
You
can
use
for
comparison
time
versus
this
one
really.
The
scenario
is
I.
Think
collapse
makes
sense,
because
all
you're
saying
is
like
I:
don't
expand,
dot,
thoughts,
right,
yeah
and
it's
a
question
what
they
want
to
call
the
collapse:
rx
bond
I!
Guess
you
can
go
either
way,
but
so
what
is
the
purpose.
A
I'm
thinking,
for
example,
like
you
know,
take
take
one
API
review
where
that's
right,
if
you,
if
you
drop
in
50
assemblies
into
a
peer
reviewer,
I,
try
to
effectively
compute
what
the
common
pathless
and
use
that
as
to
display
string
for
you
know
your
left
side,
your
right
hand,
side
when
I
don't
want
to
see
God
thoughts
in
there
cuz.
It
doesn't
have
anybody
right
right.
G
N
A
Thinking
of
like
things
like,
for
example,
let's
say
you
have
something
like
premiere
or
Visual,
Studio
right
but
effectively,
you
have
the
context
of
a
project.
Whenever
you
render
a
path
he
wanted
to
base
its
tag
relative
to
the
project
file.
No,
you
want
to
collapse,
thoughts
if
that
makes
sense,
but
if
they
go
outside,
then
you
feels.
G
N
The
concern
as
I
mentioned
in
msbuild
is
the
length
soldier
of
the
path
I
mean
like.
If
you
have
like
very
long.
One
is
that
if
you
collapse
it
it'll
fit
with
a
limit
would
benefit
them
has
been
yeah.
We
got
some
immiscible
videos
before
because
of
that
I
mean,
like
you
know,
beautiful,
adding
some
stock,
which
is
it
exceeds
the
max
parent.
We
just
at
that
time.
L
A
A
H
E
M
M
F
G
C
E
It
silly
question:
would
we
ever
under
any
circumstance,
change
the
backing
store
behind
list
of
tea
from
anything
other
than
to
your
right?
I?
Don't
think
we
can
without
it
being
a
breakage,
it
would
be
a
serialization
break
and
change
which
we
can
always
like
paper
over,
but
do
we
expose
the
actual
back
into
your
a
and
any
other
API
I'm.
H
G
I
think
the
biggest
concern
would
be.
Is
there
some
scenario
where
you
have
the
span
where
you
could
using
safe
code,
break
some
semantics
where,
for
example,
one
API
one
thread
pulls
the
span?
It's
got
the
view.
Another
API,
possibly
another
thread,
modifies
the
list,
removing
elements
and
then
trims
the
capacity
you
now
have
a
span
to
an
array
which
is
no
longer
tracked
by
the
actual
list.
That.
A
G
G
A
In
that
sense,
I
mean
I'm,
honestly,
okay
of
saying,
and
maybe
the
one
in
the
left
is
the
entity
I,
don't
lecture
the
delicate
approach
works,
though,
because
how
would
you
capture
the
elders,
though?
Yes
in
a
culture
yeah?
But
if
the
thing
is
like,
if
you,
if
the
out
of
stuff
that
he
requires
that
expands,
then
what
you
can
do
that
other
expands
for
what
purpose
other.
E
H
G
E
G
A
My
concern
goes
that
Goods
right,
so
either
do
what
Levi
suggested,
which
is
basically
on
the
other
priv
said.
Maybe
this
pattern
is
the
alternative.
We
give
people
more
specialized
api's,
which
is
an
ever-growing
that's
right.
Thank
you
that
one
that
the
person
once
was,
for
example,
bought
copies
about
moves
right
and
either
we
do
that
or
we
just
say:
okay
screw.
You
only
give
you
one
API,
but
then
it
that
API
better
be
the
escape
ad
for
everything
else.
Yeah,
and
that's
why
I'm
on
the
fella?
Do
they
delegate
because
there's
performance
implications?
A
This
may
not
have
access
to
the
AutoStick
frame
and
then
it
will
come
back
to
us
and
still
want
the
other
API.
So
we
might
as
well
just
either
give
people
this
API
and
then
be
done
with
it
and
then
say:
okay,
if
things
become
more
mainline,
maybe
just
add
more
specialized
operations.
We
will
don't
have
to
do
funky
stuff,
like
you
know,
adding
using
stew
with
glasses
right,
but.
A
G
N
O
E
E
G
E
We
don't
even
increment
the
version
count
we
say
like
if,
if
list
of
T,
if
list
of
T
has
a
way
to
get
at
the
underlying
backing
store-
and
we
say
like
this
is
this-
is
something
that
we
just
trust:
people
who
access
it
to
do
the
right
thing
with,
like
literally
just
making
a
field
or
a
property,
or
something
like
a
race
segment
of
T
like
there.
You
go,
modify.
G
It
I
think
there's
a
difference
between
trusting
people
who
did
the
right
thing
and
like
if
we
were
going
to
make
it
an
unsafe
API
that
gave
the
raw
array
without
implementing
the
version
count.
I
wouldn't
want
it
on
list
itself.
If
we're
exposing
on
list
which
arbitrary
people
are
going
to
use
and
people,
newcomers
to
C,
sharp
and
dotnet
are
going
to
be
like.
E
A
A
G
I
think
if
we
were
to
do
this
right
and
we
were
to
do
it,
then
we
would
want
a
span
which
increments
the
version
count
and
returns
a
span
of
the
underlying
array,
as
read
only
span
which
does
not
increment
and
just
return
to
read,
only
span
of
it.
And
then
we
should
consider
the
memory
overloads
for
people
who
want
to
store
store
it
in.
G
P
E
A
G
Other
thing
that
it
gives
access
to
is
a
list.
You
can
pass
it
to
any
API
which
was
previously
taking
a
buffer
without
needing
to
copy.
So
everywhere
where
we
have
a
byte
array,
you
could
have
an
existing
list
of
fight
and
then
pass
it
through
without
needing
a
copy
so
pass
through
the
Riddler's
phantom
to
directly
yeah.
So
you
now
have
the
ability
to
use
system
collections,
api's,
essentially
anywhere,
where
we
were
previously
just
taking
it
to
you
right.
C
A
Sure
all
the
things
that
logically
it's
different
from
how
you
construct
them
right
that
guy's,
you
know
like
a
it's
treatable,
that
you
don't
necessarily
want
the
same
semantics
as
if
you
don't
you
don't
constitute.
As
my
livable
of
chart
right
I
mean
you
could
but
like
it's
not
this
is
this
one.
You
pass
it
on,
as
the
collection
usually
well.
E
G
A
Assumable
that
had
the
same
problem
right
Billy,
like
I,
wasn't
excited
to
char,
so
I
didn't
turn
char
based
on
an
index
and
we
turn
into
linked
lists.
All
right,
so
I
mean
climb
to
believe
that
yeah.
If
we
believe
that
that's
an
optimization,
you
want
to
make
them
that's
a
bad
API,
but
I
think
the
sizes
are
different.
Widest
preamble,
there
probably
has
more
than
8
elements
on
average
versus
this
is.
A
A
A
I
mean
list
of
tea
was
designed
to
be
a
more
performant
irregular.
The
radius
was
very
heavy
because
it
was
designed
to
be
wrapped.
It
was
designed
to
be
overwritten,
and
so
it
was
a
very
heavy
thing
and
this
one
was
basically
yeah.
If
you
want
to
construct
some
all
the
race,
that's
the
type
to
use
right.
So
in
that
scenario,
like
I,
don't
know
like
this,
that
I
did
anybody
ever.
You
know
think
that
something
this
thing
would
make
sense
for
this
stuff.
Tea,
like
I'm,
I,
I,
thought.
H
A
E
E
C
C
C
I'd
love
the
smoking
gun
scenario
that
says
you
know
this
is
a
critical
path
in
asp
net
or
in
windows
forms
or
wherever,
and
because
we
lack
this
a
span
as
memory
we're
20%
slower.
You
know
because
to
me
it
just
at
the
moment
it
feels
like
micro,
optimizations
here
and
there
and
I
don't
know
it's
worth
the
risk
for
that.
G
H
G
G
So
it's
he's
wanting
it
explicitly
to
just
use
a
global
array
and
then
treat
it
as
an
array
for
some
api's
that
only
take
arrays,
which
also
makes
it
simpler
to
expose
api's
in
the
concept
of
today,
you
have
to
support
both
T
array
and
I
list
and
I
collection.
If
you
want
to
support
the
varying
amounts-
and
this
would
allow
you
to
much
like
we
have
with
span-
allow
you
to
only
expose
span,
make
everything
else.
A
simple,
singular
implementation
that
boards.
A
E
A
I
always
think
what
kind
of
job
services
class
collection
Marshall
is
enough,
with
the
speed
bump
like
I'm,
more
concerned
of
api's
that
are
on
by
the
youth
types,
because
it's
like
well
what
what?
What
the
indication
do
we
have
that
you
shouldn't
call
this
a
teen
I
bet,
if
you
have
to
that,
given
that
when
job
services
not
used
by
default,
you
have
to
buddy
using
for
it.
Almost
anything
under
staying
is
low
level
and
I'd
say
to
various
degrees.
A
A
A
E
B
E
E
E
A
E
Like
that,
that's
fine,
because
the
indexer
can
be
treated
as
an
atomic
operation,
because
the
indexer
doesn't
have
indirection
like
the
Stars
this.
This
is
giving
you
a
reference
to
something
as
an
atomic
operation,
but
the
reference
is
no
longer
guarantee
valid
once
that
that's
on
the
cooperation
heads,
which
means
that
dereferencing,
the
value
has
to
be
included
as
part
of
that
operation.
So.
A
E
Not
just
that
the
the
the
reference
itself
is
going
to
be
pointing
into
an
array
somewhere,
but
the
elements
in
that
array
are
going
to
be
continually
being
overwritten
and
shuffled
by
concurrent
dictionary
as
other
threads
access
attention.
E
Somebody's
will
on
the
right
leg,
but
for
for
other
data
types
like
list
of
T
dictionary
of
T,
whatever,
like
I,
don't
really
care
all
that
much
because
if
you
have
another
thread,
touching
the
data
structure,
okay,
yeah,
it's
okay
to
corrupt
that
data
structure.
If
it's
not
thread
safe
and
current
dictionary
is
explicitly
documented
as
being
bright,
safe
and
we're.
Now
returning
a
corrupted
reference
from
an
API
that
is
theoretically
be
in
common
with
Rett
same
type,.
A
E
A
N
E
E
Basically,
if
you,
if
you
use
the
same
I'm,
sorry
if
you
take
the
rules
that
C++
mandates-
and
you
apply
those
same
rules
here,
while
you're
holding
RF
to
that
T
value,
you
are
not
allowed
to
make
any
changes
whatsoever.
Did
it
aside
for
maybe
not
dating
you
can't
add
you
can
delete
I
guess
you
could
look
at
their
stuff.
E
Actually,
you
can't
even
look
up
other
stuff,
because
even
a
look-up
on
a
dictionary
from
our
implementation
could
end
up
rehashing
Andry,
bucketing
yeah
the
account,
especially
to
use
a
string
as
we
have
a
concept
of
we
have
a
concept
of
detecting
weather
or
there
are
too
many
collisions
and
if
so,
will
actually
switch
to
a
different
hash
algorithm
if
TQ
string
and
that
redistribution
can
happen
even
on
one
up
but
a
practice.
It
doesn't.
A
Ask
for
scenarios
say
one
thing:
the
other
one
I
think
the
problem
of
all
of
his
api's
will
be
that
Illinois
been.
He
doesn't
have
to
think
too
hard
to
come
up
with
micro
benchmark
right.
The
question
is
like:
do
we
buy
the
scenario
right
like
do?
We
think
that's
compelling
enough
to
have
an
API
okay?
A
A
Doesn't
mean
we
should
expose
it
right,
because
you
can.
You
can
make
this
argument
for
any
data
structure
for
any
abstraction
all
the
time.
But
then
the
problem
is
eventually
you
run
out
of
you
know.
Api
is
to
bypass
right
and
then
the
other
problem
is
also
like.
How
do
you
like
it
seems
to
me
like?
There
is
a
there's,
a
line
somewhere
where
you
say
yes,
certainly,
the
abstractions
are
generally
not
violated
and
that's
real
reason
about
large-scale.
A
But
if
everybody
all
the
time,
like
my
part,
is
the
key
abstractions
then
well
now,
suddenly
you
can
only
trust
anyone
in
mind
off
cause
the
list
of
T,
but
you
know
you
possibly
some
method.
Is
it
something
trunking
and
suddenly
your
array,
it's
like
completely
messed
up,
I
mean
I'm,
not
sure
this
whole.
So
these
API
is,
but
there
is
a
line
somewhere.
I
think
we
still
try
to
find
where
it
is
because
you
spend
the
whole
to
1
to
2
and
then
3
or
to
certain
extent,
speeding
up
the
API.
G
I
think
I
think
a
lot
of
these
are
previously.
We
had
no
way
to
avoid
the
copies
and
things
like
that.
Now
we
have
a
way
to
avoid
copies
to
pass
data
around,
and
things
like
that
and
people
want
to
be
able
to
do
that
and
so
they're
suggesting
places
where
any
this
is
a
core
data
type
that's
frequently
used.
Let's
basically
allow
you
to
unlock
all
the
perf.
In
any
scenario
you
need
given
assumptions
on
the
type
that
I
don't
think
we're
going
to
be
able
to
buy
later
in
future.
A
G
A
Honestly,
I
don't
have
a
good
answer,
but
the
only
case
I
know
over
other
than
with
ApS
understand
you.
If
that's
the
only
API
is
we
have
to
add
that
might
be
better
than
the
s-pen
API
right.
If
that's
just
the
first
of
like
twelve
different
sets
of
API,
then
eventually
we
have
to
draw
a
line
in
circa.
Enough
is
enough.
A
No,
you
have
to
go
down
on
the
ends
like
that,
like
I,
think
that's,
that's
kind
of
where
I'm
at
and
I
mean
no
dictionary,
and
all
this
domination
has
come
up
before
critical
paths,
but
by
this
slightly
more
than
remove
one,
but
I
mean
we
are
pushing
the
envelope
right.
So
we
are
in
the
one
point:
five,
you
know:
percent.